- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice.php
- Класс: \CCrmRestProxyBase
- Вызов: CCrmRestProxyBase::prepareListItemMultiFields
protected function prepareListItemMultiFields(&$entityMap, $entityTypeID, $typeIDs)
{
$entityIDs = array_keys($entityMap);
if(empty($entityIDs))
{
return;
}
$entityTypeName = CCrmOwnerType::ResolveName($entityTypeID);
if($entityTypeName === '')
{
return;
}
$dbResult = CCrmFieldMulti::GetListEx(
array(),
array(
'=ENTITY_ID' => $entityTypeName,
'@ELEMENT_ID' => $entityIDs,
'@TYPE_ID' => $typeIDs
)
);
while($fm = $dbResult->Fetch())
{
$typeID = $fm['TYPE_ID'] ?? '';
if(!in_array($typeID, $typeIDs, true))
{
continue;
}
$entityID = isset($fm['ELEMENT_ID']) ? intval($fm['ELEMENT_ID']) : 0;
if(!isset($entityMap[$entityID]))
{
continue;
}
$entity = &$entityMap[$entityID];
if(!isset($entity['FM']))
{
$entity['FM'] = array();
}
if(!isset($entity['FM'][$typeID]))
{
$entity['FM'][$typeID] = array();
}
$entity['FM'][$typeID][] = array('ID' => $fm['ID'], 'VALUE_TYPE' => $fm['VALUE_TYPE'], 'VALUE' => $fm['VALUE']);
unset($entity);
}
}