Документация / Шаблоны документов

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

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

Обзор

Шаблоны документов — это то, как Configo генерирует PDF — коммерческие предложения, счета, накладные, производственные листы — прямо из данных заказа. Откройте Настройки → Документы в сайдбаре проекта, чтобы увидеть шаблоны вашего проекта. Управление ими требует права Редактирование проекта; просмотр и генерация документов изнутри заказа использует отдельные права Просмотр документов / Редактирование документов (см. Участники и роли).

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

Редактор

Редактор — это шаблон в чистом HTML с двумя способами работы с ним: панель кода (с подсветкой синтаксиса, в основной области слева) и живой Просмотр, на который можно переключиться, отрендеренный по реалистичным примерным данным, чтобы видеть готовый макет без генерации реального заказа.

Боковая панель (или, на мобильном, панель над редактором) содержит:

  • Название (обязательно) — внутреннее название, показываемое в списке шаблонов. На самом документе не печатается.
  • Показывать в виджете — когда включено, этот шаблон становится доступен как кнопка печати внутри публичного виджета, так что клиент, настраивающий продукт, может сформировать свой экземпляр (например, коммерческое предложение) без участия вашей команды.
  • Логотип — изображение, показываемое везде, где ваш шаблон ссылается на {{{logo}}} (см. ниже). Необязательно; если не задано, шаблон получает текст CONFIGO на этом месте.
  • Черновики — пять отправных точек: Накладная, Счёт, Счёт (таблица), Коммерческое предложение и Производственный лист. Нажатие на любой из них заменяет текущее содержимое редактора готовым макетом для этого типа документа — самый быстрый способ начать, не набирая HTML с нуля. Это разрушительно для того, что сейчас в редакторе, так что используйте до того, как внесли изменения, которые хотите сохранить.

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

Язык шаблонов

Шаблоны — это обычный HTML с плейсхолдерами Handlebars, заполняемыми данными печатаемого заказа. Доступные переменные верхнего уровня:

  • order — серийный номер, даты, суммы оплаты/скидки/подытога/итого (заранее отформатированные как строки с валютой) и остальные поля заказа.
  • contact — имя, email, телефон, адрес, примечание.
  • products — массив, по одной записи на каждую позицию заказа: название, количество, единица, закупочная/розничная цена, наценка и скидка, а также вложенные массивы materials и parts (заполняются, когда позиция пришла из калькулятора с Расчётами или Деталями — для вручную добавленного продукта они пусты).
  • logo — заранее отрендеренный HTML <img> (или текст-заглушка) для настроенного в шаблоне логотипа.

Ссылайтесь на поле как {{order.serial}}, {{contact.name}} и так далее. Перебирайте позиции циклом {{#each products}}...{{/each}} и используйте {{#if contact.email}}...{{/if}}, чтобы условно показывать необязательные поля. Используйте элемент управления Copy JSON в редакторе, чтобы скопировать точный объект примерных данных, используемых для предпросмотра, — самый быстрый способ увидеть полную форму каждого доступного поля, включая вложенные массивы materials/parts, не гадая.

Используйте {{{logo}}} с тройными фигурными скобками — это выводит сырой HTML (тег <img>), а не HTML-экранированную строку, которую дал бы обычный {{logo}}.

Какой HTML разрешён

Сгенерированный вывод санитизируется перед рендерингом или преобразованием в PDF, так что переживает только безопасное подмножество HTML:

  • Разрешённые теги: div, span, style, hr, заголовки (h1h6), strong, em, br, p, списки (ul/ol/li) и таблицы (table/thead/tbody/tr/td/th), а также img.
  • Разрешённые атрибуты: style, class, src, alt, width, height и атрибуты интервалов таблицы (colspan, rowspan, cellspacing, cellpadding).
  • Всё остальное — ссылки <a>, <script>, обработчики событий в атрибутах (onclick, …), произвольные атрибуты data-* — молча вырезается. Ошибки за использование неподдерживаемого тега не будет; он просто не появится в выводе. Оформляйте документ через блок <style> и встроенный атрибут style, а не через внешние таблицы стилей или скрипты, которые вообще не поддерживаются.

Генерация документа из заказа

Шаблоны не печатаются с этой страницы настроек. Как только шаблон создан, он появляется кнопкой в панели инструментов над списком продуктов внутри панели деталей заказа — нажмите её, чтобы просмотреть или сгенерировать PDF для этого конкретного заказа. См. Заказы для этого сценария; шаблоны, отмеченные Показывать в виджете, также могут быть напечатаны самим клиентом прямо внутри публичного виджета-калькулятора.