• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/documentgeneratormanager.php
  • Класс: Bitrix\Crm\Integration\DocumentGeneratorManager
  • Вызов: DocumentGeneratorManager::getDataProviders
static function getDataProviders(): array
{
	static $result;
	if($result === null)
	{
		$result = [];
		if(static::getInstance()->isEnabled())
		{
			$providers = [
				DataProvider\Company::class,
				DataProvider\Contact::class,
				DataProvider\Deal::class,
				DataProvider\Lead::class,
				DataProvider\Quote::class,
				DataProvider\Order::class,
				DataProvider\Payment::class,
				DataProvider\Shipment::class,
				DataProvider\StoreDocumentArrival::class,
				DataProvider\StoreDocumentStoreAdjustment::class,
				DataProvider\StoreDocumentMoving::class,
				DataProvider\StoreDocumentDeduct::class,
				DataProvider\ShipmentDocumentRealization::class,
			];
			if (InvoiceSettings::getCurrent()->isOldInvoicesEnabled())
			{
				$providers[] = DataProvider\Invoice::class;
			}
			if (InvoiceSettings::getCurrent()->isSmartInvoiceEnabled())
			{
				$providers[] = DataProvider\SmartInvoice::class;
			}
			$providers = array_merge($providers, array_values(static::getDynamicProviders(true)));
			foreach($providers as $provider)
			{
				/** @var Nameable $provider */
				$className = mb_strtolower($provider);
				$result[$className] = [
					'NAME' => $provider::getLangName(),
					'CLASS' => $className,
					'MODULE' => 'crm',
				];
			}
		}
	}

	return $result;
}