В процессе сопровождения проектов на платформе 1С-Битрикс нередко встречается ситуация, когда отображаемое время расходится с реальным (например, сдвиг составляет ровно один час). Как правило, это свидетельствует о некорректной конфигурации временной зоны на уровне приложения. В данной статье рассматриваются способы решения этой проблемы исключительно средствами CMS, без необходимости изменения общесерверных конфигураций.
Диагностика временных параметров
Прежде чем вносить изменения в конфигурационные файлы, необходимо локализовать источник проблемы. Для этого проводятся два последовательных теста.
Тестирование временной зоны PHP
Для проверки того, в каком часовом поясе работает серверный скриптовый движок, в корневой директории сайта создается временный файл (например, time_check.php) со следующим содержимым:
<?php
echo "Текущая временная зона PHP: " . date_default_timezone_get() . "<br>";
echo "Серверное время: " . date("d.m.Y H:i:s");
?>При обращении к этому файлу через браузер можно оценить корректность отображения времени. Если полученное значение не соответствует текущему, это подтверждает необходимость корректировки.
Проверка времени на уровне базы данных
В некоторых случаях некорректное время может приходить непосредственно из СУБД. Чтобы это проверить, в MySQL выполняется следующий запрос:
SELECT @@global.time_zone, @@session.time_zone;
Для корректного отображения времени в рамках текущей сессии разработчика можно выполнить временную установку: SET GLOBAL time_zone = 'Europe/Moscow';, однако для постоянного применения требуются уже серверные правки.
Способы установки часового пояса в Битрикс
Для принудительного указания временной зоны на уровне ядра системы используется один из приведенных ниже методов. Выбор конкретного способа зависит от версии платформы и структуры конкретного проекта.
Способ 1. Редактирование файла dbconn.php
Этот метод считается классическим и работает во всех версиях платформы. Файл dbconn.php отвечает за подключение к базе данных и глобальные настройки окружения.
Через FTP или файловый менеджер хостинга выполняется поиск файла /bitrix/php_interface/dbconn.php. Если проект использует директорию /local/, путь может быть таким: /local/php_interface/dbconn.php.
Важный нюанс: В проектах на ядре D7 (версии 14.0 и выше) основной файл конфигурации — /bitrix/.settings.php, и файл dbconn.php может отсутствовать. Это штатная ситуация. В таком случае он либо создается самостоятельно, либо используются альтернативные способы, описанные ниже.
Если файл отсутствует, он создается. В тело файла (после открывающего тега <?php) добавляется директива, явно задающая нужную временную зону. Например, для Москвы:
<?php
// Установка часового пояса для скриптов
date_default_timezone_set("Europe/Moscow");
// Далее могут следовать другие настройки, если файл уже существовал
?>Способ 2. Использование файла init.php
Это универсальный метод, который подходит для любых проектов, независимо от их архитектуры. Файл init.php выполняется при каждом запросе к сайту и идеально подходит для подобных пользовательских настроек.
Пути к файлу:
-
/bitrix/php_interface/init.php -
/local/php_interface/init.php(для современных проектов)
В выбранный файл добавляется строка:
date_default_timezone_set("Europe/Moscow");Способ 3. Программная установка через D7 API
Если проект активно использует возможности нового ядра D7, можно задать временную зону программно, используя API контекста. Этот способ является наиболее органичным с точки зрения идеологии современного Битрикса.
В файл init.php (расположение см. выше) добавляется следующий код:
// Установка часового пояса для текущего контекста приложения
\Bitrix\Main\Context::getCurrent()->setTimeZone("Europe/Moscow");Заключительные шаги и проверка работоспособности
После внесения изменений важно убедиться, что система применяет новые настройки корректно.
-
Сброс кеша: В административной панели выполняется переход в «Настройки» > «Производительность» > «Очистка кеша» и сбрасываются все типы кеша. Также рекомендуется очистить кеш браузера.
-
Мониторинг фоновых процессов: Проверяется список агентов (
/bitrix/admin/agent_list.php). Важно убедиться, что они выполняются по корректному расписанию и не сместились по времени. -
Проверка интеграций: Некоторые модули, например, обмен с 1С или обработка почтовых событий, могут иметь собственные настройки времени. После смены часового пояса проверяются логи этих модулей на наличие ошибок синхронизации.
Распространенные временные зоны
Для удобства приводится список наиболее часто используемых идентификаторов временных зон в формате PHP:
-
Москва:
Europe/Moscow -
Киев:
Europe/Kiev -
Минск:
Europe/Minsk -
Лондон:
Europe/London -
Нью-Йорк:
America/New_York
Резюме
Корректировка отображения времени в Битрикс чаще всего решается правкой конфигурационных PHP-файлов проекта, что не требует вмешательства в настройки сервера или хостинга. Алгоритм действий выглядит следующим образом:
-
Проведение диагностики через временный скрипт.
-
Выбор подходящего метода в зависимости от архитектуры проекта (работа с
dbconn.php,init.phpили D7 API). -
Установка часового пояса выбранным способом.
-
Очистка кеша и контрольный осмотр работы модулей и агентов.
Если после выполнения всех шагов проблема не устранена, вероятно, источник кроется в настройках самого сервера, и требуется консультация службы поддержки хостинг-провайдера.