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