Показать страницуИстория страницыСсылки сюдаЭкспорт в PDFНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Создание и настройка формы ====== {{tag>Реализация:настройка}} * **[[product:forms:admin:about|Логика создания формы]]** * **[[product/forms/admin/case|Пример создания типовой формы]]** ===== Как создать новую форму ===== - **Администрирование -> Общие настройки -> Конструктор форм**. <image shape="thumbnail">{{ :product:forms:admin:forms_new_1.png?nolink |Список форм}}</image> - Нажмите "**Добавить**". - Заполните поля в портлете "[[#свойства_формы|Свойства формы]]": * ''Название''; * ''Описание/Легенда'' -- описание назначения формы или набора данных для заполнения; * ''Вид представления объектов'': * ''Линейный'' -- в список попадают только те объекты, по которым доступны поля для заполнения; * ''Иерархический'' -- отображаются вместе с иерархией вышестоящих объектов с учетом фильтра по родительскому объекту. \\ //Отображение вышестоящих объектов зависит от того, откуда запрашивается форма: из модуля на Рабочем столе или со страницы объекта.// * ''Фиксированный заголовок таблицы''((Функциональность доступна с [[releases/3_21|версии 3.21]] и выше.)) -- при скроллинге формы шапка таблицы (названия полей) фиксируются на странице, так что пользователь при заполнении формы всегда их видит. <callout type="success">Актуально, если форма содержит много строк, и пользователю нужно скроллить её при заполнении.</callout> * ''Настройка размеров колонок''((Функциональность доступна с [[releases/3_21|версии 3.21]] и выше.)) -- при активации этого чек-бокса администратор системы может зайти в форму и вручную настроить ширину колонок, после чего сохранить их положение. \\ <image shape="thumbnail">{{ :product:forms:admin:forms_new_2_1.png |}}</image> * ''Использовать процедуру запросов'' -- вкл/выкл ручные запросы из объекта на заполнение форм. * ''Актуализировать план проекта'' -- если вкл: при сохранении заполненной формы запускается перерасчет дат плана проекта (включая дочерние объекты), который является [[#параметры_выборки_объектов|источником запроса формы]]. Опция работает, если форма содержит [[product:objects:date:dates|плановые даты]] и пользователь изменил хотя бы одну такую дату в рамках текущего сеанса работы с формой. \\ <image shape="thumbnail">{{ :product:forms:admin:forms_new_2.png?nolink |Свойства формы}}</image> - **Сохраните** форму. - Настройте форму. ===== Возможность запроса из объектов ===== <grid> <col sm="6" lg="8" xs="12"> Это -- привязка формы к объектам. На карточках каких типов объектов появится в правом меню пункт "Формы". \\ Из этого раздела можно будет отправить ручной запрос на заполнение формы или открыть форму для заполнения((при наличии у пользователя соответствующих прав)). - В портлете «Возможность запроса из объектов» -> ''Изменить''. - Выберите типы объектов. - Сохраните изменения. <callout type="success">Также привязать форму к объекту можно [[product/objects/admin/interfaces|со страницы параметров объекта]] -> портлет «Формы».</callout> </col> </grid> <image shape="thumbnail">{{ :product:forms:admin:forms_new_3.png?direct |Возможность запроса из объектов}}</image> ===== Параметры выборки объектов ===== Выберите здесь те объекты, в справочники и/или реквизиты которых нужно вносить данные. <callout type="success" icon="true"> Вы можете выбрать не просто объекты, а [[product:reports:filters|задать точные условия их отбора]]. \\ //Например, отчитаться по задачам, которые просрочены. => Выбрать объекты типа "Задача" + в открытых статусах + у которых плановая дата завершения уже прошла.// </callout> Это могут быть те же объекты, что и в портлете "Возможность запроса из объектов", а могут быть -- их дочерние. При настройке [[product:reports:filters|фильтров]] учитывайте, что они будут применяться к данным пользователей, которые будут получать запросы и заполнять форму. \\ //Например, вы можете использовать фильтр "по моим ролям" -- чтобы каждый пользователь получал запросы именно по своим объектам.// <html> <!-- <btn modal="users" type="link" icon="fa fa-clipboard">Пример использования фильтра по роли пользователя</btn> <modal id="users"> Необходимо, чтобы разработчики раз в неделю делали оценку сроков своих задач в работе, но при этом заполняли лишь одну форму. **Решение:** создать форму с выборкой задач, запланированных на неделю. * Всех разработчиков [[product:objects:users:work_project:invitation|добавить участниками]] в проект разработки. В результате всем участникам проекта разработки релиза рассылается один [[product:request|запрос]] с задачами, но при этом каждый в форме видит только свои задачи. * Настроить форму: - Запрос формы -- из общего проекта по разработке. - Выбрать объекты-задачи. - Фильтр "я исполнитель". - Авто-запрос участникам проекта на заполнение форм из типа объекта, на основании которого создан проект разработки. </modal> --> </html> ==== Отбор объектов по записям справочников ==== Опционально. <grid> <col lg="7" sm="5" xs="12"> Это -- инструмент отбора объектов **по наличию записей** в связанных с ними справочниках. <callout icon="fa fa-briefcase"> Может быть полезно для отбора объектов, чьи справочники нужно **показать** или **отредактировать** в форме </callout> Инструмент актуален, только если: * к объектам привязаны эти справочники; * в этих справочниках есть хотя бы одна запись. <callout type="danger" icon="true" title="Внимание!"> Если вы включили этот фильтр, и в справочнике по выбранным объектам **еще нет ни одной записи**, у пользователя **будет пустая форма**. </callout> </col> <col lg="5" sm="7" xs="12"> <image shape="thumbnail">{{ :product:forms:admin:forms_new_4_1.png?nolink |Отбор объектов по записям справочников}}</image> </col> </grid> === Фильтры по записям === Фильтр по записям справочникам((такой же фильтр есть в портлете [[#справочники_объектов|"Справочники объектов"]], где настраивается выбор тех справочников, которые отображаются в форме и в которые вносятся изменения)) -- еще больше сужает выборку объектов по признаку наличия у них записей в определённых справочниках. Как это работает: * "отбери только [[#параметры_выборки_объектов|те объекты]], * к которым [[#отбор_объектов_по_записям справочников|привязаны справочники с хотя бы одной записью]], * которые (записи) отвечают требованиям из фильтров". <callout icon="fa fa-briefcase"> Может использоваться для отбора объектов, если есть справочник с тысячами записей по десяткам и сотням объектов, и нужно отобрать конкретные записи для **отображения** или **редактирования**. Т.е. отобрать объекты по каким-то очень жёстким параметрам записей справочника, т.к. записей слишком много. </callout> == Как включить фильтр == - Отметьте те справочники, связанные с объектами, в которых должны быть записи: - ''Изменить''; - прочекать нужные справочники; - ''Сохранить''. - В поле "Фильтры по записям" -> ''Добавить'' - В открывшемся поп-апе включите нужные вам фильтры по записям справочника. <callout type="primary" icon="true">До настройки фильтров по записям справочников активированные справочники на отбор объектов не влияют. </callout> <panel title="Таблица 1"> ^Фильтр по системной дате|Фильтр по дате создания записи. Функциональность аналогична [[product/reports/filters#фильтр_по_плановой_дате|фильтру по плановой дате]] в отборе объектов.| ^Фильтр по реквизитам-классификаторам|Применяется для реквизитов-классификаторов выбранного справочника| ^Фильтр по статусам|"На редактировании"/"Утверждено". Подробно [[product/tables/users/approval_data|о статусах записей в справочнике]].| ^Фильтр по числовому реквизиту подчиненного справочника|Сравнение реквизита ведущего справочника и суммы «Итого ранее» подчиненного справочника.| </panel> <image shape="thumbnail">{{ :product:forms:admin:forms_new_5.png?nolink |Настройка фильтров}}</image> На форму выведутся объекты, * у которых есть хотя бы одна запись, * у которой одновременно выполняются все заданные фильтры для записей справочника((не учитывая критериев по собственным атрибутам объектов, задаваемых независимо)). При деактивации определенного типа объектов((на странице параметров выборки объектов)) все привязанные к этому типу объектов справочники исключаются из списка справочников в портлете «Отбор объектов по записям справочников». <callout icon="fa fa-briefcase" title="Пример отбора объектов: Сопровождение договоров"> Выберите договоры, у которых в связанных справочниках планируемых платежей/приходов: - запись с просроченной датой; - реквизит-классификатор «Статус оплаты» = «Запланировано». Настройте запросы форм сбора отчетности для актуализации просроченных дат. </callout> <callout type="warning" icon="true">Рекомендуем настраивать выборку формы так, чтобы в ней у пользователя открывалось не больше 50-100 объектов -- иначе страница заполнения формы будет формироваться длительное время (до нескольких минут), а пользователи будут путаться при заполнении из-за большого количества строк и полей. Настраивайте выборку таким образом, чтобы конечные пользователи на странице заполнения видели только свои задачи.</callout> ===== Автоматические рассылки запросов ===== Опционально. Нужно, чтобы пользователи получали запросы на заполнение формы при выполнении определённых условий. Подробно о настройке [[product/forms/admin/auto_request|автоматической рассылке запросов]]. ===== Реквизиты объектов ===== В портлете «Реквизиты объектов» выберите те реквизиты, которые пользователи будут заполнять через формы. <callout type="danger" icon="true" title="Внимание!"> Если в объекте уже были записаны реквизиты, то через форму старое значение реквизитов будет затёрто. При этом история значений реквизитов **не сохраняется**! Логов по ним нет. </callout> Здесь можно добавить системные или пользовательские реквизиты. * **Пользовательские** -- это те, которые содержатся в объектах, выбранных в портлете "Параметры выборки объектов" и которые доступны для заполнения. * **Системные** -- всегда одинаковый набор: * Плановая дата начала (фиксированная дата) * Плановая продолжительность * Плановая дата завершения (фиксированная дата) * Фактическая дата начала * Фактическая дата завершения * Утвержденная дата начала * Утвержденная дата завершения * Расчетная дата начала * Расчетная дата завершения * Процент выполнения <callout type="info" icon="true"> Какие реквизиты прикреплены к выбранным объектам -- такие реквизиты и будут в портлете «Реквизиты объектов». \\ Можно использовать реквизиты всех типов, в том числе файлы. </callout> <callout type="tip" icon="true"> Запрашивать заполнение реквизитов по объектам -- не обязательно. Если вам нужно с помощью формы собирать записи только по справочникам, оставьте этот блок пустым. \\ Аналогично -- со справочниками. Если нужно запрашивать реквизиты по конкретным объектам (например, в определённом статусе), это можно делать независимо от справочников. </callout> ==== Настройка ==== Можно указать набор **обязательных для заполнения** реквизитов (чек-бокс в столбце «Обязательный»), а также **изменить их названия**. Для указания обязательного реквизита: - клик на ''Изменить'' в строке параметра с реквизитом; - поставить чек-бокс "Обязательный" и сохранить. Для удаления реквизита -- клик на ''Удалить'' в строке параметра. <image shape="thumbnail">{{ :product:forms:admin:forms_new_6.png?nolink |Реквизиты объектов}}</image> ===== Показатели OLAP-кубов ===== В форму можно добавить показатель из [[product:olap|OLAP-куба]] для удобства того, кто заполняет форму. <image shape="thumbnail">{{ :product:forms:admin:form_2nd_2.png?nolink |Поля для выбора OLAP-куба и показателя из него}}</image> Например, индикатор или ключевое значение, которое позволит правильно принять решение и корректно заполнить форму. <image shape="thumbnail">{{ :product:forms:admin:form_2nd_1.png?nolink |Показатели OLAP в интерфейсе формы}}</image> См. [[product:olap:case_system_table|пошаговый пример настройки OLAP-куба.]] <callout type="warning" icon="true">Добавление OLAP-показателей на страницу запроса формы может значительно увеличить время открытия страницы заполнения запроса формы.</callout> ===== Справочники объектов ===== Выберите здесь те [[product:tables|справочники]], в которые будут записываться данные из формы: - ''Изменить'' -> выбрать чек-боксами нужные справочники; - выберите способ работы со справочником: * ''Новая запись'' (по умолчанию) – через форму создается одна новая запись справочника.<callout type="info">При выборе [[product/tables/admin/inherited_table#ведущийподчиненный|для ведущего справочника]] «Новая запись», [[product/tables/admin/inherited_table#ведущийподчиненный|подчиненные справочники]] не доступны.</callout> * ''Просмотр'' – на форму выводятся записи справочника((с учетом заданных фильтров)) для просмотра. \\ //Этот способ работы доступен только для ведущего или независимого справочника.// * ''Редактирование'' – на форму выводятся записи справочника((с учетом заданных фильтров)) для редактирования. - для "Просмотр" и "Редактирование" настройте фильтр отображения записей справочника в форме. <image shape="thumbnail">{{ :product:forms:admin:forms_new_9.png?nolink |Заполнение реквизитов подчиненного справочника на форме}}</image> <callout type="warning" icon="true">Для создания или редактирования записей в [[product/tables/admin/inherited_table#ведущийподчиненный|подчиненном справочнике]] через форму, включите в настройках "Ведущий справочник" -- в режиме «Просмотр» или «Редактирование».</callout> <image shape="thumbnail">{{ :product:forms:admin:forms_new_10.png?nolink |Выбор способа работы с записями справочников на форме}}</image> ==== Параметры справочника ==== <html><center></html> ^ Параметры ^ Что означает | Способ работы с записями ||| ^:::^:::^ Новая запись ^ Редактирование ^ Просмотр ^ |''Показать итог для введённых ранее записей''|В форме выводится дополнительная колонка, где отображается сумма предыдущих значений, если это [[product/requisites/number|числовой реквизит]]. <callout type="warning">Работает, только если активированы((выделены чек-боксами)) и [[product/tables/admin/inherited_table#ведущийподчиненный|подчинённый, и ведущий]] справочники.</callout>| {{fa>check?24&color=#267F00}} | {{fa>check?24&color=#267F00}} | {{fa>times?24&color=#C60000}} | |''Ввод значений числового реквизита накопительным итогом''|Поле предназначено для записи текущего накопительного итога. \\ //Например, для ввода складских остатков (сколько здесь и сейчас есть условных стульев или кирпичей на складе).// \\ Система сама посчитает дельту относительно предыдущего накопительного итога и **внесёт в справочник именно значение дельты**. \\ Разница может быть как положительной((нарастающий итог)), так и отрицательной((убывающий итог)). \\ О включенной опции при заполнении формы говорит {{:product:forms:admin:pic.png?nolink|}} перед полем ввода. <callout type="warning">Работает, только если активированы((выделены чек-боксами)) и [[product/tables/admin/inherited_table#ведущийподчиненный|подчинённый, и ведущий]] справочники.</callout>| {{fa>check?24&color=#267F00}} | {{fa>times?24&color=#C60000}} | {{fa>times?24&color=#C60000}} | |''Необязательное заполнение''|**Инструмент для** пропуска и **НЕзаписи** тех строк, **где нечего писать**, по которым нет изменений или новостей. \\ //Например, есть справочник с несколькими обязательными для заполнения реквизитами. \\ Пользователь вносит текущие значения по целому перечню объектов, но по некоторым из них нет информации или нет изменений => вносить нечего. Он сохраняет форму.// \\ Там, где данные есть -- создаются новые записи справочника, там, где ни один из реквизитов не заполнен -- ничего не создаётся. Пользователь благополучно сохраняет форму, не получает при этом никаких оповещений или напоминаний о необходимости внести данные по всем строкам. <callout type="warning" icon="true">Если пользователь внёс в строке хотя бы один из реквизитов, и в справочнике остался хотя бы один незаполненный обязательный реквизит, пользователь получит уведомление как обычно. \\ В таком случае сохранить форму без внесения полных данных он не сможет.</callout>| {{fa>check?24&color=#267F00}} | {{fa>check?24&color=#267F00}} | {{fa>times?24&color=#C60000}} | |''Выводить последнюю запись''((Доступно с версии 3.17.))|В форме отображается только последняя запись по //системной// дате и времени для объекта выборки.| {{fa>times?24&color=#C60000}} | {{fa>times?24&color=#C60000}} | {{fa>check?24&color=#267F00}} | <html></center></html> ==== Фильтр записей справочника ==== Если в форме нужно **увидеть или отредактировать** какие-то конкретные записи в справочниках, настройте фильтр. Фильтры доступны: * для [[product:tables:admin:inherited_table|ведущих]] и независимых справочников -- при «Просмотре» или «Редактировании», * для [[product:tables:admin:inherited_table|подчиненных]] -- при «Редактировании». <callout type="info" icon="true">Логика настройки фильтров [[#как_включить_фильтр|полностью аналогична]] фильтру по записям справочника в портлете "Параметры выборки объектов" -> "Отбор объектов по записям справочников".</callout> === Как включить фильтр === - В портлете "Справочники объектов" [[#справочники_объектов|добавьте справочники]]. - В поле "Фильтры по записям" -> ''Добавить''. \\ <image shape="thumbnail">{{ :product:forms:admin:forms_new_8.png?nolink |Фильтры для справочников на форме}}</image> - В [[#как_включить_фильтр|открывшемся поп-апе]] включите нужные вам фильтры по записям справочника. Пояснение к функциональности см. в [[#как_включить_фильтр|Таблице 1]].