Специальные константы в Битрикс: описание, примеры и результаты

Специальные константы в Битрикс — это предопределенные глобальные переменные, которые содержат важную информацию о текущем сайте, путях, языковых настройках и других параметрах системы. Они упрощают разработку, позволяя быстро получать доступ к ключевым данным без необходимости писать сложные запросы или вычисления. В этой статье мы рассмотрим основные константы, их назначение, примеры использования и результаты работы.

Специальные константы в Битрикс

Ниже приведён обзор основных специальных констант 1С-Битрикс с кратким описанием, примером определения (если применимо) и возможным примером вывода. Дополнительно указаны типы констант (A, T, И, С), то есть когда и где они могут/должны быть объявлены:

  • A (авто) – инициализируются системой автоматически в прологе (обычно в header.php после require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");).
  • T (страница) – можно определить на любой публичной странице до подключения пролога.
  • И (инициализация) – можно определить в одном из файлов инициализации портала (например, /bitrix/php_interface/init.php или /bitrix/php_interface/ID_сайта/init.php).
  • С (соединение с базой) – задаётся только в файле /bitrix/php_interface/dbconn.php, который хранит параметры подключения к базе данных.

1. SITE_ID

Тип: A (авто)

Описание: Идентификатор текущего сайта. Обычно имеет значение вроде s1, s2 и т. д.

Пример использования:

echo "Текущий сайт: " . SITE_ID;

Пример вывода:

s1

2. SITE_DIR

Тип: A (авто)

Описание: Корневая директория (папка) сайта. Например, для основного сайта обычно /, для дополнительных может быть /en/, /de/ и т. д.

Пример использования:

echo "Корневая директория сайта: " . SITE_DIR;

Пример вывода:

/

3. SITE_SERVER_NAME

Тип: A (авто)

Описание: Доменное имя (серверное имя) текущего сайта, как оно задано в настройках сайта в административной части.

Пример использования:

echo "Домен сайта: " . SITE_SERVER_NAME;

Пример вывода:

example.com

4. SITE_TEMPLATE_PATH

Тип: A (авто)

Описание: Путь (относительно корня сайта) к активному шаблону сайта. Как правило, это что-то вроде /bitrix/templates/.default.

Пример использования:

echo "Путь к шаблону сайта: " . SITE_TEMPLATE_PATH;

Пример вывода:

/bitrix/templates/.default

5. SITE_CHARSET

Тип: A (авто)

Описание: Кодировка сайта, например UTF-8 или windows-1251.

Пример использования:

echo "Кодировка сайта: " . SITE_CHARSET;

Пример вывода:

UTF-8

6. FORMAT_DATE

Тип: A (авто)

Описание: Формат вывода даты, заданный для текущего сайта в настройках (например, DD.MM.YYYY, MM/DD/YYYY и т. д.).

Пример использования:

echo "Формат даты: " . FORMAT_DATE;

Пример вывода:

DD.MM.YYYY

7. FORMAT_DATETIME

Тип: A (авто)

Описание: Формат вывода даты и времени, заданный для текущего сайта (например, DD.MM.YYYY HH:MI:SS).

Пример использования:

echo "Формат даты и времени: " . FORMAT_DATETIME;

Пример вывода:

DD.MM.YYYY HH:MI:SS

8. LANGUAGE_ID

Тип: A (авто)

Описание: Идентификатор текущего языка, например ru, en, de и т. д.

Пример использования:

echo "Текущий язык: " . LANGUAGE_ID;

Пример вывода:

ru

9. LANG_CHARSET

Тип: A (авто)

Описание: Кодировка текущего языка (часто совпадает с SITE_CHARSET).

Пример использования:

echo "Языковая кодировка: " . LANG_CHARSET;

Пример вывода:

UTF-8

10. SITE_TEMPLATE_ID

Тип: A (авто)

Описание: Идентификатор активного шаблона сайта (например, .default).

Пример использования:

echo "ID шаблона: " . SITE_TEMPLATE_ID;

Пример вывода:

.default

11. START_EXEC_TIME

Тип: A (авто)

Описание: Отметка времени (с долями секунды) начала выполнения скрипта, используется во внутренней статистике и замерах производительности.

Пример использования:

echo "Время старта скрипта: " . START_EXEC_TIME;

Пример вывода:

1612371249.12345

12. B_PROLOG_INCLUDED

Тип: A (авто)

Описание: Флаг, указывающий, что пролог 1С-Битрикс был подключён (обычно проверяется в файлах, чтобы исключить прямой доступ).

Пример использования:

if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die("Пролог не подключён");
}

Пример вывода (обычно не выводится, но может быть true):

true

13. SM_VERSION

Тип: A (авто)

Описание: Текущая версия главного модуля ядра 1С-Битрикс.

Пример использования:

echo "Версия Bitrix: " . SM_VERSION;

Пример вывода:

20.0.0

14. SM_VERSION_DATE

Тип: A (авто)

Описание: Дата релиза текущей версии главного модуля.

Пример использования:

