- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/integration/crm/connectors/helper.php
- Класс: Bitrix\Sender\Integration\Crm\Connectors\Helper
- Вызов: Helper::getFilterUserFields
static function getFilterUserFields(int $entityTypeId, bool $checkAccessRights = true): array { $list = array(); $ufManager = is_object($GLOBALS['USER_FIELD_MANAGER']) ? $GLOBALS['USER_FIELD_MANAGER'] : null; if (!$ufManager) { return $list; } $ufEntityId = \CCrmOwnerType::resolveUserFieldEntityID($entityTypeId); $crmUserType = new \CCrmUserType($ufManager, $ufEntityId); $logicFilter = array(); $fieldsParams = []; if (!$checkAccessRights) { $fieldsParams = ['skipUserFieldVisibilityCheck' => true]; } $crmUserType->prepareListFilterFields($list, $logicFilter, $fieldsParams); $originalList = $crmUserType->getFields($fieldsParams); $restrictedTypes = ['address', 'file', 'crm', 'resourcebooking']; $list = array_filter( $list, function ($field) use ($originalList, $restrictedTypes) { if (empty($originalList[$field['id']])) { return false; } $type = $originalList[$field['id']]['USER_TYPE']['USER_TYPE_ID']; return !in_array($type, $restrictedTypes); } ); foreach ($list as $index => $field) { if ($field['type'] === 'date') { $list[$index]['include'] = [ AdditionalDateType::CUSTOM_DATE, AdditionalDateType::PREV_DAY, AdditionalDateType::NEXT_DAY, AdditionalDateType::MORE_THAN_DAYS_AGO, AdditionalDateType::AFTER_DAYS, ]; if (!isset($list[$index]['allow_years_switcher'])) { $list[$index]['allow_years_switcher'] = true; } } if ($originalList[$field['id']]['MULTIPLE'] == 'Y') { $list[$index]['multiple_uf'] = true; } } return $list; }