Служебные скриптыОбновлено: 23.10.2026 11:25:10

Как подключить ядро 1С-Битрикс в служебном PHP-скрипте

Когда использовать header.php, prolog_before.php и epilog_after.php, какие константы определить и как защитить служебный endpoint.

Время чтения: 10 мин.Уровень: Средний

Системные требования

Нужны тестовая копия проекта, доступ разработчика или администратора и резервная копия перед изменением рабочего кода.

Смотреть системные требования

1. Выберите полный или служебный пролог

Для обычной публичной страницы используйте /bitrix/header.php и /bitrix/footer.php: они подключают ядро и визуальную часть шаблона.

Для JSON, cron-обработчика или технической точки без оформления используют служебные части prolog_before.php и при необходимости epilog_after.php.

Пролог и эпилог

Официальное описание служебной и визуальной частей страницы.

Скачать

2. Подключите ядро корректно

Базовый служебный скрипт:

<?php
require $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php";

use Bitrix\Main\Loader;
Loader::includeModule("iblock");

Путь строится от DOCUMENT_ROOT, чтобы скрипт одинаково работал в разных каталогах сайта.

Совет

Файл с prolog_before.php — это полноценная точка входа в проект. Он не становится безопасным автоматически: проверяйте авторизацию, права, метод запроса и CSRF.

3. Определите режим до пролога

Константы, меняющие режим ядра, задаются до подключения пролога. Например, для фонового скрипта могут применяться NO_KEEP_STATISTIC, NOT_CHECK_PERMISSIONS или BX_CRONTAB.

NOT_CHECK_PERMISSIONS отключает часть проверок — используйте её только в закрытом серверном сценарии и выполняйте собственную авторизацию.

4. Защитите HTTP-endpoint

Для endpoint проверьте метод HTTP, сессию пользователя, право на операцию и CSRF-токен. JSON возвращайте с корректным Content-Type и единым форматом ошибок.

Не размещайте секретные служебные скрипты в публичном каталоге без защиты только потому, что имя файла «сложное».

5. Завершите выполнение и тест

Для полного жизненного цикла подключите epilog_after.php, если сценарию нужны завершающие обработчики системы. В CLI установите корректный DOCUMENT_ROOT до пролога.

Проверьте скрипт под обычным пользователем, без сессии, с неверным методом и повторным запросом.

Была ли эта статья полезной?

Спасибо за ваш отзыв!