Инструкция: как сформировать PDF-отчет с изображениями на Бипиуме
Когда все необходимые сведения уже хранятся в Бипиуме, формировать документ вручную необязательно. Данные из записи можно передать в сценарий автоматизации, собрать из них HTML, преобразовать его в PDF и сохранить готовый файл обратно в ту же запись.
В этой инструкции разберем именно такой сценарий. В качестве примера возьмем запись с данными об организации, товарах, сумме, комментарии и фотографиях. В результате по нажатию кнопки система сформирует PDF-отчет, в котором эти сведения будут представлены в заданном формате.
Создайте каталог для формирования PDF-отчета
Сначала подготовим запись, из которой впоследствии будет собираться документ. Для этого создадим каталог «Генерация PDF-отчета» и добавим в него поля, которые должны попасть в итоговый файл.

В демонстрационном примере используются наименование организации, номер, электронная почта, наименование товара, связанный каталог товаров, фотографии товара, сумма и комментарий. Товары хранятся в отдельном каталоге, где для каждой позиции доступны ее наименование и стоимость.
Такой набор позволяет одновременно показать в отчете обычные значения полей, связанные записи и изображения. Кроме того, в самой записи понадобятся элементы управления, с помощью которых будет запускаться формирование документа и сохраняться его результат.
Добавьте поля для запуска сценария и хранения файла
После подготовки основных данных добавим кнопку «Сформировать отчет». Именно она будет запускать сценарий автоматизации.
Рядом с ней понадобится поле, в которое будет загружаться готовый PDF. В демонстрации оно называется полем «Отчет». После выполнения сценария пользователь сможет открыть запись и увидеть сформированный файл непосредственно в ней.
В исходной настройке также предусмотрена кнопка «Сформировать отчет на оплату» и отдельное поле для счета на оплату. Однако в этой инструкции разбираем только формирование основного PDF-отчета, поскольку именно этот сценарий показан в транскрибации подробнее.
Получите данные текущей записи в сценарии автоматизации
Когда структура записи готова, можно перейти к настройке сценария. В демонстрации он называется «Генерация PDF-отчета» и состоит всего из двух основных компонентов: компонента кода и компонента конвертера.
Первым запускается компонент кода. В него передаются значения текущей записи через all values. Это позволяет получить данные, которые уже находятся в записи, и подготовить их к дальнейшему использованию.
На этом этапе мы пока не формируем PDF. Сначала нужно привести разные типы данных к виду, с которым будет удобно работать при создании HTML. Поэтому отдельно подготовим товары и изображения, а уже после этого соберем сам документ.
Подготовьте товары для вывода в таблице
Товары в примере находятся в связанном каталоге, поэтому их нельзя просто вывести как одно значение поля. Нужно получить записи товаров и передать их в структуру, из которой впоследствии будет сформирована таблица в отчете.
Для этого в компоненте кода создается переменная products.rows. В нее передаются записи товаров. Далее эти данные используются в HTML-разметке отчета.
В результате в PDF можно вывести отдельные строки с товарами, а не просто получить их перечень одним текстовым значением. Такой подход позволяет сохранить структуру исходных данных и представить ее в документе в более привычном для отчета виде.
Передайте изображения из записи в сценарий
Следующим шагом подготовим фотографии. В отличие от обычных полей, изображения нужно передать в HTML таким образом, чтобы конвертер смог использовать их при создании PDF.
В демонстрации изображения перебираются с помощью forEach. Для каждого изображения передается его URL, после чего эти значения сохраняются в отдельной переменной images.
Именно эта переменная затем используется при формировании HTML. Получается последовательная цепочка: изображение находится в записи, из него берется URL, URL передается в подготовленные данные, а затем эти данные используются в разметке будущего отчета.
Сформируйте HTML будущего отчета
Когда основные данные подготовлены, можно собрать структуру документа. Для этого в компоненте кода задается HTML.

В нем описываются стили и сама структура отчета: какие поля должны отображаться, где находится таблица товаров и в каком месте размещаются изображения. Подготовленные ранее переменные передаются в соответствующие части HTML.
Основные принципы здесь стандартны для HTML-разметки. Главное — использовать уже подготовленные данные записи вместо того, чтобы вписывать конкретные значения непосредственно в шаблон.
После формирования HTML результат сохраняется в переменную result. Именно она будет передана следующему компоненту сценария.
Настройте преобразование HTML в PDF
Теперь передадим полученный HTML в компонент конвертера. В нем выбирается вариант преобразования HTML в PDF.
В качестве содержимого указывается результат работы предыдущего компонента — result.html. То есть конвертер получает уже готовую структуру документа вместе с данными, которые были подставлены в HTML.
Дополнительно в настройках задаются параметры PDF. В демонстрации через JSON-объект задаются отступы документа. На этом этапе HTML превращается в готовый PDF-файл.
Сохраните сформированный PDF в запись
После настройки конвертации остается определить, куда должен попасть результат. В демонстрации файл сохраняется непосредственно в ту же запись, из которой были получены исходные данные.
Для этого указывается recordid, выбирается каталог генерации PDF-отчета и поле «Отчет». Имя готового файла задается как «Отчет.pdf».
Таким образом, результат не остается внутри сценария. После завершения автоматизации он появляется в записи и становится доступен пользователю там же, где находятся исходные данные.
Запустите формирование и проверьте результат
Теперь можно вернуться к подготовленной записи и нажать кнопку «Сформировать отчет». После этого запускается сценарий автоматизации.
Когда сценарий завершит работу, запись необходимо обновить. В поле «Отчет» появится сформированный PDF. В демонстрации в него попадают наименование организации, номер, комментарий, электронная почта, таблица товаров, сумма и фотография.
Таким образом, весь процесс для пользователя сводится к одному действию. При этом внутри сценария последовательно выполняются все необходимые операции: получение данных, подготовка товаров и изображений, формирование HTML, конвертация в PDF и сохранение файла.
Проверьте структуру готового документа
После получения файла стоит проверить не только наличие самого PDF, но и то, как в нем отображаются разные типы данных. В демонстрации отчет специально сделан простым, чтобы было понятно, откуда берется каждый элемент.
Отдельные поля записи выводятся как обычные значения, связанные товары — в виде таблицы, а фотография передается через URL и становится частью HTML, из которого затем создается PDF.
На этом настройка базового сценария завершена. Если структуру документа нужно изменить, это можно сделать на уровне HTML: изменить расположение элементов, добавить необходимые поля или скорректировать оформление, сохранив общую последовательность работы сценария.
Подробнее исходную демонстрацию можно посмотреть на форуме Бипиума: «Формирование PDF-отчета».
