• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_report_helper.php
  • Класс: \CCrmReportHelperBase
  • Вызов: CCrmReportHelperBase::prepareUFEnumerations
static function prepareUFEnumerations($usedUFMap = null)
{
	$ufInfo = static::getUFInfo();

	if ($usedUFMap !== null && !is_array($usedUFMap))
	{
		$usedUFMap = array();
	}

	if (is_array($ufInfo))
	{
		foreach ($ufInfo as $entityId => $fieldList)
		{
			foreach ($fieldList as $field)
			{
				if (is_array($field) && isset($field['USER_TYPE_ID']) && $field['USER_TYPE_ID'] === 'enumeration'
					&& isset($field['ENTITY_ID']) && strval($field['ENTITY_ID']) <> ''
					&& !isset(self::$ufEnumerations[$field['ENTITY_ID']][$field['FIELD_NAME']])
					&& ($usedUFMap === null || isset($usedUFMap[$field['ENTITY_ID']][$field['FIELD_NAME']]))
					&& is_array($field['USER_TYPE']) && isset($field['USER_TYPE']['CLASS_NAME'])
					&& !empty($field['USER_TYPE']['CLASS_NAME'])
					&& is_callable(array($field['USER_TYPE']['CLASS_NAME'], 'GetList')))
				{
					self::$ufEnumerations[$field['ENTITY_ID']][$field['FIELD_NAME']] = array();
					$rsEnum = call_user_func_array(array($field['USER_TYPE']['CLASS_NAME'], 'GetList'), array($field));
					while($ar = $rsEnum->Fetch())
					{
						self::$ufEnumerations[$field['ENTITY_ID']][$field['FIELD_NAME']][$ar['ID']] = $ar;
					}
				}
			}
		}
	}
}