• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/compatible/internals/entitycompatibility.php
  • Класс: BitrixSaleCompatibleInternalsEntityCompatibility
  • Вызов: EntityCompatibility::setSelect
public function setSelect(array $select = array())
{
	$aliasFields = static::getAliasFields();
	if (empty($select))
	{
		$select = static::getSelectFields();
	}

	foreach($select as $key => $fieldName)
	{
		if ($fieldName == "*")
		{
			unset($select[$key]);

			$select = array_merge($select, static::getSelectFields());

			break;
		}
	}

	foreach($select as $fieldName)
	{
		$fieldName = mb_strtoupper($fieldName);
		if (!in_array($fieldName, $this->getQueryAliasList()))
		{
			if (isset($aliasFields[$fieldName]))
			{
				$this->addQueryAlias($fieldName, $aliasFields[$fieldName]);
			}
		}

		if ($propKey = $this->parseField($fieldName))
		{
			$this->addSelect($propKey);
		}
		else
		{
			$aliasFieldsValue = $aliasFields[$fieldName] ?? null;
			if (!is_array($aliasFieldsValue))
			{
				$this->addSelect($fieldName);
			}
			else
			{
				$this->addSelectForAlias($aliasFieldsValue);
			}
		}
	}
}