Действие «Генерация документа из шаблона»
«Генерация документа из шаблона» — действие в сценарии действий, которое берёт ваш 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} (тип «link»)
{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. Получение готового файла
После выполнения действия в переменных появляется ссылка на готовый файл — обычно в поле «Имя переменной» внизу действия.
Дальше:
- Отправить клиенту — приложить как медиа в блоке (тип «Файл»);
- Сохранить — действие Google Диск или Яндекс Диск;
- Отправить менеджеру — действие «Приём и пересылка медиа» с адресатами;
- Прикрепить к письму — через HTTP-запрос в почтовый сервис.
Часть 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-код проверки).
Подстановки:
- Переменные — из анкеты клиента;
- Фото
signature—imageurlс URL подписи директора; - Фото
qr—qrcode, данные 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}с разным форматированием. Удалите и впишите заново. - Документ генерируется пустым — шаблон не загружен или потерян. Проверьте поле «Файл шаблона».
Что дальше
- Шаблоны замен — что можно вставлять в значения.
- WebApp Магазин — массивы товаров для цикла.
- Google Диск / Яндекс Диск — хранение готовых документов.
- Приём и пересылка медиа — отправка файла менеджеру.
- Списки — каталог сгенерированных документов.