- Модуль: 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;
}