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

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

Описание и основные классы

Генератор документов - модуль для создания и работы с документами.

Перед использованием модуля необходимо проверить установлен ли он, и подключить его при помощи конструкции:

\Bitrix\Main\Loader::includeModule('documentgenerator');

Класс Описание
Основные классы
Body Класс-парсер. Нужен для доступа к контенту шаблона. Позволяет выполнить замену плейсхолдеров на реальные значения.
Docx Наследник класса Body.
Docxxml Наследник класса Body.
DataProvider Абстрактный класс поставщика данных. Реализующие его классы отдают поля и значения. В модуле есть несколько базовых наследников этого класса. Любой DataProvider в одном из своих полей может вернуть другой DataProvider, уровень вложенности неограниченный.
EntityDataProvider Наследник класса DataProvider для работы с таблетами ORM.
HashDataProvider Наследник класса DataProvider для работы с простыми провайдерами в виде хеша.
ArrayDataProvider Наследник класса DataProvider. Предоставляет доступ к множественным значениям одного поля.
DataProviderManager Синглтон, хранит в себе кеш провайдеров. Здесь сосредоточены методы для манипуляции данными от провайдеров - их инициализация, получение значений и пр.
Template Служит для сопоставления плейсхолдеров из файла (Body) и того, каким образом нужно получить значения этих плейсхолдеров. Правила получения данных состоят из (в порядке повышения приоритета) настроек полей по умолчанию, настроек плейсхолдеров по умолчанию (не используется), настроек плейсхолдеров для текущего шаблона (не используется).
Document Служит для генерации экземпляра документа, либо работы с уже существующим. Создается на основе шаблона, который отдает файл + настройки полей + тип основного провайдера. Далее перед генерацией документу необходимо передать значения полей / плейсхолдеров. После этого документ можно сгенерировать. После генерации он будет автоматически сохранен в таблице документов.

Смотрите также:

Вспомогательные классы

Класс Описание
Storage Интерфейс и набор классов, отвечающих за доступ к файловой системе. Представлены тремя уровнями иерархии - физические файлы, b_file и диск. По умолчанию, если диск установлен - файлы всегда кидаются туда. Если диска нет - значит b_file.
Driver Вспомогательный хелпер-синглтон. Здесь лежат методы для агентов.
getRegionsList() Метод возвращает список регионов в виде массива. Ключ - код региона, значение - массив вида.
[
	'CODE' => '',// код региона, совпадает с ключем массива
	'TITLE' => '',// языкозависимое название региона (на текущем языке)
	'LANGUAGE_ID' => '',// ид языка
];
getCurrentRegion() Метод возвращает текущий регион. Ответ как в методе getRegionsList(), но там массив региона.

ORM-таблеты

Класс Описание
ORM-таблеты (в папке \Bitrix\DocumentGenerator\Model\)
DocumentTable Экземпляры документов.
ExternalLinkTable Короткие ссылки.

С версии documentgenerator 20.100.0 в таблицу добавлены колонки для хранения времени (VIEWED_TIME) и IP-адреса (VIEWED_IP) первого просмотра публичной ссылки (не сотрудником портала).

FieldTable Настройки для переопределения плейсхолдеров. Пока что не используется.
FileTable Файлы модуля. Также этот класс выступает прослойкой между интерфейсом Storage и базой данных.
SpreadsheetTable Настраиваемые таблицы. Пока что не используется.
TemplateTable Экземпляры установленных шаблонов.
TemplateProviderTable Связь шаблон - провайдер.
TemplateUserTable Связь шаблон - коды доступа.

События

Событие Описание С версии
onNumberGeneratorsClassesCollect Событие передаёт API нумератора, чтобы собрать из модулей всех возможных поставщиков данных для генерации номеров.


© «Битрикс», 2001-2024, «1С-Битрикс», 2024