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

Действие «Генерация документа из шаблона»

«Генерация документа из шаблона» — действие в сценарии действий, которое берёт ваш Word-файл с шаблонами {переменная}, подставляет реальные данные из переменных бота и отдаёт готовый .docx или PDF. Файл можно отправить клиенту, сохранить на Google Диск, приложить к письму.

Используется для: счетов, договоров, актов, смет, чеков, сертификатов, накладных, протоколов осмотра.

Когда использовать

  • Счёт на оплату для юрлица с реквизитами клиента.
  • Договор на услугу с подстановкой суммы, сроков, ФИО.
  • Акт выполненных работ после завершения заказа.
  • Сертификат прохождения курса с именем клиента и QR-кодом.
  • Накладная, смета, прайс.

Часть 1. Подготовка шаблона

Шаг 1. Создайте Word-документ

В Microsoft Word, Google Docs или другом редакторе подготовьте шаблон .docx (или .doc) — точно как готовый документ, но в местах данных вставьте шаблоны в фигурных скобках.

Шаг 2. Типы шаблонов

Переменная — {name}

Простая подстановка значения:

Договор № {dogovor_num} от {date}.
Клиент: {client_full_name}
Сумма: {sum_total} ₽

Цикл — \{#name}...{/name}

Для таблиц и списков. Внутри {#items}...{/items} доступны поля каждого элемента:

{#items}
{title} | {qty} шт. | {price} ₽ | {sum} ₽
{/items}

Бот развернёт цикл — каждая запись массива станет отдельной строкой.

Условие — \{#condition}...{#cond1}...{/}{#cond2}...{/}...{/}

Выводит блок только если выражение истинно:

{#has_discount}
Скидка: {discount_percent}%
{/has_discount}

Вложенные условия тоже допустимы.

Фото — {name} (тип «pic»)

В шаблоне в нужном месте поставьте {logo} — бот заменит на загруженное изображение или сгенерированный QR-код. Обязательно задайте ширину и высоту в пикселях в настройках действия.

{link} превратится в гиперссылку с указанным текстом и URL.

Шаблон договора

Скриншот 1. Word-шаблон с метками.


Часть 2. Настройка действия

Шаг 1. Добавьте действие

В сценарии действий → «Добавить действие»«Генерация документа из шаблона».

Шаг 2. Загрузите шаблон

Кнопка «Загрузить шаблон» → выберите .docx файл.

После загрузки шаблон будет привязан к этому действию (показывается ссылка «Файл шаблона»).

Шаг 3. Добавьте подстановки

В поле «Шаблон» выберите тип элемента (переменная, цикл, условие, фото, ссылка) → кнопка «Добавить». В развернутом блоке заполните соответствие.

Настройка подстановок

Скриншот 2. Элементы шаблона с привязкой к переменным.


Часть 3. Заполнение элементов

Переменная

ПолеЗначение
Имя переменной (в шаблоне файла)dogovor_num (то, что в фигурных скобках в Word)
Значение или переменнаяД-#{order_id} или конкретный текст

Цикл

ПолеЗначение
Имя циклаitems (из {#items}...{/items})
Переменные циклаДобавьте пары имя → значение для каждого поля

Пример:

  • Имя цикла: items
  • Переменная title#{cart_titles} (массив из cat_shop)
  • Переменная qty#{cart_counts}
  • Переменная price#{cart_prices}
  • Переменная sum#{cart_sums}

Бот сопоставит индексы массивов — каждая строка цикла = один элемент.

Условие

ПолеЗначение
Имя шаблона условияhas_discount
Имя условияcond1
Условие/переменная/значение#{discount} > 0 или true

Фото

ПолеЗначение
Имя шаблона изображенияlogo, qr, signature
Ширина / ВысотаВ пикселях
Тип:image (загрузить файл), imageurl (URL), qrcode (сгенерировать QR)
URL или Данные для QRЕсли выбран соответствующий тип

Ссылка

ПолеЗначение
Имя шаблонаsite_link
Текст ссылкиЧто увидит читатель
URLКуда ведёт

Часть 4. Получение готового файла

После выполнения действия в переменных появляется ссылка на готовый файл — обычно в поле «Имя переменной» внизу действия.

Дальше:


Часть 5. Типовые сценарии

Сценарий 1. Счёт на оплату

Шаблон Word:

СЧЁТ № {num} от {date}

Поставщик: ООО «Квесча»
Покупатель: {client_name}, ИНН {client_inn}

╔════════════════════════════════════════╗
║ Услуга | Кол-во | Цена | Сумма ║
{#items}
║ {title} | {qty} | {price} | {sum} ║
{/items}
╚════════════════════════════════════════╝

ИТОГО к оплате: {total} ₽

В действии:

  • Загрузить шаблон.
  • Переменная num#{order_id}.
  • Переменная date[CurrentDate].
  • Переменная client_name[Name].
  • Переменная client_inn#{client_inn}.
  • Цикл items ← массивы из WebApp Магазин.
  • Переменная total#{cart_total}.

После — отправить клиенту как файл.

Сценарий 2. Договор с подписью

Шаблон: текст договора с местами {client_full_name}, {contract_sum}, {date_start}, {date_end}, и в конце — {signature} (фото) и {qr} (QR-код проверки).

Подстановки:

  • Переменные — из анкеты клиента;
  • Фото signatureimageurl с URL подписи директора;
  • Фото qrqrcode, данные QR = https://check.company.com/?id=#{order_id}.

Сценарий 3. Сертификат с именем

Шаблон: дизайн сертификата + поле {participant_name}.

Подстановки:

  • Переменная participant_name[Name];
  • Дата выдачи — переменная cert_date[CurrentDate].

Отправляется клиенту после завершения курса.

Сценарий 4. Акт выполненных работ

Шаблон: акт с реквизитами + цикл по работам.

Подстановки:

  • Цикл works с переменными work_name, hours, price, total_per_work.
  • Сумма прописью через шаблон [SumInWords(#{total},RUB,И)].

Сценарий 5. Чек с QR-кодом

Шаблон: чек с табличкой товаров и QR-кодом для проверки.

Подстановки:

  • Цикл items (товары);
  • Фото check_qr (тип qrcode) с данными https://check.com/#{check_id}.

Часть 6. Архитектура

Принцип 1. Подготовьте шаблон тщательно

Word должен выглядеть как готовый документ — только с метками вместо данных. Все шрифты, отступы, стили — как в финальном виде.

Принцип 2. Имена переменных в шаблоне — без пробелов

В фигурных скобках только латинские буквы, цифры, _. Не {Имя клиента}, а {client_name}.

Принцип 3. Один шаблон = одна сущность

Не пытайтесь в один шаблон вставить «и счёт, и договор». Сделайте два действия с двумя файлами — иначе циклы и условия становятся неуправляемыми.

Принцип 4. Тестируйте на одном клиенте

Перед массовым использованием прогоните шаблон с реальными данными. Проверьте все условия, циклы, отступы. Word может «сломать» {переменную} при копипасте — пересоздайте поле.

Принцип 5. Сохраняйте копии в списки

После генерации сохраните URL файла, ID клиента, дату — в список «Документы». Понадобится для отчётности и повторной отправки.

Принцип 6. PDF для финальной отправки

.docx клиент может случайно отредактировать. После генерации конвертируйте в PDF (если Квесча предлагает) или сохраняйте в виде PDF.


Часть 7. Шаблоны и форматирование

Подстановки бота в значения

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

  • [Name], [FullName] — данные подписчика;
  • [CurrentDate], [CurrentTime] — текущая дата/время;
  • [AddDate([CurrentDate],30)] — через 30 дней;
  • [SumInWords(#{total},RUB,И)] — сумма прописью;
  • [Round(#{value},2)] — округление;
  • {{ #{price} * #{qty} }} — вычисление.

Системные шаблоны для документов

  • Сумма прописью: [SumInWords(1000,RUB,И)] → «Одна тысяча рублей»;
  • Дата с прибавкой: [AddDate([CurrentDate],30)];
  • Текущая дата: [CurrentDate];
  • Случайный код: [GenStr(8)] или [Random(1000,9999)].

Частые ошибки

  • Переменная не подставилась — несовпадение имени. {client_name} в Word, а в действии вы написали clientname. Регистр критичен.
  • Цикл выводит одну строку — массивы пустые или не указали все переменные цикла.
  • Условие не работает — значение не true / false. Используйте 1 / 0 или явные выражения #{x} > 0.
  • Картинка слишком мелкая/большая — забыли указать width и height в пикселях.
  • Word сломал метку — иногда {name} копипастится как { + name} с разным форматированием. Удалите и впишите заново.
  • Документ генерируется пустым — шаблон не загружен или потерян. Проверьте поле «Файл шаблона».

Что дальше