- Модуль: crmmobile
- Путь к файлу: ~/bitrix/modules/crmmobile/lib/Controller/Action/Terminal/FindClient.php
- Класс: BitrixCrmMobileControllerActionTerminalFindClient
- Вызов: FindClient::getEntityMultiFieldValues
static function getEntityMultiFieldValues(int $entityTypeId, array $ids): array
{
$multiFieldResult = CCrmFieldMulti::GetListEx(
[],
[
'=ENTITY_ID' => CCrmOwnerType::ResolveName($entityTypeId),
'@ELEMENT_ID' => $ids,
'@TYPE_ID' => ['PHONE', 'EMAIL'],
],
false,
false,
['ELEMENT_ID', 'TYPE_ID', 'VALUE']
);
if (!is_object($multiFieldResult))
{
return [];
}
$result = [];
while ($multiFields = $multiFieldResult->fetch())
{
$entityId = isset($multiFields['ELEMENT_ID']) ? intval($multiFields['ELEMENT_ID']) : 0;
if ($entityId <= 0)
{
continue;
}
if (!isset($result[$entityId]))
{
$result[$entityId] = [];
}
$typeId = $multiFields['TYPE_ID'] ?? '';
$value = $multiFields['VALUE'] ?? '';
if ($typeId === '' || $value === '')
{
continue;
}
if (!isset($result[$entityId][$typeId]))
{
$result[$entityId][$typeId] = [$value];
}
elseif(count($result[$entityId][$typeId]) < 10)
{
$result[$entityId][$typeId][] = $value;
}
}
return $result;
}