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

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

Описание модуля Генератор документов приведено в документации по 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-2020, «1С-Битрикс», 2020
Наверх