• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/query/result.php
  • Класс: BitrixMainORMQueryResult
  • Вызов: Result::definePrimaryAliases
protected function definePrimaryAliases()
{
	$primaryNames = $this->query->getEntity()->getPrimaryArray();

	foreach ($this->query->getSelectChains() as $selectChain)
	{
		$field = $selectChain->getLastElement()->getValue();

		// get 0-level simple fields: entity + field
		if ($field->getEntity()->getDataClass() === $this->query->getEntity()->getDataClass()
			&& in_array($field->getName(), $primaryNames))
		{
			$this->primaryAliases[$field->getName()] = $selectChain->getAlias();

			if (count($this->primaryAliases) == count($primaryNames))
			{
				break;
			}
		}
	}

	if (count($this->primaryAliases) != count($primaryNames))
	{
		throw new SystemException(sprintf(
			'Primary of %s was not found in database result', $this->query->getEntity()->getDataClass()
		));
	}
}