Шаблоны документов
Примечание
Доступно только в Enterprise версии.
Настройка расположена в журнале «Шаблоны документов» (Раздел администратора - Трансформации) v2/admin?journalId=document-templates&type=JOURNAL
Необходимо заполнить следующие поля:
Поле |
Описание |
|---|---|
ID |
Уникальный идентификатор шаблона в системе |
Имя |
Имя шаблона |
Движок |
Наименования движка, который будет обрабатывать заполнение шаблона - Freemarker
|
Шаблоны |
Загрузите файл шаблона.
Шаблон должен быть добавлен в zip архиве. (Так как именно так шаблоны хранятся в базе)
В архиве должен быть файл с шаблоном в формате docx или ftl. Строгих правил к его наименованию нет, но желательно придерживаться общей концепции и называть файл как id шаблона.
Если шаблонов несколько (разделены по локализации), то при названии файлов в конце нужно приписывать суффиксы _ru, _en и т.п.
|
Модель |
Представляет собой мапинг ключ-значение, где в качестве ключа используется атрибут из шаблона, а в качестве значения атрибут, который берется из карточки.
См. ниже
|
Вычисляемые атрибуты |
Лист объектов с информацией о вычисляемых атрибутах.
Подробнее тут Вычисляемые атрибуты для шаблонов
|
Теги |
Список вспомогательных меток для удобного поиска
Подробнее тут Вычисляемые атрибуты для шаблонов
|
Заполнение модели
Ключ - атрибут, который используется в шаблоне, значение - атрибут, который берется из заполняемой карточки.
Указываются как атрибуты из самого типа данных, так и атрибуты, которые являются ассоциацией. Например:
В типе данных Договор есть атрибут Контрагент (counterparty). И, например, чтобы получить ИНН контрагента, необходимо указать counterparty.inn.
В типе данных Договор есть атрибут Юридическое лицо (legalEntity). И, например, чтобы получить полное наименование юридического лица, необходимо указать legalEntity.fullOrganizationName.
Пример заполненной модели:
Заполнение шаблона документа
Используется freemarker.
Синтаксис его следующий:
${…} в шаблоне будет заменено в сгенерированном выводе фактическим значением выражения внутри фигурных скобок.
теги FTL похожи на теги HTML (но содержат # или @ ), и FreeMarker интерпретирует их.
комментарии в FreeMarker начинаются с <#– и заканчиваются –>
кавычки вида
«пример»не распознаются. Необходимо ставить кавычки следующего вида"пример".
Например:
вывод переменной:
${contract}
вывод переменных с проверкой на null - если возвращаемое значение «пусто» (null) - выводится то, что указано между
" ". В данном случае пустое поле, которое можно заполнить вручную позднее:
${counterpartyInn!""}
конструкция «если, то .., иначе» - если Вид контрагента - ИП, то выводится ОГРНИП, если ЮЛ - то ОГРН:
[#if counterpartyKind == "individualEntrepreneur"]ОГРНИП: ${psrnsp}[#else] ОГРН: ${counterpartyOgrn!""}[/#if]системный атрибут дата в формате дд.мм.гггг:
date | fmt("dd.MM.yyyy")заголовок документа системный атрибут :
.disp
Добавьте шаблон в zip архив и прикрепите его в карточку шаблона документа. См. выше.
Настройка генерации контента из шаблона
Для автоматической генерации контента из шаблона в типе данных необходимо:
Далее на форме необходимо добавить элемент чекбокс:
В Имя свойства укажмте templated-content:autoGenerate.
При заполнении полей карточки при выставленном чекбоксе по данным формы будет заполняться шаблон.
Действие сгенерировать и скачать документ
Далее настройте действие
Примечание
См. больше о миросервисе трансформации
Пример использования
В модуле Договоры при выставленном чекбоксе «Сгенерировать из шаблона»:
файл-вложение будет сгенерирован по шаблону на основании введенных данных:
Так же файл будет доступен для предпросмотра: