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

Сниппеты

Не забудьте подключить модуль.

\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-2024, «1С-Битрикс», 2024