Шаблоны документов

Примечание

Доступно только в Enterprise версии.

Настройка расположена в журнале http://localhost/v2/admin?journalId=document-templates&type=JOURNAL (Раздел администратора - Трансформации - Шаблоны документов)

../../_images/template_01.png

../../_images/template_02.png

Необходимо заполнить следующие поля:

Поле

Описание

ID

Уникальный идентификатор шаблона в системе

Имя

Имя шаблона

Движок

Наименования движка, который будет обрабатывать заполнение шаблона - Freemarker

Шаблоны

Загрузите файл шаблона.
Шаблон должен быть добавлен в zip архиве. (Так как именно так шаблоны хранятся в базе)
В архиве должен быть файл с шаблоном в формате docx или ftl. Строгих правил к его наименованию нет, но желательно придерживаться общей концепции и называть файл как id шаблона.
Если шаблонов несколько (разделены по локализации), то при названии файлов в конце нужно приписывать суффиксы _ru, _en и т.п.

Модель

Представляет собой мапинг ключ-значение, где в качестве ключа используется атрибут из шаблона, а в качестве значения атрибут, который берется из карточки.
См. ниже

Вычисляемые атрибуты

Лист объектов с информацией о вычисляемых атрибутах.

Теги

Список вспомогательных меток для удобного поиска

Заполнение модели

Ключ - атрибут, который используется в шаблоне, значение - атрибут, который берется из заполняемой карточки.

Указываются как атрибуты из самого типа данных, так и атрибуты, которые являются ассоциацией. Например:

В типе данных Договор есть атрибут Контрагент (counterparty). И, например, чтобы получить ИНН контрагента, необходимо указать counterparty.inn.

В типе данных Договор есть атрибут Юридическое лицо (legalEntity). И, например, чтобы получить полное наименование юридического лица, необходимо указать legalEntity.fullOrganizationName.

Пример заполненной модели:

../../_images/template_03.png

Заполнение шаблона документа

Используется freemarker.

Синтаксис его следующий:

  • ${…} в шаблоне будет заменено в сгенерированном выводе фактическим значением выражения внутри фигурных скобок.

  • теги FTL похожи на теги HTML (но содержат # или @ ), и FreeMarker интерпретирует их.

  • комментарии в FreeMarker начинаются с <#– и заканчиваются –>

  • кавычки вида «пример» не распознаются. Необходимо ставить кавычки следующего вида "пример".

Например:

  • вывод переменной:

${contract}

  • вывод переменных с проверкой на null - если возвращаемое значение «пусто» (null) - выводится то, что указано между " ". В данном случае пустое поле, которое можно заполнить вручную позднее:

${counterpartyInn!""}

  • конструкция «если, то .., иначе» - если Вид контрагента - ИП, то выводится ОГРНИП, если ЮЛ - то ОГРН:

    [#if counterpartyKind == "individualEntrepreneur"]ОГРНИП: ${psrnsp}[#else] ОГРН: ${counterpartyOgrn!""}[/#if]

  • системный атрибут дата в формате дд.мм.гггг:

    date | fmt("dd.MM.yyyy")

  • заголовок документа системный атрибут :

    .disp


../../_images/doc_contr_01.png

../../_images/doc_contr_02.png

Добавьте шаблон в zip архив и прикрепите его в карточку шаблона документа. См. выше.

Настройка генерации контента из шаблона

Для автоматической генерации контента из шаблона в типе данных необходимо:

  1. В тип данных добавить аспект Шаблонизируемый контент

../../_images/data_type_aspect_01.png
  1. В конфигурации аспекта выбрать шаблон:

../../_images/data_type_aspect_02.png

Далее на форме необходимо добавить элемент чекбокс:

../../_images/form_01.png

В Имя свойства укажмте templated-content:autoGenerate.

При заполнении полей карточки при выставленном чекбоксе по данным формы будет заполняться шаблон.

Действие сгенерировать и скачать документ

Далее настройте действие, как описано тут

Примечание

См. больше о настройках