• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/query/query.php
  • Класс: Bitrix\Main\ORM\Query\Query
  • Вызов: Query::registerRuntimeField
public function registerRuntimeField($name, $fieldInfo = null)
{
	if ($name instanceof Field && $fieldInfo === null)
	{
		// short call for Field objects
		$fieldInfo = $name;
		$name = $fieldInfo->getName();
	}
	elseif ((empty($name) || is_numeric($name)) && $fieldInfo instanceof Field)
	{
		$name = $fieldInfo->getName();
	}

	// clone field as long as Field object could be initialized only once
	// there is no need to initialize original object
	if ($fieldInfo instanceof Field)
	{
		$fieldInfo = clone $fieldInfo;
	}

	// attach field to the entity
	$this->entity->addField($fieldInfo, $name);

	// force chain creation for further needs
	$chain = $this->getRegisteredChain($name, true);
	$this->registerChain('runtime', $chain);

	if ($chain->getLastElement()->getValue() instanceof ExpressionField)
	{
		$this->collectExprChains($chain, array('hidden'));
	}

	return $this;
}