Документация для разработчиков
Темная тема

Генератор документов

Описание модуля Генератор документов приведено в документации по D7.

Архитектурно REST-api большей частью соответствует PHP-api модуля. Сам набор REST-методов покрывает все возможности модуля.

На данный момент есть два scope для работы с генератором документов:

  • Методы crm.documentgenerator.*. Результаты работы этих методов отображаются в интерфейсе CRM;
  • Методы documentgenerator.*. Результат работы этих методов доступен только на уровне REST.

Из методов одного scope нельзя получить доступ к данным другого:

  • Нельзя создать документ CRM с шаблоном для REST;
  • Нельзя использовать данные CRM при работе с методами documentgenerator.*.

Поддерживаются следующие типы полей и их модификаторы:

  • IMAGE - изображения;
  • STAMP - печати и подписи;
  • DATE - даты;
  • NAME - имена.

Типы полей Деньги и Адрес реализованы внутри модуля crm, поэтому использовать их в REST этого модуля не получится. Если надо вывести такие данные - придётся передавать их в уже сформированном виде.

Есть возможность использовать массивы для вставки в таблицы и повторяющиеся блоки.

Отличие параметров методов разных scope

“Изнутри” методы идентичны. По факту методы crm.documentgenerator.* после пред-обработки параметров вызывают методы documentgenerator.*. Но есть ряд отличий:

  • На вход методов crm.documentgenerator.* необходимо вместо имен провайдеров передавать ID типа сущности CRM (параметр entityTypeId);
  • На вход методов crm.documentgenerator.* необходимо вместо параметра value передавать параметр entityId - ID сущности CRM


Шаблоны

Все создаваемые этим api шаблоны и документы привязаны к модулю REST. Через scope documentgenerator нельзя обращаться к шаблонам и документам других модулей. Поэтому moduleId в данных о шаблоне всегда будет rest. Даже если в add или update указать другой модуль, он не будет изменён.

Для работы REST доступны только два провайдера:

  • Bitrix\DocumentGenerator\DataProvider\Rest - всегда должен быть указан в качестве провайдера для шаблона
  • Bitrix\DocumentGenerator\DataProvider\HashDataProvider - используется для передачи данных в таблицы / повторяющиеся блоки

Привязка шаблона к пользователю самими REST-методами никак не учитывается. Но её можно использовать на стороне приложения.

Нумераторы

Для работы с нумераторами есть методы documentgenerator.numerator.*, описанные тут.

Следует учесть, что через данный скоуп есть возможность получить доступ ко всем нумераторам для документов. В том числе к тем, которые работают в CRM. Но через REST обновить / удалить можно только тот нумератор, который был создан через REST.

Список регионов

Каждый шаблон привязан к определенной стране. Список стран фиксирован и на данный момент состоит из:

ru - Россия

by - Беларусь

kz - Казахстан

ua - Украина

br - Бразилия

mx - Мексика

de - Германия

uk - Великобритания

pl - Польша

Начиная с версии documentgenerator 18.6.1 появилась возможность добавлять свои регионы. Для управления ими появился отдельный раздел.



Итоги

Что сделать можно?

  • Создать документы на основе шаблонов в формате .docx файлов;
  • В шаблон можно вставить списки с произвольным количеством элементов через таблицы или повторяющиеся блоки;
  • В шаблон можно вставить изображения, в том числе из списков;
  • Вставить поля в виде html с частичным сохранением форматирования;
  • Создать документы, отправить их и отследить просмотр без участия пользователя (через роботов).

Что сделать нельзя?

  • Вставить множественное значение поля типа «файл»;
  • Вставить таблицы и изображения из html;
  • Вставить векторные изображения;
  • Передача форматирование выполняется не полностью.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024