• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/provider/taskquerybuilder.php
  • Класс: BitrixTasksProviderTaskQueryBuilder
  • Вызов: TaskQueryBuilder::addSelect
private function addSelect(string $key)
{
	$translateMap = self::getTranslateMap();
	if (isset($translateMap[$key]))
	{
		$this->addSelect($translateMap[$key]);
		return;
	}

	$modules = $this->getModuleMap();
	$fields = $this->getFieldMap();
	if (
		!array_key_exists($key, $fields)
		|| empty($fields[$key])
	)
	{
		return;
	}

	if (
		array_key_exists($key, $modules)
		&& !Loader::includeModule($modules[$key])
	)
	{
		return;
	}

	$field = $fields[$key];

	if (is_callable($field))
	{
		$field = $field();
	}

	if (is_a($field, ExpressionField::class))
	{
		$this->query->addSelect($field, $key);
		return;
	}

	$this->addJoinByField($field);
	$this->query->addSelect($field, $key);
}