- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_report_helper.php
- Класс: \CCrmReportHelper
- Вызов: CCrmReportHelper::prepareUFInfo
static function prepareUFInfo()
{
if (!is_array(self::$arUFId) || count(self::$arUFId) <= 0 || is_array(self::$ufInfo))
return;
/** @global CUserTypeManager $USER_FIELD_MANAGER */
global $USER_FIELD_MANAGER;
$allowedUserTypes = array('string', 'date', 'datetime', 'enumeration', 'double', 'integer', 'boolean', 'file',
'employee', 'crm', '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);
// remove invoice reserved fields
if ($ufId === CCrmInvoice::GetUserFieldEntityID())
foreach (CCrmInvoice::GetUserFieldsReserved() as $id)
if (isset($arUserFields[$id]))
unset($arUserFields[$id]);
if (is_array($arUserFields) && count($arUserFields) > 0)
{
foreach ($arUserFields as $field)
{
if (isset($field['FIELD_NAME']) && mb_substr($field['FIELD_NAME'], 0, 3) === 'UF_'
/*&& (!isset($field['MULTIPLE']) || $field['MULTIPLE'] !== 'Y')*/
&& isset($field['USER_TYPE_ID']) && in_array($field['USER_TYPE_ID'], $allowedUserTypes, true))
{
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'];
}
}
}
}
}
}