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