Сниппеты
Не забудьте подключить модуль.
\Bitrix\Main\Loader::includeModule('documentgenerator');
- Получить список провайдеров, привязанных к определенному модулю
$providers = \Bitrix\DocumentGenerator\DataProviderManager::getInstance()->getList(['filter' => ['MODULE' => 'crm']]);
Вернется список провайдеров, отфильтрованных по модулю.
$manager = \Bitrix\DocumentGenerator\DataProviderManager::getInstance();
$provider = $manager->getDataProvider(\Bitrix\DocumentGenerator\DataProvider\User::class, 1);
if($provider)
{
print_r($manager->getArray($provider));
}
// $templateId - ид шаблона
// $invoiceId - ид счета
$template = \Bitrix\DocumentGenerator\Template::loadById($templateId);
$template->setSourceType(\Bitrix\Crm\Integration\DocumentGenerator\DataProvider\Invoice::class);
$document = \Bitrix\DocumentGenerator\Document::createByTemplate($template, $invoiceId);
// добавить / переопределить описания полей
$document->setFields([
'myField' => [
'VALUE' => 'defaultValue', // значение по умолчанию
],
]);
// указать значение поля
$document->setValues([
'myField' => 'newValue',
]);
$result = $document->getFile();
if($result->isSuccess())
{
print_r($result->getData())
}
else
{
print_r($result->getErrorMessages());
}
Осторожно! Эта операция перезапишет созданный пользователем шаблон.
$controller = new \Bitrix\DocumentGenerator\Controller\Template();
// составляем фильтр
$filter = [
'MODULE_ID' => 'crm', // ID модуля
'CODE' => 'BILL_RU', // код предустановленного шаблона
'REGION' => ['RU'], // страна. Можно передать массив
'NAME' => 'Счет (Россия)', // название предустановленного шаблона
];
// получаем список шаблонов
$result = $controller::getDefaultTemplateList($filter);
if($result->isSuccess())
{
$templates = $result->getData();
foreach($templates as $template)
{
// так мы можем пропустить уже установленные шаблоны
if(isset($template['ID']) && $template['ID'] > 0)
{
continue;
}
$controller->installDefaultTemplate($template);
}
}
© «Битрикс», 2001-2025, «1С-Битрикс», 2025