• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/engine/controller.php
  • Класс: BitrixMainEngineController
  • Вызов: Controller::triggerOnBeforeAction
protected function triggerOnBeforeAction(Action $action): bool
{
	$event = new Event(
		'main',
		static::getFullEventName(static::EVENT_ON_BEFORE_ACTION),
		[
			'action' => $action,
			'controller' => $this,
		]
	);
	$event->send($this);

	$allow = true;
	foreach ($event->getResults() as $eventResult)
	{
		if ($eventResult->getType() != EventResult::SUCCESS)
		{
			$handler = $eventResult->getHandler();
			if ($handler instanceof Errorable)
			{
				$this->errorCollection->add($handler->getErrors());
			}

			$allow = false;
		}
	}

	$this->detachPreFilters($action);

	return $allow;
}