• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/tasks_report_helper.php
  • Класс: CTasksReportHelper
  • Вызов: CTasksReportHelper::prepareUFInfo
static function prepareUFInfo()
{
	if (is_array(self::$arUFId))
		return;

	self::$arUFId = array('TASKS_TASK');

	/** @global CUserTypeManager $USER_FIELD_MANAGER */
	global $USER_FIELD_MANAGER;

//		$allowedUserTypes = array('disk_file', 'crm');
	$allowedUserTypes = array('disk_file', 'crm', 'string', 'date', 'datetime', 'enumeration', 'double', 'integer',
		'boolean', 'file', 'employee', 'crm_status', 'iblock_element', 'iblock_section', 'money');

	self::$ufInfo = [];
	self::$ufEnumerations = [];
	self::$userFieldMoneyList = [];

	foreach(self::$arUFId as $ufId)
	{
		$arUserFields = $USER_FIELD_MANAGER->GetUserFields($ufId, 0, LANGUAGE_ID);

		if (is_array($arUserFields) && count($arUserFields) > 0)
		{
			foreach ($arUserFields as $field)
			{
				if (isset($field['FIELD_NAME']) && BitrixTasksUtilUserField::isUFKey($field['FIELD_NAME'])
					/*&& (!isset($field['MULTIPLE']) || $field['MULTIPLE'] !== 'Y')*/
					&& isset($field['USER_TYPE_ID']) && in_array($field['USER_TYPE_ID'], $allowedUserTypes, true))
				{
					if ($field['FIELD_NAME'] === 'UF_TASK_WEBDAV_FILES')
					{
						$field['EDIT_FORM_LABEL'] = $field['LIST_COLUMN_LABEL'] = $field['LIST_FILTER_LABEL'] =
							GetMessage('TASKS_REPORT_UF_TASK_WEBDAV_FILES');
					}
					if (mb_substr(trim($field['FIELD_NAME']), 0, 8) == 'UF_AUTO_')
					{
						$field['LIST_COLUMN_LABEL'] = $field['LIST_FILTER_LABEL'] = $field['EDIT_FORM_LABEL'];
					}

					self::$ufInfo[$ufId][$field['FIELD_NAME']] = $field;

					if ($field['USER_TYPE_ID'] === 'datetime' && $field['MULTIPLE'] !== 'Y')
						self::$ufInfo[$ufId][$field['FIELD_NAME'].self::UF_DATETIME_SHORT_POSTFIX] = $field;

					$blPostfix = defined('self::UF_BOOLEAN_POSTFIX') ? self::UF_BOOLEAN_POSTFIX : '_BLINL';
					if ($field['USER_TYPE_ID'] === 'boolean' && $field['MULTIPLE'] !== 'Y')
						self::$ufInfo[$ufId][$field['FIELD_NAME'].$blPostfix] = $field;

					if ($field['USER_TYPE_ID'] === 'money')
					{
						self::$userFieldMoneyList[] = $field['FIELD_NAME'];
					}
				}
			}
		}
	}
}