Примеры ниже описывают разметку. Наименования, количества и цены подставятся из выбранной карточки CRM при генерации.
Как устроен список товаров
products — список позиций, а item — текущая позиция внутри повторения. Поэтому {{ item.name }} в строке цикла означает название очередного товара, а не название сделки.
В учебном бланке используем наименование, количество, цену и сумму строки. Для дополнительных характеристик найдите соответствующие поля в каталоге вашего портала. Не подменяйте отсутствующее поле похожим по названию.
Таблица в Word
Создайте настоящую таблицу Word. Заголовки колонок расположите перед циклом. Следом подготовьте отдельную строку начала, строку данных и отдельную строку завершения:
{%tr for item in products %}
{{ loop.index }} {{ item.name }} {{ item.qty }} {{ item.sum | money }}
{%tr endfor %}
Здесь каждая строка примера соответствует строке таблицы, а выражения строки данных распределяются по отдельным ячейкам. Это не три абзаца, которые достаточно вставить в обычный текст документа.
При формировании служебные строки удаляются, строка данных повторяется. Если заголовок поместить внутрь повторения, он может появиться возле каждой позиции. Проверяйте результат в Word, а не только отображение исходного кода.
Таблица в Excel
В XLSX начало и конец также занимают отдельные строки листа:
{{#products}}
{{ item.name }} {{ item.qty }} {{ item.price }} {{ item.sum }}
{{/products}}
Разместите четыре выражения в четырёх ячейках строки данных. Не объединяйте ячейки через границы блока. После расширения таблицы проверьте строки ниже, формулы и область печати.

Проверьте три размера списка
| Данные сделки | Что должно получиться |
|---|---|
| Нет товаров | Нет строк с вымышленными позициями |
| Один товар | Одна строка данных |
| Несколько товаров | По строке на каждую позицию |
Добавьте длинное название и дробное количество, если такие значения встречаются в работе. Пустой список — допустимый случай данных, но компания должна решить, можно ли отправлять такой документ клиенту.
Цена и сумма требуют разных проверок
Не заменяйте сумму строки произвольным произведением, если в CRM используются скидки и налоги. Сначала определите, какое значение нужно клиенту, и выберите подходящее поле. Итоги сверяйте с исходной карточкой.
Фильтр
moneyоформляет сумму в рублях. Он не переключается на валюту сделки.
В Excel оформленная строка с валютой может не подойти для дальнейших вычислений: проверьте тип результата перед использованием формул.
Почему строки не повторяются
Частые причины — неверное имя списка, разное имя переменной внутри цикла, начало и конец в одной строке или разметка Word, вставленная в Excel. Ещё одна причина — отсутствие товаров в самой карточке, хотя тестовая генерация использовала непустой учебный список.
Сначала проверьте источник данных. Затем сравните конструкцию со встроенными примерами. После исправления сформируйте новый файл: предыдущий результат не изменится.
Частые вопросы
Во встроенном генераторе Битрикс24 тоже есть таблица товаров?
Да. Наличие товарной таблицы само по себе не является отличием приложения. Здесь рассмотрен синтаксис «Фабрики документов» для DOCX и XLSX.
Можно ли тем же способом вывести задачи?
Принцип повторения похож, но используется список tasks и другие поля. Простая замена названия списка без изменения полей товара не создаст корректный отчёт.
Полные примеры доступны в инструкции приложения. Готовые основы и назначение продукта описаны на странице «Фабрики документов».