• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/engine/controller.php
  • Класс: BitrixMainEngineController
  • Вызов: Controller::forward
public function forward($controller, string $actionName, array $parameters = null)
{
	if (is_string($controller))
	{
		$controller = new $controller;
	}

	/** @see BitrixMainEngineControllerBuilder::build */
	//propbably should refactor with ControllerBuilder::build

	// override parameters
	$controller->request = $this->getRequest();
	$controller->setScope($this->getScope());
	$controller->setCurrentUser($this->getCurrentUser() ?? CurrentUser::get());

	$currentAction = $this->getCurrentAction();
	$this->detachFilters($currentAction);

	// run action
	$result = $controller->run(
		$actionName,
		$parameters === null ? $this->getSourceParametersList() : [$parameters]
	);

	$this->attachFilters($currentAction);
	$this->addErrors($controller->getErrors());

	return $result;
}