Шаблоны документов
Примечание
Доступно только в Enterprise версии.
Настройка расположена в журнале http://localhost/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.
При заполнении полей карточки при выставленном чекбоксе по данным формы будет заполняться шаблон.
Действие сгенерировать и скачать документ
Далее настройте действие, как описано тут
Примечание
См. больше о настройках