Перейти к основному содержимому

Печатные шаблоны

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

Формат шаблонов — только Excel

LogiFlow работает только с Excel-шаблонами в форматах .xlsx и .xlsm. Старые форматы .xls и .xlsb не принимаются: откройте файл в Excel и сохраните его как .xlsx. Файл с паролем на открытие тоже не загрузится — сохраните его без пароля. Шаблон не должен содержать макросы. Форматы DOCX (Word), PDF и HTML не поддерживаются для загрузки шаблона. Готовый документ при этом можно получить в двух форматах — PDF или Excel (.xlsx): формат выбирается в окне предпросмотра.

Где находятся​

Раздел Настройки → Документы и UI → Печатные шаблоны.

Создавать и редактировать шаблоны компании могут администратор и руководитель. Глобальные шаблоны (общие для всех компаний) создаёт только администратор платформы.

Для каких сущностей​

Шаблон создаётся под одну из трёх категорий:

КатегорияЗначениеИсточник данных
ФинансыfinanceФинансовый документ (счёт/платёж)
ОтправкиshipmentОтправление
ЗаявкиrequestЗаявка
Контрагента и «операции» нет

Отдельной категории шаблона для контрагента нет. Финансовые документы покрываются категорией «Финансы».

Создание шаблона​

  1. Нажмите «Добавить шаблон» — откроется окно «Загрузка печатного шаблона».
  2. Загрузите файл шаблона — Excel-файл (.xlsx или .xlsm) с переменными в ячейках в виде {{...}}. Максимальный размер — 10 МБ.
  3. Введите название — как шаблон будет называться в меню печати.
  4. Выберите категорию: Заявки, Отправления или Финансы.
  5. При необходимости добавьте описание.
  6. Нажмите «Загрузить шаблон».

Файл проходит проверку безопасности (структура Excel, отсутствие подозрительных макросов, защита от «zip-бомб»). Если файл не является корректным Excel — система его отклонит.

Переменные в шаблоне​

Переменные пишутся прямо в ячейках Excel-файла в формате {{путь.к.значению}}. Это плоские плейсхолдеры — обращение к значению по точечному пути.

Никакого Handlebars-синтаксиса

