====== Создание и настройка формы ======
* **[[product:forms:admin:about|Логика создания формы]]**
* **[[product/forms/admin/case|Пример создания типовой формы]]**
===== Как создать новую форму =====
- **Администрирование -> Общие настройки -> Конструктор форм**. {{ :product:forms:admin:forms_new_1.png?nolink |Список форм}}
- Нажмите "**Добавить**".
- Заполните поля в портлете "[[#свойства_формы|Свойства формы]]":
* ''Название'';
* ''Описание/Легенда'' -- описание назначения формы или набора данных для заполнения;
* ''Вид представления объектов'':
* ''Линейный'' -- в список попадают только те объекты, по которым доступны поля для заполнения;
* ''Иерархический'' -- отображаются вместе с иерархией вышестоящих объектов с учетом фильтра по родительскому объекту. \\ //Отображение вышестоящих объектов зависит от того, откуда запрашивается форма: из модуля на Рабочем столе или со страницы объекта.//
* ''Фиксированный заголовок таблицы''((Функциональность доступна с [[releases/3_21|версии 3.21]] и выше.)) -- при скроллинге формы шапка таблицы (названия полей) фиксируются на странице, так что пользователь при заполнении формы всегда их видит. Актуально, если форма содержит много строк, и пользователю нужно скроллить её при заполнении.
* ''Настройка размеров колонок''((Функциональность доступна с [[releases/3_21|версии 3.21]] и выше.)) -- при активации этого чек-бокса администратор системы может зайти в форму и вручную настроить ширину колонок, после чего сохранить их положение. \\ {{ :product:forms:admin:forms_new_2_1.png |}}
* ''Использовать процедуру запросов'' -- вкл/выкл ручные запросы из объекта на заполнение форм.
* ''Актуализировать план проекта'' -- если вкл: при сохранении заполненной формы запускается перерасчет дат плана проекта (включая дочерние объекты), который является [[#параметры_выборки_объектов|источником запроса формы]]. Опция работает, если форма содержит [[product:objects:date:dates|плановые даты]] и пользователь изменил хотя бы одну такую дату в рамках текущего сеанса работы с формой. \\ {{ :product:forms:admin:forms_new_2.png?nolink |Свойства формы}}
- **Сохраните** форму.
- Настройте форму.
===== Возможность запроса из объектов =====
Это -- привязка формы к объектам.
На карточках каких типов объектов появится в левом меню пункт "Формы". \\
Из этого раздела можно будет отправить ручной запрос на заполнение формы или открыть форму для заполнения((при наличии у пользователя соответствующих прав)).
- В портлете «Возможность запроса из объектов» -> ''Изменить''.
- Выберите типы объектов.
- Сохраните изменения.
Также привязать форму к объекту можно [[product/objects/admin/interfaces|со страницы параметров объекта]] -> портлет «Формы».
{{ :product:forms:admin:forms_new_3.png?direct |Возможность запроса из объектов}}
===== Параметры выборки объектов =====
Выберите здесь те объекты, в справочники и/или реквизиты которых нужно вносить данные.
Вы можете выбрать не просто объекты, а [[product:reports:filters|задать точные условия их отбора]]. \\ //Например, отчитаться по задачам, которые просрочены. => Выбрать объекты типа "Задача" + в открытых статусах + у которых плановая дата завершения уже прошла.//
Это могут быть те же объекты, что и в портлете "Возможность запроса из объектов", а могут быть -- их дочерние.
При настройке [[product:reports:filters|фильтров]] учитывайте, что они будут применяться к данным пользователей, которые будут получать запросы и заполнять форму. \\ //Например, вы можете использовать фильтр "по моим ролям" -- чтобы каждый пользователь получал запросы именно по своим объектам.//
==== Отбор объектов по записям справочников ====
Опционально.
Это -- инструмент отбора объектов **по наличию записей** в связанных с ними справочниках.
Может быть полезно для отбора объектов, чьи справочники нужно **показать** или **отредактировать** в форме
Инструмент актуален, только если:
* к объектам привязаны эти справочники;
* в этих справочниках есть хотя бы одна запись.
Если вы включили этот фильтр, и в справочнике по выбранным объектам **еще нет ни одной записи**, у пользователя **будет пустая форма**.
{{ :product:forms:admin:forms_new_4_1.png?nolink |Отбор объектов по записям справочников}}
=== Фильтры по записям ===
Фильтр по записям справочникам((такой же фильтр есть в портлете [[#справочники_объектов|"Справочники объектов"]], где настраивается выбор тех справочников, которые отображаются в форме и в которые вносятся изменения)) -- еще больше сужает выборку объектов по признаку наличия у них записей в определённых справочниках.
Как это работает:
* "отбери только [[#параметры_выборки_объектов|те объекты]],
* к которым [[#отбор_объектов_по_записям справочников|привязаны справочники с хотя бы одной записью]],
* которые (записи) отвечают требованиям из фильтров".
Может использоваться для отбора объектов, если есть справочник с тысячами записей по десяткам и сотням объектов, и нужно отобрать конкретные записи для **отображения** или **редактирования**. Т.е. отобрать объекты по каким-то очень жёстким параметрам записей справочника, т.к. записей слишком много.
== Как включить фильтр ==
- Отметьте те справочники, связанные с объектами, в которых должны быть записи:
- ''Изменить'';
- прочекать нужные справочники;
- ''Сохранить''.
- В поле "Фильтры по записям" -> ''Добавить''
- В открывшемся поп-апе включите нужные вам фильтры по записям справочника.
До настройки фильтров по записям справочников активированные справочники на отбор объектов не влияют.
^Фильтр по системной дате|Фильтр по дате создания записи. Функциональность аналогична [[product/reports/filters#фильтр_по_плановой_дате|фильтру по плановой дате]] в отборе объектов.|
^Фильтр по реквизитам-классификаторам|Применяется для реквизитов-классификаторов выбранного справочника|
^Фильтр по статусам|"На редактировании"/"Утверждено". Подробно [[product/tables/users/approval_data|о статусах записей в справочнике]].|
^Фильтр по числовому реквизиту подчиненного справочника|Сравнение реквизита ведущего справочника и суммы «Итого ранее» подчиненного справочника.|
{{ :product:forms:admin:forms_new_5.png?nolink |Настройка фильтров}}
На форму выведутся объекты,
* у которых есть хотя бы одна запись,
* у которой одновременно выполняются все заданные фильтры для записей справочника((не учитывая критериев по собственным атрибутам объектов, задаваемых независимо)).
При деактивации определенного типа объектов((на странице параметров выборки объектов)) все привязанные к этому типу объектов справочники исключаются из списка справочников в портлете «Отбор объектов по записям справочников».
Выберите договоры, у которых в связанных справочниках планируемых платежей/приходов:
- запись с просроченной датой;
- реквизит-классификатор «Статус оплаты» = «Запланировано».
Настройте запросы форм сбора отчетности для актуализации просроченных дат.
Рекомендуем настраивать выборку формы так, чтобы в ней у пользователя открывалось не больше 50-100 объектов -- иначе страница заполнения формы будет формироваться длительное время (до нескольких минут), а пользователи будут путаться при заполнении из-за большого количества строк и полей. Настраивайте выборку таким образом, чтобы конечные пользователи на странице заполнения видели только свои задачи.
===== Автоматические рассылки запросов =====
Опционально. Нужно, чтобы пользователи получали запросы на заполнение формы при выполнении определённых условий.
Подробно о настройке [[product/forms/admin/auto_request|автоматической рассылке запросов]].
===== Реквизиты объектов =====
В портлете «Реквизиты объектов» выберите те реквизиты, которые пользователи будут заполнять через формы.
Если в объекте уже были записаны реквизиты, то через форму старое значение реквизитов будет затёрто. При этом история значений реквизитов **не сохраняется**! Логов по ним нет.
Здесь можно добавить системные или пользовательские реквизиты.
* **Пользовательские** -- это те, которые содержатся в объектах, выбранных в портлете "Параметры выборки объектов" и которые доступны для заполнения.
* **Системные** -- всегда одинаковый набор:
* Плановая дата начала (фиксированная дата)
* Плановая продолжительность
* Плановая дата завершения (фиксированная дата)
* Фактическая дата начала
* Фактическая дата завершения
* Утвержденная дата начала
* Утвержденная дата завершения
* Расчетная дата начала
* Расчетная дата завершения
* Процент выполнения
Какие реквизиты прикреплены к выбранным объектам -- такие реквизиты и будут в портлете «Реквизиты объектов». \\
Можно использовать реквизиты всех типов, в том числе файлы.
Запрашивать заполнение реквизитов по объектам -- не обязательно. Если вам нужно с помощью формы собирать записи только по справочникам, оставьте этот блок пустым. \\
Аналогично -- со справочниками. Если нужно запрашивать реквизиты по конкретным объектам (например, в определённом статусе), это можно делать независимо от справочников.
==== Настройка ====
Можно указать набор **обязательных для заполнения** реквизитов (чек-бокс в столбце «Обязательный»), а также **изменить их названия**.
Для указания обязательного реквизита:
- клик на ''Изменить'' в строке параметра с реквизитом;
- поставить чек-бокс "Обязательный" и сохранить.
Для удаления реквизита -- клик на ''Удалить'' в строке параметра.
{{ :product:forms:admin:forms_new_6.png?nolink |Реквизиты объектов}}
===== Показатели OLAP-кубов =====
В форму можно добавить показатель из [[product:olap|OLAP-куба]] для удобства того, кто заполняет форму.
{{ :product:forms:admin:form_2nd_2.png?nolink |Поля для выбора OLAP-куба и показателя из него}}
Например, индикатор или ключевое значение, которое позволит правильно принять решение и корректно заполнить форму.
{{ :product:forms:admin:form_2nd_1.png?nolink |Показатели OLAP в интерфейсе формы}}
См. [[product:olap:case_system_table|пошаговый пример настройки OLAP-куба.]]
Добавление OLAP-показателей на страницу запроса формы может значительно увеличить время открытия страницы заполнения запроса формы.
===== Справочники объектов =====
Выберите здесь те [[product:tables|справочники]], в которые будут записываться данные из формы:
- ''Изменить'' -> выбрать чек-боксами нужные справочники;
- выберите способ работы со справочником:
* ''Новая запись'' (по умолчанию) – через форму создается одна новая запись справочника.При выборе [[product/tables/admin/inherited_table#ведущийподчиненный|для ведущего справочника]] «Новая запись», [[product/tables/admin/inherited_table#ведущийподчиненный|подчиненные справочники]] не доступны.
* ''Просмотр'' – на форму выводятся записи справочника((с учетом заданных фильтров)) для просмотра. \\ //Этот способ работы доступен только для ведущего или независимого справочника.//
* ''Редактирование'' – на форму выводятся записи справочника((с учетом заданных фильтров)) для редактирования.
- для "Просмотр" и "Редактирование" настройте фильтр отображения записей справочника в форме.
{{ :product:forms:admin:forms_new_9.png?nolink |Заполнение реквизитов подчиненного справочника на форме}}
Для создания или редактирования записей в [[product/tables/admin/inherited_table#ведущийподчиненный|подчиненном справочнике]] через форму, включите в настройках "Ведущий справочник" -- в режиме «Просмотр» или «Редактирование».
{{ :product:forms:admin:forms_new_10.png?nolink |Выбор способа работы с записями справочников на форме}}
==== Параметры справочника ====
^ Параметры ^ Что означает | Способ работы с записями |||
^:::^:::^ Новая запись ^ Редактирование ^ Просмотр ^
|''Показать итог для введённых ранее записей''|В форме выводится дополнительная колонка, где отображается сумма предыдущих значений, если это [[product/requisites/number|числовой реквизит]]. Работает, только если активированы((выделены чек-боксами)) и [[product/tables/admin/inherited_table#ведущийподчиненный|подчинённый, и ведущий]] справочники.| {{fa>check?24&color=#267F00}} | {{fa>check?24&color=#267F00}} | {{fa>times?24&color=#C60000}} |
|''Ввод значений числового реквизита накопительным итогом''|Поле предназначено для записи текущего накопительного итога. \\ //Например, для ввода складских остатков (сколько здесь и сейчас есть условных стульев или кирпичей на складе).// \\ Система сама посчитает дельту относительно предыдущего накопительного итога и **внесёт в справочник именно значение дельты**. \\ Разница может быть как положительной((нарастающий итог)), так и отрицательной((убывающий итог)). \\ О включенной опции при заполнении формы говорит {{:product:forms:admin:pic.png?nolink|}} перед полем ввода. Работает, только если активированы((выделены чек-боксами)) и [[product/tables/admin/inherited_table#ведущийподчиненный|подчинённый, и ведущий]] справочники.| {{fa>check?24&color=#267F00}} | {{fa>times?24&color=#C60000}} | {{fa>times?24&color=#C60000}} |
|''Необязательное заполнение''|**Инструмент для** пропуска и **НЕзаписи** тех строк, **где нечего писать**, по которым нет изменений или новостей. \\ //Например, есть справочник с несколькими обязательными для заполнения реквизитами. \\ Пользователь вносит текущие значения по целому перечню объектов, но по некоторым из них нет информации или нет изменений => вносить нечего. Он сохраняет форму.// \\ Там, где данные есть -- создаются новые записи справочника, там, где ни один из реквизитов не заполнен -- ничего не создаётся. Пользователь благополучно сохраняет форму, не получает при этом никаких оповещений или напоминаний о необходимости внести данные по всем строкам. Если пользователь внёс в строке хотя бы один из реквизитов, и в справочнике остался хотя бы один незаполненный обязательный реквизит, пользователь получит уведомление как обычно. \\ В таком случае сохранить форму без внесения полных данных он не сможет.| {{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}} |
==== Фильтр записей справочника ====
Если в форме нужно **увидеть или отредактировать** какие-то конкретные записи в справочниках, настройте фильтр.
Фильтры доступны:
* для [[product:tables:admin:inherited_table|ведущих]] и независимых справочников -- при «Просмотре» или «Редактировании»,
* для [[product:tables:admin:inherited_table|подчиненных]] -- при «Редактировании».
Логика настройки фильтров [[#как_включить_фильтр|полностью аналогична]] фильтру по записям справочника в портлете "Параметры выборки объектов" -> "Отбор объектов по записям справочников".
=== Как включить фильтр ===
- В портлете "Справочники объектов" [[#справочники_объектов|добавьте справочники]].
- В поле "Фильтры по записям" -> ''Добавить''. \\ {{ :product:forms:admin:forms_new_8.png?nolink |Фильтры для справочников на форме}}
- В [[#как_включить_фильтр|открывшемся поп-апе]] включите нужные вам фильтры по записям справочника. Пояснение к функциональности см. в [[#как_включить_фильтр|Таблице 1]].