echo "Дата релиза: " . SM_VERSION_DATE;

Пример вывода:

2021-12-30

15. ADMIN_SECTION

Тип: A (авто)

Описание: Показывает, находимся ли мы в административном разделе (true/Y) или нет.

Пример использования:

if(ADMIN_SECTION) {
    echo "Мы в админке";
} else {
    echo "Мы в публичном разделе";
}

Пример вывода:

Мы в публичном разделе

16. AUTH_404

Тип: T (страница) или И (инициализация)

Описание: Если установить define("AUTH_404", "Y");, система не будет делать редирект на страницу авторизации, а будет отдавать код 404. Это может быть актуально при специфической логике авторизации.

Пример использования (на публичной странице до пролога):

define("AUTH_404", "Y");
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Пример вывода: В явном виде не выводится, но меняет поведение системы (код 404 вместо редиректа).

17. HELP_FILE

Тип: T (страница) или И (инициализация)

Описание: Указывает на файл справки, который нужно открыть для текущей страницы в административном разделе (кнопка «Помощь»).

Пример использования (в начале административной страницы или в init-файле):

define("HELP_FILE", "help_section/page_help.php");

Пример вывода: Не выводится напрямую, но используется в интерфейсе админки, при нажатии «Помощь».

18. NEED_AUTH

Тип: T (страница) или И (инициализация)

Описание: Если установить define("NEED_AUTH", true);, то при входе на страницу пользователь должен авторизоваться (иначе будет перенаправлен на форму логина).

Пример использования:

define("NEED_AUTH", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Пример вывода: Не выводится напрямую, влияет на поведение авторизации пользователя.

19. ERROR_EMAIL

Тип: И (инициализация)

Описание: Задаёт email-адрес, на который будут отправляться сообщения об ошибках системы. Обычно указывают в /bitrix/php_interface/init.php.

Пример использования:

define("ERROR_EMAIL", "[email protected]");

Пример вывода: В явном виде не выводится, но ошибки будут отправляться на указанный адрес.

20. LOG_FILENAME

Тип: И (инициализация)

Описание: Путь к файлу, в который будут логироваться ошибки или иные события (если включён соответствующий функционал).

Пример использованияinit.php):

define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/logs/error.log");

Пример вывода: Не выводится на экран, но используется системой для записи лога.

21. STATISTIC_ONLY

Тип: И (инициализация)

Описание: При определении константы STATISTIC_ONLY в значение "Y" загружается только модуль статистики, без прочих модулей, которые могут потребоваться обычно. Используется для оптимизации производительности и отслеживания посещений.

Пример использования:

define("STATISTIC_ONLY", "Y");
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Пример вывода: Не выводится напрямую, влияет на загрузку модулей.

22. NO_KEEP_STATISTIC

Тип: И (инициализация)

Описание: Если определить NO_KEEP_STATISTIC, то посещения (хиты) не будут учитываться модулем статистики.

Пример использования:

