Фабрика документов

Excel: создайте и проверьте шаблон XLSX

Куда поставить поля в ячейках и строки цикла, как загрузить книгу и проверить результат. Готовый JSON и пример таблицы с артикулами.

Содержание руководства

XLSX-шаблон для «Фабрики документов» создаётся в Excel. В ячейках размещаются переменные CRM, а строки с товарами повторяются по циклу. Для начала достаточно листа с заголовком, данными клиента и таблицей позиций. Общая навигация находится в руководстве приложения.

1. Откройте форму и получите переменные

В приложении перейдите в «Шаблоны» → «Новый шаблон». Укажите «Название» и уникальный «Код». В поле «Тип» выберите XLSX, затем отметьте нужные карточки в блоке «Сущности шаблона». Например, для таблицы по сделке выберите сделку.

Нажмите «Открыть поля». Скопируйте переменные для выбранной сущности из каталога. Поля компании относятся к связанному клиенту, поля контакта к связанному человеку, а раздел «Моя компания» содержит данные вашей организации. Для пользовательских полей используйте фактический код своего портала.

Значения появятся при заполненных данных, связях и достаточном доступе. Шаблон не создаёт отсутствующую компанию или банковские реквизиты. Для нескольких типов карточек проверяйте источник каждого поля: deal.title остаётся названием сделки, даже если тот же файл разрешён для другого типа сущности.

2. Разместите обычные поля в Excel

Можно скачать учебное КП в XLSX и адаптировать готовую книгу. Перед использованием проверьте текст, реквизиты, суммы и печатную область.

Создайте книгу .xlsx. Назначьте ширину столбцов и оформление. Например, в первой строке можно написать «Заказ», а ниже разместить поля:

Ячейка Содержимое
A1 Заказ по сделке
B1 {{ deal.title }}
A2 Покупатель
B2 {{ company.name }}
A3 ИНН
B3 {{ company.inn }}

Переменную можно поместить отдельно или вместе с текстом: Покупатель: {{ company.name }}. Для готовых числовых данных удобнее отдельная ячейка. Не меняйте регистр скопированных полей и используйте прямые кавычки в параметрах фильтров.

3. Добавьте повторяющиеся строки товаров

Сначала разместите шапку «Название / Количество / Цена / Сумма». Ниже добавьте три отдельные строки листа. В первой поставьте начало цикла, во второй поля позиции, в третьей конец:

Например, в A5:D5 поставьте заголовки, в A6 начало, в A7:D7 поля, в A8 конец. Ячейки B6:D6 и B8:D8 оставьте пустыми. Слова «Начало», «Данные», «Конец» из таблицы ниже в файл переносить не нужно: они поясняют назначение строк.

