• Модуль: report
  • Путь к файлу: ~/bitrix/modules/report/lib/visualconstructor/handler/basereport.php
  • Класс: BitrixReportVisualConstructorHandlerBaseReport
  • Вызов: BaseReport::getReportHandlerSelectField
private function getReportHandlerSelectField($categoryKey = '__')
{
	$selectField = new CustomDropDown('reportHandler');
	$selectField->addDataAttribute('field-type', 'report-handler-class');
	$selectField->setLabel(Loc::getMessage('SELECT_DATA_PROVIDER'));
	$selectField->addJsEventListener($selectField, $selectField::JS_EVENT_ON_CHANGE, array(
		'class' => 'BX.Report.VisualConstructor.FieldEventHandlers.ReportHandlerSelect',
		'action' => 'reportHandlerSelected',
	));
	$selectField->addAssets(array(
		'js' => array('/bitrix/js/report/js/visualconstructor/fields/reporthandlerselect.js')
	));

	$reports = new ReportProvider();
	$reports->addFilter('dataType', $this->getView()->getCompatibleDataType());

	if (!empty($categoryKey) && $categoryKey !== '__')
	{
		$reports->addFilter('categories', array($categoryKey));
	}

	$reports->execute();

	/** @var BaseReport[] $reportHandlers */
	$reportHandlers = $reports->getResults();
	foreach ($reportHandlers as $report)
	{
		$selectField->addOption($report::getClassName(), $report->getTitle());
	}

	$selectField->setDefaultValue($this::getClassName());

	return $selectField;
}