Формы
Формы получили своё название по аналогии с привычными всем формами на сайтах - наборе полей, которые надо заполнить пользователю, чтобы "отправить" форму. В Cursiver формы тоже объединяют в себя поля и служат для ввода данных в документы, но также имеют и ряд своих особенностей.
Настройки форм
При создании или редактировании формы вы можете указать её название и описание. Название будет видеть пользователь при заполнении данных. Описание больше полезно для тех, кто имеет доступ к редактированию форм.
Шаблоны форм
Шаблоном формы определяется сразу несколько вещей. Во-первых, то, как группируются поля в форме, определяется её шаблоном. Если шаблон не выбран, то поля в форме будут все отображаться в группе полей "Другое", что выглядит вот так: <скриншот>
В свою очередь, если добавить той же форме шаблон, то поля сгруппируются так же как они сгруппированы в шаблоне: <скриншот>
Так как поля привязываются к формам непосредственно в шаблонах документа, а не в настройках самих форм, то одни и те же формы могут содержать абсолютно любой набор полей, в зависимости от того, какие документы одновременно выбрал пользователь для генерации. Все поля, которые не содержатся в шаблоне формы, будут отображаться в группе "Другое".
Во-вторых, шаблоны форм ограничивают то, какие объекты можно подставлять в форму для автоматического заполнения данных. При генерации документов для заполнения данных формы пользователь сможет выбрать только те объекты, которые созданы по тому же шаблону, что и данная форма. Например, если у вас есть формы "Исполнитель" и "Заказчик", созданные по шаблону "Юридическое лицо", то для заполнения их данных вы сможете выбрать только объекты с шаблоном "Юридическое лицо". Если же в форме шаблон не выбран, то в неё можно подставить объект любого шаблона.
В-третьих, если у выбранного шаблона формы есть роль, то вам могут быть предложены дополнительные настройки:
- для роли проект: подставлять ли текущий проект по-умолчанию. Так как генерация документов происходит по проектам, то при включении этой опции, для каждого комплекта документов в генерации будет автоматически выбран текущий проект и его данные будут подставлены в данную форму.
- для роли пользователь: вы можете также, как и в случае с проектом, автоматически подставлять пользователей из доступного контекста генерации документов. Это могут быть исполнители и менеджеры текущего проекта или текущий пользователь, который генерирует документы.
Настройки подстановки объектов
Как уже было описано ранее, в формы при генерации документов можно подставлять уже созданные в системе объекты. Данные, которые хранятся в их полях, будут автоматически подставлены в те же поля в форме, если таковые есть. При этом поля объектов и форм могут пересекаться не полностью или вообще не пересекаться.
Чтобы у пользователя появилась возможность подставить в форму объект, необходимо включить опцию "можно выбирать объекты из справочников и проектов". Если она выключена, то пользователю доступен только ручной ввод данных.
Также, когда опция выбора объектов включена, вы можете указать понятный для пользователя текст кнопки выбора объекта. По-умолчанию, текст будет "Выбрать объект". Но вы можете заменить его, например, на "Выбрать банк из справочника".
Тип формы
Существуют формы двух типов: одинарная (по-умолчанию) и множественная. Множественные формы позволяют пользователям подставлять в них несколько объектов сразу, что можно вывести в шаблоне документа как список или таблицу.
Справочники
Вы можете выбрать из каких справочников пользователь сможет выбрать объекты для подстановки в форму. В выборе справочников будут доступны только те, что созданы по тому же шаблону, что и данная форма.
Атрибуты
Атрибуты форм служат для идентификации форм в интеграциях.
Использование форм в шаблонах документов
Прежде чем погрузится в детали работы с формами, стоит сказать, что их можно использовать максимально просто: выбираете нужную форму, в ней выбираете поле и подставляете его в шаблон документа в 2 клика. И всё будет просто работать. Но чтобы получить максимум возможностей от их функционала и эффективно управлять данными, максимально переиспользуя их и сокращая рутину, стоит разобраться с формами немного подробнее.
Привязка полей к формам
Главная функция форм - вовсе не красивое отображение полей при генерации. Это, в первую очередь, настройка потока данных. Дело в том, что если вы добавите одно и то же поле в шаблон документа в разные места, то пользователю будет предложено заполнить только одно поле, а введенное им значение будет автоматически продублировано по всему документу. Если вы добавите поле "ИНН" в реквизитах Заказчика и Исполнителя, и не свяжете его с формой, то пользователю будет предложено ввести только один ИНН. Введённое им значение будет подставлено и в те, и другие реквизиты, что очевидно неправильно. <скриншот>
Чтобы этого избежать, вам надо привязать поле в реквизитах Исполнителя к форме "Исполнитель", а то же самое поле в реквизитах Заказчика к форме "Заказчик". Тогда при генерации документа пользователь увидит две формы и два разных поля: <скриншот>
Важно помнить, что все поля в шаблоне документа, привязанные к одной форме, объединяются при генерации документа в одно поле.
Чтобы привязать поле к форме есть два способа. Первый: вы можете просто выбрать поле сразу из нужной формы. Для этого надо открыть вкладку "поля" в редакторе документа и там выбрать вначале нужную вам форму, а затем из этой формы - поле. Выбранное поле будет автоматически связано с этой формой. <скриншот>
Перечень доступных полей в форме определяется её шаблоном, а если он отсутствует, то прямо из формы поле добавить не получится. Также вам может понадобится добавить в форму какое-то дополнительное поле, которого нет в её шаблоне. Тогда вы можете воспользоваться вторым способом: выбрать поле из общего списка, а затем в открывшемся окне вручную выбрать к какой форме его привязать. <скриншот>
Если поле не связано ни с одной формой или если вы привязали поле к множественной форме, то оно в документе будет подсвечено красным цветом, сигнализируя о возможной ошибке.
В Cursiver все формы являются динамическими. Это означает, что при генерации в них отображаются только те поля, которые привязаны к ним в шаблоне документа, который в данный момент генерируется пользователем. Например, если в шаблоне документа из формы "Исполнитель" есть только поля "ИНН" и "Название организации", то от пользователя не будет требоваться при генерации документа заполнять и телефон с адресом, которые есть в шаблоне этой формы.
Также если вы привязали к форме поле, которого нет в шаблоне этой формы, то при генерации оно будет отображаться в группе полей "Другое".
Работа с множественными формами
Как писалось ранее, множественные формы нужны, чтобы выводить в документе динамические списки и таблицы. Классические примеры использования множественных форм - это список выполненных работ, список юридических лиц через запятую или нумерованный список задач. Все эти данные в шаблон документа нельзя зашить заранее, а значит надо сделать так, чтобы пользователь вводил их в форме.
Повторение данных в документе всегда строится через повторение блоков. Если привязать поле напрямую ко множественной форме, то оно не будет повторяться, а вместо этого в генерации появится еще одна - одинарная форма, в названии которой будет приставка "(общее)", куда и будет добавлено это поле.
Чтобы сделать повторяющийся блок, вам надо как минимум две формы: одну - множественную, другую - одинарную. Скажем, в примере с таблицей перечня работ, это будут формы "Работы" и "Работа". Также вам нужно будет создать блок, поля в котором должны быть привязаны к одинарной форме. В шаблоне документа, где вы хотите сделать повторение блока, вам надо будет добавить этот блок в редактор и выполнить замену данных в нем так, чтобы одинарная форма блока ("Работа" в нашем случае) менялась на множественную форму ("Работы"). Далее вам надо только настроить параметры повторения (переносы строк, разделители и т.п.), подробно описанные здесь. <скриншот>
Перепривязка форм блоков к другим формам - это часть функционала управления потоком данных. Он позволяет создавать очень сложные вложенные конструкции шаблонов, которые можно переиспользовать в совершенно разных на первый взгляд документов, существенно сокращая время на последующее обновление и поддержку этих шаблонов.