Сгенерировать документ
Используется для создания документа из заранее загруженного шаблона. Поддерживаются форматы .xslx и .docx. Для его использования необходимо создать файл шаблона размеченного тегами, загрузить файл в Bpium и подготовить JSON с тегами.

Когда использовать
Используйте Сгенерировать документ, когда нужно автоматически заполнить шаблон документа данными из Бипиума. Типичные примеры:
Сформировать договор с подстановкой данных клиента
Создать акт выполненных работ
Сгенерировать коммерческое предложение с таблицей товаров
Заполнить отчёт в Excel из данных каталога
Настройка компонента
Секция «Общие свойства»
Поле | Описание |
Название | По умолчанию «Сгенерировать документ». Можно изменить на своё |
Описание | Необязательное поле |
Секция «Шаблон»
Поле | Описание |
Путь к шаблону | Способ указания шаблона: |
При выборе «Файл из каталога»
%20(1).png)
Поле | Описание |
Каталог | Каталог, в котором находится запись с шаблоном |
ID записи | Идентификатор записи, содержащей файл шаблона. Формат: значение или выражение |
Поле | Идентификатор поля типа «Файл», в котором хранится шаблон |
Важно: Если в поле типа «Файл» несколько файлов, будет взят первый.
При выборе «URL к файлу»
%20(1).png)
Поле | Описание |
URL шаблона | Ссылка на файл шаблона в формате |
Пример: "https://my-portal.org/files/template.docx"
Секция «Данные»
Ожидает данные которые будут переданы в шаблон, для вставки. Данные можно вводить как в формате «Ключ = значение», так и в виде «JSON» строки.
Поле | Описание |
Формат значений | Способ передачи данных в шаблон: |
Данные | Значения, которые будут подставлены в шаблон. Кнопка «+ Добавить» позволяет добавить несколько пар |
Формат значений: «Формат ключ = значение»
%20(1).png)
В данном формате вы задаете ключи которые можно использовать дальше в шаблоне. В отличии от типа JSON поле ключ не считаемое, это означает, что наименование ключа статично.
key1: value1, // Ключ = значение key2: { // Ключ с вложенным ключом key3: value3 }
Формат значений: Формат «JSON - объект»
%20(1)%20(1)%20(1).png)
Позволяет записывать строку в формате JSON и в отличие от предыдущего формата поле ввода считаемое, поэтому в качестве любой части, в том числе и ключа, может быть использован результат вычисления.
{ key1: value1, // Ключ = значение key2: { // Ключ с вложенным ключом key3: value3 }, [key4]: value4 // Переменная в качестве ключа. }
Секция «Результат»
Формат возврата готового файла.
Поле | Описание |
Сохранить как | Способ сохранения сгенерированного документа: |
Сохранить как: Файл в запись

Сохраняет результат в поле типа Файл в указанной записи.
Сохранить как: URL в переменную
%20(1).png)
Поле | Описание |
Каталог | Каталог, в котором находится запись для сохранения |
ID записи | Идентификатор записи. Формат: значение или выражение |
Поле | Идентификатор поля типа «Файл», в которое сохраняется документ |
Использование
Подготовка шаблона
Первым делом вам необходимо определиться с тем, какие данные будут использованы в документе.
%20(1).png)
Для разметки шаблоны применяются теги, которые повторяют структуру передаваемых в компонент данных. Теги обрамляются двойными фигурными скобками - {{ }}.
Пример
У нас есть данные которые мы отправляем в компонент:
// Для формата "Ключ = значение" executor= { "name": "Роговский и партнеры", "inn": 34834529585, "kpp": 2384384, "address": "г. Северодвинск, ул. Непонятная, д. 12, оф. 404", "table":[{"number":"one", "price":"12"}, {"number":"two", "price":"42"}] customer = { "name": "Продаван", "inn": 12334546564, "kpp": 9785545, "address": "г. Альметьевск, ул. Героя, д. 3, оф. 504" } // Для формата "JSON" {"executor": { "name": "Роговский и партнеры", "inn": 34834529585, "kpp": 2384384, "address": "г. Северодвинск, ул. Непонятная, д. 12, оф. 404", "table":[{"number":"one", "price":"12"}, {"number":"two", "price":"42"}], "customer": { "name": "Продаван", "inn": 12334546564, "kpp": 9785545, "address": "г. Альметьевск, ул. Героя, д. 3, оф. 504" } } }
Для того что бы вставить в текст наименование компании-заказчика мы будем использовать тэг {{executor.name}}, что соответствует иерархической структуре переданных данных. Для формирования списков и строк таблиц (множимые данные) нужно присвоить массив объектов с одинаковой структурой.
Использование множимых данных в шаблоне возможно только в соответствующей структуре. К примеру: вы можете использовать их только создав первый элемент списка или первую строку таблицы
%20(1)%20(1).png)
... "table":[{"number":"one", "price":"12"}, {"number":"two", "price":"42"}], ...
Тегирование происходит по тому же принципу, что и с другими данными:
{{table.number}}, {{table.price}} размножат строки по количеству элементов массива и заполнят соответствующими свойствами объектов массива.
Пограничные события

Компонент поддерживает 2 типа пограничных событий:
Ошибка — выход из компонента, если произошла какая-либо ошибка
Таймаут — выход из компонента, спустя заданное ограничение по времени
Если компонент завершился с ошибкой, но на нем не было пограничного события, то процесс завершается. Сообщение ошибки возвращается в результатах процесса.