Генератор документов
Описание и основные классы
Генератор документов - модуль для создания и работы с документами.
Перед использованием модуля необходимо проверить установлен ли он, и подключить его при помощи конструкции:
\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
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.