Автор: Александр Кунташов <kuntashov@gmail.com> (подробнее обо мне)
Сталкиваюсь с подобной ошибкой не первый раз, но каждый раз - как новый, т.к. со временем проблема забывается, а на стороне 1С ошибка при обмене выглядит как "Не установлено соединение, проверьте логин/пароль...", настоящее сообщение об ошибке можно увидеть только в логах (или в отладчике). Поэтому документирую в виде поста, может кому-то еще пригодится.
Когда запуске обмена 1С с Битрикс24 возникает ошибка:
failure
Время на сервере базы данных отличается от времени на веб-сервере больше, чем на 10 минут.
Вероятно неправильно настроены временные зоны. Выполните настройку и повторите обмен.
Это значит, что временные зоны MySql/MariaDB отличаются от тех, что указаны в PHP (явно или неявно).
Решение:
Нужно принудительно установить временную зону базы данных такой же, как в PHP.
Для этого в /bitrix/php_interface/after_connect.php добавляем:
$DB->Query("SET LOCAL time_zone='".date('P')."'");
а в /bitrix/php_interface/after_connect_d7.php добавляем:
$connection->queryExecute('SET LOCAL time_zone="'.date('P').'"');