• Модуль: rpa
  • Путь к файлу: ~/bitrix/modules/rpa/lib/components/itemdetail.php
  • Класс: BitrixRpaComponentsItemDetail
  • Вызов: ItemDetail::prepareEnumerationInfos
protected function prepareEnumerationInfos(array $userFields)
{
	$callbacks = $map = $results = [];

	foreach($userFields as $userField)
	{
		if(!isset($userField['USER_TYPE']['CLASS_NAME']))
		{
			continue;
		}

		$className = $userField['USER_TYPE']['CLASS_NAME'];
		if(!isset($callbacks[$className]))
		{
			$callbacks[$className] = [];
		}

		$callbacks[$className][] = $userField;
		$map[$userField['ID']] = $userField['FIELD_NAME'];
	}

	foreach($callbacks as $className => $callbackFields)
	{
		$enumResult = call_user_func([$className, 'GetListMultiple'], $callbackFields);
		while($enum = $enumResult->GetNext())
		{
			if(!isset($enum['USER_FIELD_ID']))
			{
				continue;
			}

			$fieldID = $enum['USER_FIELD_ID'];
			if(!isset($map[$fieldID]))
			{
				continue;
			}

			$fieldName = $map[$fieldID];
			if(!isset($results[$fieldName]))
			{
				$results[$fieldName] = [];
			}

			$results[$fieldName][] = ['ID' => $enum['~ID'], 'VALUE' => $enum['~VALUE']];
		}
	}

	return $results;
}