define("NO_KEEP_STATISTIC", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Пример вывода: Не выводится, отключает учёт статистики для данной страницы.

23. STOP_STATISTICS

Тип: И (инициализация)

Описание: Останавливает работу модуля статистики (не загружает его вовсе).

Пример использования:

define("STOP_STATISTICS", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Пример вывода: Не выводится, модуль статистики не подгружается.

24. NO_AGENT_STATISTIC

Тип: И (инициализация)

Описание: Запрещает сохранять статистику при выполнении агентов (задач, которые крутятся внутри системы).

Пример использования:

define("NO_AGENT_STATISTIC", true);

Пример вывода: Не выводится, влияет на поведение агентов.

25. NO_AGENT_CHECK

Тип: И (инициализация)

Описание: Запрещает проверку и запуск агентов на странице (агенты не будут выполняться при входе на страницу).

Пример использования:

define("NO_AGENT_CHECK", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

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

26. NOT_CHECK_PERMISSIONS

Тип: T (страница) или И (инициализация)

Описание: Если определить, то система не будет проверять права доступа для текущего пользователя на данной странице (аккуратно с безопасностью!).

Пример использования:

define("NOT_CHECK_PERMISSIONS", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Пример вывода: Не выводится, отменяет проверку прав для данной страницы.

27. ONLY_EMAIL

Тип: T (страница) или И (инициализация)

Описание: Если задать define("ONLY_EMAIL", true);, то при регистрации пользователей будет использоваться только email как логин.

Пример использования:

define("ONLY_EMAIL", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Пример вывода: Не выводится, влияет на логику регистрации.

28. BX_CRONTAB

Тип: И (инициализация)

Описание: Константа указывает, что скрипт выполняется в режиме CRON (например, при запуске агентов через cron на сервере).

Пример использования (в CRON-скрипте):

define("BX_CRONTAB", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

Пример вывода: Не выводится, система понимает, что идёт запуск из планировщика.

29. BX_FILE_PERMISSIONS

Тип: С (соединение с базой)

Описание: Разрешения (права) по умолчанию для вновь создаваемых файлов. Указывается в /bitrix/php_interface/dbconn.php.

Пример использованияdbconn.php):

define("BX_FILE_PERMISSIONS", 0644);

Пример вывода:

0644
(Прямого вывода нет, но значение используется при создании новых файлов.)

30. BX_DIR_PERMISSIONS

Тип: С (соединение с базой)

Описание: Разрешения (права) по умолчанию для вновь создаваемых папок. Также прописывается в dbconn.php.

Пример использования:

define("BX_DIR_PERMISSIONS", 0755);

Пример вывода:

0755

31. SM_SAFE_MODE

Тип: С (соединение с базой) или И (в некоторых версиях)

Описание: Включает «безопасный режим» на портале (не путать с PHP Safe Mode). Служит для ограничения некоторых операций. Обычно, если требуется, задаётся также в dbconn.php.

Пример использования:

define("SM_SAFE_MODE", true);

Пример вывода: Не выводится, влияет на внутреннюю логику системы.

32. DIRECTORY_INDEX

Тип: С (соединение с базой)

Описание: Перечень файлов, которые считаются индексными при обращении к папке (обычно index.php, index.html).

Пример использованияdbconn.php):

define("DIRECTORY_INDEX", "index.php index.html");

Пример вывода:

index.php index.html

33. MYSQL_TABLE_TYPE

Тип: С (соединение с базой)

Описание: Тип таблиц, создаваемых в MySQL по умолчанию (например, INNODB или MYISAM).

Пример использования:

define("MYSQL_TABLE_TYPE", "INNODB");

Пример вывода:

INNODB

34. DBPersistent

Тип: С (соединение с базой)

Описание: Включает использование постоянных соединений к базе данных (не всегда рекомендуется).

Пример использованияdbconn.php):

define("DBPersistent", true);

Пример вывода:

true

35. BX_DISABLE_INDEX_PAGE

Тип: T (страница) или И (инициализация)

Описание: Если определено, при генерации ссылок может блокироваться переход на индексную страницу (иногда используют для SEO-оптимизации, чтобы не добавлять index.php в URL).

Пример использования:

define("BX_DISABLE_INDEX_PAGE", true);

Пример вывода: Не выводится напрямую, влияет на формирование ссылок.

36. BX_NO_SQL_BACKTRACE

Тип: T (страница) или И (инициализация)

Описание: При ошибках SQL-запросов не выводить трассировку (backtrace) в отладочной информации.

Пример использования:

define("BX_NO_SQL_BACKTRACE", true);

Пример вывода: Не выводится, просто меняется поведение отладки.

37. TAGGED_user_card_size

Тип: T (страница) или И (инициализация)

Описание: Внутренняя «тегированная» константа, которая может влиять на размеры кешируемых данных (например, для карточек пользователей). Используется реже, часто в кастомных решениях.

Пример использования:

define("TAGGED_user_card_size", 1024);

Пример вывода:

1024
(Или любое другое значение, задаваемое разработчиком.)

38. BX_NO_ACCELERATOR_RESET

Тип: T (страница) или И (инициализация)

Описание: Если определено, Bitrix не будет сбрасывать кеш PHP-акселераторов (OPcache и т. д.) при обновлениях. Используется в редких случаях, например, на специфичных конфигурациях сервера.

Пример использования:

define("BX_NO_ACCELERATOR_RESET", true);

Пример вывода: Не выводится, влияет на механику сброса кеша.

39. PERFMON_STOP

Тип: T (страница) или И (инициализация)

Описание: Принудительно останавливает работу модуля «Монитор производительности» (PerfMon), если он активирован.

Пример использования:

define("PERFMON_STOP", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Пример вывода: Не выводится, просто модуль не ведёт замеры на текущей странице.

Как работать с константами

  1. Авто (A): Вам не нужно их определять, они уже сформированы системой. Просто используйте для получения информации (например, echo SITE_ID;).
  2. Страница (T): Определять до подключения пролога (header.php). Подходит для единичных страниц, где нужна особая логика.
  3. Инициализация (И): Задавайте в файлах /bitrix/php_interface/init.php или /bitrix/php_interface/ID_сайта/init.php. Это влияет на работу всего сайта (или конкретной языковой версии).
  4. Соединение (С): Меняют только в /bitrix/php_interface/dbconn.php. Там же задаются основные параметры подключения к БД.

Используйте эти константы осторожно, так как некоторые из них сильно влияют на поведение системы, безопасность и производительность.

Теги:  Битрикс, справочник

Интернет-магазин от 120 000 руб., срок от 4 недель

Платформа для продажи товаров или услуг. Включает интерактивные формы обратной связи в каждой карточке товара, а также множество статичных и динамичных разделов.

Корпоративный сайт от 60 000 руб., срок от 3 недель

Готовый информационный ресурс, включающий лицензию на 1С-Битрикс «Стандарт», технологию «Композитный сайт».

Лендинг от 25 000 руб., срок от 2 недель

Компактный сайт, идеально подходящий для старта. На одной странице можно представить ключевые преимущества вашей компании и разместить форму для обратной связи.