Строка A B C D
Начало {{#products}}
Данные {{ item.name }} {{ item.qty }} {{ item.price | money_no_currency }} {{ item.sum | money }}
Конец {{/products}}

Шапка остаётся снаружи блока. Начало и конец нельзя помещать в одну ячейку со строкой данных. Не объединяйте ячейки через границы цикла или условия.

При генерации строка данных повторится по числу позиций, остальные строки листа сдвинутся. Для пустого списка товарных строк не будет. Название, количество, цены и порядок берутся из строк CRM; повтор одного товара не объединяет позиции.

4. Выведите артикул товара

Свойства товаров доступны в обновлении от 15.10.2026. Если их нет в каталоге, администратору нужно проверить обновление приложения и разрешение на товарный каталог. Для первой простой спецификации этот раздел можно пропустить и оставить таблицу из предыдущего шага.

В обновлённой версии найдите поле в каталоге «Товары» → «Свойства товара». Скопируйте его маркер. Если у свойства условный код property109, используйте такую таблицу; шапку «Название / Количество / Артикул» разместите перед блоком:

Строка A B C
Начало {{#products}}
Данные {{ item.name }} {{ item.qty }} {{ item.properties.property109 }}
Конец {{/products}}

Замените property109 реальным кодом своего свойства. Артикул выводится текстом, поэтому 00042 сохраняет начальные нули. Множественные значения соединяются через ; . Если для списочного поля Битрикс24 вернул только ID, вы увидите этот ID.

Используется свойство выбранного товара или вариации, без автоматического наследования от родителя. Пустое значение и свободная строка без товара дают пустую ячейку. Ошибка доступа к товару останавливает генерацию. Для списка описаний свойств в каталоге нужен администратор; подготовленный шаблон читает доступные пользователю значения без административных описаний.

5. Добавьте условие и нужный формат

Каталог тестовой версии: готовое выражение для артикула. На снимке код property119, в примерах ниже условный property109
Каталог тестовой версии: готовое выражение для артикула. На снимке код property119, в примерах ниже условный property109

Для условного блока Excel используйте отдельные строки. Например, строка КПП останется при истинном company.has_kpp:

Строка A
Начало {{#if company.has_kpp}}
Данные КПП: {{ company.kpp }}
Конец {{/if}}

Такой блок проверяет заполненность или истинность пути. Для него не поддерживаются произвольные сравнения и else; используйте готовый логический флаг.

Фильтры пишутся после |. money_no_currency выводит сумму без обозначения валюты, money добавляет рубль. Эти фильтры не выбирают символ по валюте сделки. Для даты из каталога можно использовать date("dd.MM.yyyy"): MM означает месяц, а mm минуты. Форматирование даты не переводит её в другой часовой пояс.

money и money_no_currency создают оформленное представление суммы. Не рассчитывайте, что такая ячейка останется числовой для формул. Если нужен расчёт Excel, поместите исходное число в отдельную ячейку без денежного фильтра, например {{ item.sum }}, задайте числовой формат средствами Excel и проверьте формулу на готовом файле.

6. Загрузите книгу и выполните пробу

Форма общая для обоих форматов. Для книги Excel выберите XLSX вместо показанного DOCX
Форма общая для обоих форматов. Для книги Excel выберите XLSX вместо показанного DOCX

В форме шаблона установите XLSX в поле «Тип», в поле «Файл» выберите подготовленную .xlsx и нажмите «Загрузить шаблон». Откройте карточку, проверьте вкладку «Переменные» и ошибки анализа. Для исправленного файла используйте «Загрузить новую версию». XLSX редактируется в Excel, встроенный редактор DOCX к этому формату не относится.

Во вкладке «Тестовая генерация» укажите JSON с данными именно для своего примера. Для таблицы «Название / Количество / Артикул» подойдёт:

{
  "deal": {"title": "Учебная поставка"},
  "company": {"name": "ООО Учебный пример", "inn": "0000000000"},
  "products": [
    {"name": "Товар А", "qty": 2, "price": 100, "sum": 200, "properties": {"property109": "001-А"}},
    {"name": "Товар Б", "qty": 1, "price": 50, "sum": 50, "properties": {"property109": "00042"}}
  ]
}

Нажмите «Проверить JSON» и «Сформировать документ». Когда файл будет готов, скачайте и откройте его в Excel. Ожидаются две строки товаров с количеством 2 и 1. Проверьте артикулы, ширину столбцов, переносы и расположение строк после блока.

Для таблицы с артикулом ожидается такой результат:

Название Количество Артикул
Товар А 2 001-А
Товар Б 1 00042
Тестовая генерация: в поле вводят полный JSON, затем проверяют его и формируют файл. На снимке учебный DOCX; для XLSX шаги те же
Тестовая генерация: в поле вводят полный JSON, затем проверяют его и формируют файл. На снимке учебный DOCX; для XLSX шаги те же

Тест использует введённые значения. Если в книге есть дополнительные поля компании или сделки, добавьте их в JSON либо проверьте отдельной генерацией из CRM.

Все данные примера вымышлены, включая ИНН. Для условного блока КПП добавьте в company поля "has_kpp": true и "kpp": "000000000" либо оставьте его скрытым. Для первой пробы используйте только перечисленные поля.

7. Проверьте документ на реальной карточке

Откройте подходящую сущность CRM, запустите создание документа приложением и выберите свой шаблон. Сравните результат с карточкой: количество и порядок позиций, цены, суммы и контрагента. Для обновления со свойствами нужен доступ приложения к каталогу товаров и доступ пользователя к товарам.

Проверьте отдельно повтор позиции, незаполненный артикул и строку без товара. Текстовый фильтр не заменяет отсутствующие реквизиты. Выбор нумератора пока не присваивает следующий номер и не увеличивает счётчик Битрикс24; для готового номера используйте поле CRM.

Если нужен шаблон Word, откройте инструкцию по DOCX. Дополнительные сценарии и настройки доступны в руководстве.