Documentgenerator
Ссылки
Для смарт процесса в настройках выставить галку Print documents
Пример из документации
\Bitrix\Main\Loader::includeModule('documentgenerator');
$template_id = 3; //id шаблона документа
$entity_id = 147; //id сущности (лида / сделки / элемента смарт-процесса и т.п.), по которой нужно создать документ
//загрузка шаблона
$template = \Bitrix\DocumentGenerator\Template::loadById($template_id);
//далее нужно указать на конкретный класс сущности CRM, чтобы установить тип провайдера. Вместо Lead может быть Deal, Company и т.п.
//для смарт-процесса вместо Lead поставить Dynamic130 (где 130 - ENTITY_TYPE_ID смарт-процесса)
//даже если по запросу списка провайдеров выводит \Dynamic130_2 или подобное, пишется сокращенный вариант
$template->setSourceType(\Bitrix\Crm\Integration\DocumentGenerator\DataProvider\Lead::class);
//создание документа
$document = \Bitrix\DocumentGenerator\Document::createByTemplate($template, $entity_id);
//устанавливаем значения переменных в шаблоне
$fields = array(
'MyCompanyTitle' => ['VALUE' => 'ООО Наша компания'],
'MyCompanyRequisiteRqDirector' => ['VALUE' => 'Вася Мужичков'],
);
$document->setFields($fields);
//сохраняем файл
$result = $document->getFile();
if($result->isSuccess()){
$diskFileID = $result->getData()['emailDiskFile'];
}
echo $diskFileID;
Список провайдеров для setSourceType
- модуль
documentgenerator - событие
onGetDataProviderList
Связи таблиц
SELECT
template.ID,
file.STORAGE_WHERE,
object.FILE_ID,
bFile.SUBDIR,
bFile.FILE_NAME,
CONCAT(bFile.SUBDIR, '/', bFile.FILE_NAME) as fileName
FROM b_documentgenerator_template template
LEFT JOIN b_documentgenerator_file file ON template.FILE_ID = file.ID
LEFT JOIN b_disk_object object ON file.STORAGE_WHERE = object.ID
LEFT JOIN b_file bFile ON object.FILE_ID = bFile.ID
WHERE template.ID = 17;
С помощью данного запроса можно получить информацию о файле, который используется в шаблоне ID = 17.
STORAGE_WHERE— ID файла в таблицеb_disk_objectFILE_ID— ID файла в таблицеb_fileSUBDIR— путь от папкиupload, в котором лежит физический файл-шаблонFILE_NAME— имя файла-шаблонаfileName— путь до файла-шаблона от папкиupload