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

Примечание

Доступно только в 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 архив и прикрепите его в карточку шаблона документа. См. выше.

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

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

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

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

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

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

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

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

Далее настройте действие

Примечание

См. больше о миросервисе трансформации

Пример использования

В модуле Договоры при выставленном чекбоксе «Сгенерировать из шаблона»:

файл-вложение будет сгенерирован по шаблону на основании введенных данных:

Так же файл будет доступен для предпросмотра: