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

Сниппеты

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

\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
Наверх