Конструкции вида {{#each ...}}, {{#if ...}}, {{/each}} не поддерживаются. Логику циклов и условий в шаблоне писать нельзя — есть только подстановка значений и специальные динамические таблицы (см. ниже).

Примеры (категория «Финансы»)​

{{finance.number}} — номер документа
{{finance.amount_formatted}} — сумма с форматированием
{{finance.payment_date_ru}} — дата платежа прописью/в рус. формате
{{finance.operation_type}} — тип операции
{{currency.code}} — код валюты
{{article.name}} — статья

{{account.name}} — название счёта/организации
{{account.requisites.inn}} — ИНН
{{account.requisites.kpp}} — КПП
{{account.requisites.bank_name}} — банк
{{account.requisites.bank_account}} — расчётный счёт
{{account.requisites.correspondent_account}} — корсчёт
{{account.requisites.bik}} — БИК
{{account.requisites.legal_address}} — юридический адрес

{{client.name}} — наименование клиента
{{client.phone}} — телефон клиента

Примеры (категория «Заявка», тариф)​

{{request.rate}} — условия тарифа одной строкой: «3.50 EUR / 1 кг»
{{request.tariff_name}} — название тарифа
{{request.tariff_rate}} — ставка числом: «3.50»
{{request.tariff_currency}} — код валюты: «EUR»
{{request.tariff_unit}} — единица измерения: «кг» или «м³»

Значения берутся из снимка условий, зафиксированного в заявке при выборе тарифа, а не из текущего состояния справочника тарифов. У заявки без тарифа все эти переменные подставляются пустой строкой.

Кладовщику тариф в документ не подставляется

Если печатную форму генерирует пользователь с ролью Кладовщик, тарифные переменные подставляются пустыми — ставка скрыта от этой роли на всех путях, включая печать.

Динамические таблицы​

Для повторяющихся строк (позиции услуг, кастомные поля) используется специальный синтаксис {{путь.table}} — система разворачивает его в несколько строк:

{{service_items.table}} — таблица позиций услуг документа
{{custom_fields.table}} — таблица кастомных полей (для финансов)
{{custom.table}} — таблица кастомных полей (для отправлений/заявок)
{{custom.table:name,value}} — таблица с явным указанием колонок

Также доступно обращение к конкретному элементу по индексу:

{{custom.items[0].name}} — название первого кастомного поля
{{custom.items[0].value}} — значение первого кастомного поля

Кнопка «Справка по переменным»​

На странице Печатные шаблоны (вверху справа) есть кнопка «Справка по переменным». Она открывает полный список доступных переменных по категориям (Финансовая операция, Счёт/Касса, Реквизиты счёта/кассы, Реквизиты клиента, Контрагент и т. д.), включая кастомные поля, которые вы создали ранее. Список можно выгрузить в Excel (кнопка «Скачать XLS»).

Не угадывайте имена

Всегда сверяйтесь со «Справкой по переменным» — там актуальные имена. Опечатка в пути означает, что значение просто не подставится.

Использование шаблона​

В карточке финансового документа / заявки / отправления есть кнопка Печать (или экспорт документа). Открывается список доступных шаблонов для этой сущности. У каждого шаблона две кнопки:

  • Скачать — предлагает выбрать формат: PDF-документ или Excel (XLSX). Документ генерируется сразу в выбранном формате.
  • Предпросмотр — открывает документ прямо в окне. В просмотре есть своя кнопка скачивания (стрелка вниз в панели сверху) с тем же выбором формата. PDF оттуда — ровно то, что видно на экране, второй раз документ не собирается.

После генерации система может вернуть предупреждения, если часть переменных не нашла данных, — проверьте такие места в документе.

Хорошие практики​

  • Стартуйте с реального документа. Возьмите готовый Excel-файл, замените значения в ячейках на переменные {{...}}, загрузите. Это быстрее, чем верстать с нуля.
  • Тестируйте на реальных данных. После загрузки сгенерируйте документ из настоящего счёта/заявки и проверьте все ячейки.
  • Не вписывайте бизнес-логику в шаблон. Шаблон — для оформления. Все расчёты делает система; в шаблоне только подстановка готовых значений (используйте *_formatted/*_ru варианты для красивого вывода).
  • Версионируйте. Меняете шаблон существенно — заведите новый под другим названием, чтобы старые документы можно было воспроизвести.

Приложение к CMR в своём шаблоне​

Стоковая CMR при более чем шести позициях груза печатает второй лист — «Приложение №1» с полным перечнем и строкой ИТОГО. Это свойство файла шаблона, а не типа документа: система не распознаёт форму «как CMR» по названию. Чтобы ваша собственная форма тоже печатала приложение:

  1. Возьмите за основу стоковый шаблон CMR (у него уже два листа) — или добавьте в свой файл второй лист.
  2. В шапке листа-приложения (строки 1–3) поставьте ячейку {{#keep_sheet_if:cargo.annex.needed}} — лист попадёт в документ только при переполнении таблицы граф 6–12, иначе будет удалён целиком.
  3. В строке таблицы поставьте {{cargo.annex.table}} — она размножится на все позиции груза (колонки: №, знаки ДОПОГ, кол-во мест, упаковка, наименование, код ТН ВЭД, вес, объём) плюс строка ИТОГО.
  4. Упоминание в графе 5 «Прилагаемые документы» даёт переменная {{cargo.annex.note}} — при отсутствии переполнения она пустая.

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

Известные ограничения​

  • Шаблоны — только Excel (без DOCX, PDF, HTML); готовый документ выгружается как XLSX или PDF — формат выбирается при скачивании.
  • Нет циклов/условий ({{#each}}, {{#if}}); для повторяющихся строк используйте динамические таблицы {{...table}}.
  • Внешние ссылки и подозрительные макросы в файле блокируются проверкой безопасности.

Что дальше​