- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/component/entitylist/clientdataprovider.php
- Класс: Bitrix\Crm\Component\EntityList\ClientDataProvider
- Вызов: ClientDataProvider::loadClientsInfo
protected function loadClientsInfo(array $clientIds): array
{
$result = [];
$idFieldId = $this->fieldHelper->addPrefixToFieldId('ID');
$isAccessibleFieldId = $this->fieldHelper->addPrefixToFieldId('IS_ACCESSIBLE');
// by default there are no access to any $clientIds
foreach ($clientIds as $clientId)
{
$result[$clientId] = [
$idFieldId => $clientId, // CONTACT_ID or COMPANY_ID
$isAccessibleFieldId => false, // CONTACT_IS_ACCESSIBLE or COMPANY_IS_ACCESSIBLE
];
}
$selectFields = $this->getFieldsToSelect();
$selectFields[] = self::ID_FIELD;
$entity = $this->fieldHelper->getEntityClass();
$collection = $entity::GetListEx(
[],
[
'=ID' => $clientIds,
'CHECK_PERMISSIONS' => 'Y',
],
false,
false,
$this->realSelectFields
);
while ($item = $collection->Fetch())
{
$client = [];
foreach ($selectFields as $fieldId)
{
$fieldIdWithPrefix = $this->fieldHelper->addPrefixToFieldId($fieldId);
if (isset($item[$fieldId]))
{
if (is_array($item[$fieldId]))
{
// multiple userfields will be encoded in $this->renderUserFieldsValues()
$client[$fieldIdWithPrefix] = $item[$fieldId];
}
else
{
$client['~' . $fieldIdWithPrefix] = $item[$fieldId];
$client[$fieldIdWithPrefix] = $this->prepareFieldValue($fieldId, (string)$item[$fieldId]);
}
}
}
$client[$isAccessibleFieldId] = true; // CONTACT_IS_ACCESSIBLE or COMPANY_IS_ACCESSIBLE
$result[$item[self::ID_FIELD]] = $client;
}
$this->appendMultifieldsValue($result);
return $result;
}