• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/component/entitylist/clientdataprovider.php
  • Класс: Bitrix\Crm\Component\EntityList\ClientDataProvider
  • Вызов: ClientDataProvider::prepareSelect
public function prepareSelect(array &$select): void
{
	if (!$this->hasClientFields($select))
	{
		return;
	}
	$clientFieldId = $this->fieldHelper->addPrefixToFieldId(self::ID_FIELD);

	if (!in_array($clientFieldId, $select, true))
	{
		$select[] = $clientFieldId;
	}

	$prefix = $this->fieldHelper->getFieldPrefix();

	// remove all client fields from $select except $clientFieldId
	// because they will be loaded separately in $this->appendResult():
	foreach ($select as $i => $fieldId)
	{
		if (
			mb_strpos($fieldId, $prefix) === 0
			&& $fieldId !== $clientFieldId
		)
		{
			$fieldIdWithoutPrefix = $this->fieldHelper->getFieldIdWithoutPrefix($fieldId);
			if ($fieldIdWithoutPrefix === self::RAW_ID_FIELD)
			{
				$this->addRawIdToSelect = true;
			}
			else
			{
				$this->realSelectFields[] = $fieldIdWithoutPrefix;
			}
			unset($select[$i]);
		}
	}
}