• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/product/systemfield.php
  • Класс: BitrixCatalogProductSystemField
  • Вызов: SystemField::getExternalFieldList
static function getExternalFieldList(): array
{
	$result = [];
	$event = new MainEvent(
		'catalog',
		self::EVENT_ID_BUILD_FIELD_LIST,
		[]
	);
	$event->send();
	$eventResult = $event->getResults();
	if (!empty($eventResult) && is_array($eventResult))
	{
		foreach ($eventResult as $row)
		{
			if ($row->getType() != MainEventResult::SUCCESS)
			{
				continue;
			}
			$classList = $row->getParameters();
			if (empty($classList) || !is_array($classList))
			{
				continue;
			}
			foreach ($classList as $item)
			{
				if (!is_string($item))
				{
					continue;
				}
				$item = trim($item);
				if (
					$item === ''
					|| !class_exists($item)
					|| !is_a($item, CatalogProductSystemFieldBase::class, true)
				)
				{
					continue;
				}
				$result[] = $item;
			}
		}
	}

	return $result;
}