Печатные шаблоны
Печатные шаблоны позволяют генерировать документы из LogiFlow: счета, акты, реестры, формы по заявкам и отправлениям. Один раз настроенный шаблон автоматически подставляет данные из финансового документа, заявки или отправления в готовый файл.
LogiFlow работает только с Excel-шаблонами в форматах .xlsx и .xlsm. Старые форматы .xls и .xlsb не принимаются: откройте файл в Excel и сохраните его как .xlsx. Файл с паролем на открытие тоже не загрузится — сохраните его без пароля. Шаблон не должен содержать макросы. Форматы DOCX (Word), PDF и HTML не поддерживаются для загрузки шаблона. Готовый документ при этом можно получить в двух форматах — PDF или Excel (.xlsx): формат выбирается в окне предпросмотра.
Где находятся
Раздел Настройки → Документы и UI → Печатные шаблоны.
Создавать и редактировать шаблоны компании могут администратор и руководитель. Глобальные шаблоны (общие для всех компаний) создаёт только администратор платформы.
Для каких сущностей
Шаблон создаётся под одну из трёх категорий:
| Категория | Значение | Источник данных |
|---|---|---|
| Финансы | finance | Финансовый документ (счёт/платёж) |
| Отправки | shipment | Отправление |
| Заявки | request | Заявка |
Отдельной категории шаблона для контрагента нет. Финансовые документы покрываются категорией «Финансы».
Создание шаблона
- Нажмите «Добавить шаблон» — откроется окно «Загрузка печатного шаблона».
- Загрузите файл шаблона — Excel-файл (
.xlsxили.xlsm) с переменными в ячейках в виде{{...}}. Максимальный размер — 10 МБ. - Введите название — как шаблон будет называться в меню печати.
- Выберите категорию: Заявки, Отправления или Финансы.
- При необходимости добавьте описание.
- Нажмите «Загрузить шаблон».
Файл проходит проверку безопасности (структура Excel, отсутствие подозрительных макросов, защита от «zip-бомб»). Если файл не является корректным Excel — система его отклонит.
Переменные в шаблоне
Переменные пишутся прямо в ячейках Excel-файла в формате {{путь.к.значению}}. Это плоские плейсхолдеры — обращение к значению по точечному пути.
Конструкции вида {{#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» по названию. Чтобы ваша собственная форма тоже печатала приложение:
- Возьмите за основу стоковый шаблон CMR (у него уже два листа) — или добавьте в свой файл второй лист.
- В шапке листа-приложения (строки 1–3) поставьте ячейку
{{#keep_sheet_if:cargo.annex.needed}}— лист попадёт в документ только при переполнении таблицы граф 6–12, иначе будет удалён целиком. - В строке таблицы поставьте
{{cargo.annex.table}}— она размножится на все позиции груза (колонки: №, знаки ДОПОГ, кол-во мест, упаковка, наименование, код ТН ВЭД, вес, объём) плюс строка ИТОГО. - Упоминание в графе 5 «Прилагаемые документы» даёт переменная
{{cargo.annex.note}}— при отсутствии переполнения она пустая.
Порог «больше шести позиций» задан системой по числу строк стокового бланка и на размер таблицы вашей формы не смотрит.
Известные ограничения
- Шаблоны — только Excel (без DOCX, PDF, HTML); готовый документ выгружается как XLSX или PDF — формат выбирается при скачивании.
- Нет циклов/условий (
{{#each}},{{#if}}); для повторяющихся строк используйте динамические таблицы{{...table}}. - Внешние ссылки и подозрительные макросы в файле блокируются проверкой безопасности.
Что дальше
- Кастомные поля — поля, которые потом вставляются в шаблон.
- Справочники и настройки — где настраиваются счета, статьи, валюты.
- Финансовые операции — откуда берутся данные для финансовых шаблонов.