Устранение ошибок на сайте 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Устранение ошибок на сайте 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Устранение ошибок на сайте 1С-Битрикс

Сообщение «На сайте произошла ошибка» — это не диагноз, а симптом. За одинаковым внешним проявлением скрываются десятки причин: от переполненной таблицы b_event до конфликта обновлений модулей. Устранение ошибок на Битрикс — это прежде всего методичная диагностика, и только потом исправление. Разберём системный подход, который позволяет находить причину, а не гадать.

Классификация ошибок

Прежде чем лезть в код, определите тип ошибки:

Категория Признаки Где искать причину
PHP Fatal/Parse Белый экран или текст ошибки error_log, /bitrix/.settings.phpexception_handling
HTTP 500 Страница сервера Лог веб-сервера, php-fpm лог
Ошибки БД «MySQL server has gone away», пустые списки b_event_log, slow query log
JavaScript Не работают интерактивные элементы Консоль браузера, Network-таб
Логические Неверные цены, пропавшие товары Логика компонентов, кэш

Первый шаг: включение детального логирования

По умолчанию Битрикс подавляет вывод ошибок на продакшене. Для диагностики нужно временно включить расширенный режим.

В файле /bitrix/.settings.php найдите секцию exception_handling и установите:

  • debugtrue
  • handled_errors_typesE_ALL
  • log → настройте запись в файл, например /var/log/bitrix/error.log

Альтернативный способ — через dbconn.php (для старых версий): $DBDebug = true; и error_reporting(E_ALL);. На продакшене не забудьте вернуть настройки после диагностики — вывод ошибок раскрывает пути и структуру БД.

Системный подход к диагностике

Есть устоявшийся алгоритм, который покрывает 90% случаев:

1. Воспроизведите ошибку. Если ошибка плавающая — соберите данные: URL, время, браузер, авторизован ли пользователь. Часто ошибка проявляется только для определённой группы пользователей или при определённых настройках компонента.

2. Проверьте журнал событий. Административная панель → Настройки → Инструменты → Журнал событий. Таблица b_event_log хранит ошибки с метками времени, модулем-источником и stack trace. Фильтруйте по severity ERROR и WARNING.

3. Исключите проблему кэша. Сбросьте весь кэш: управляемый кэш (/bitrix/managed_cache/), автокэш (/bitrix/cache/), статический кэш (/bitrix/html_pages/). Через админку: Настройки → Настройки продукта → Автокеширование → Очистить все файлы кеша. Если ошибка исчезла после сброса — проблема в закэшированных данных, а не в коде.

4. Отключите сторонние модули. Через bitrix/modules/ переименуйте подозрительный модуль (например, partner.modulepartner.module_disabled). Если ошибка пропала — виновник найден. Для компонентов аналогично: замените вызов компонента заглушкой.

5. Проверьте целостность ядра. Инструмент «Проверка системы» в админке (/bitrix/admin/site_checker.php) сравнивает контрольные суммы файлов ядра с эталонными. Модифицированные файлы ядра — частая причина проблем после обновлений.

Частые причины ошибок и их устранение

Переполнение таблиц служебных данных. Таблицы b_event, b_event_log, b_search_content_stem, b_stat_* растут без ограничений. На нагруженных сайтах b_event может содержать миллионы строк. Решение: настроить агент очистки или написать cron-скрипт для ротации. Для b_event — настроить лимит в Настройки → Почтовые события.

Конфликт обновлений модулей. Обновление ядра до версии, несовместимой со сторонним модулем, вызывает Fatal Error. Паттерн: обновили Битрикс, всё сломалось. Решение: откатить обновление через /bitrix/updates/ или отключить конфликтующий модуль. Перед обновлениями всегда делайте бэкап и проверяйте совместимость на тестовой копии.

Ошибки в result_modifier.php и component_epilog.php. Кастомизации компонентов через эти файлы в шаблонах — основной источник ошибок при обновлениях. Компонент изменил формат $arResult, а result_modifier.php обращается к несуществующему ключу. Решение: добавляйте проверки isset() и логируйте расхождения.

Проблемы с сессиями. Битрикс по умолчанию хранит сессии в файлах (/tmp/ или /bitrix/tmp/). При недостатке прав или места сессии не создаются, пользователь получает бесконечный редирект на страницу авторизации. Проверяйте session.save_path в phpinfo() и права на директорию.

Ошибки на уровне БД

Самые коварные — ошибки, связанные с целостностью данных. Типичные:

  • «Duplicate entry» при добавлении элементов инфоблока — нарушен автоинкремент или индекс. Решение: ALTER TABLE ... AUTO_INCREMENT = <max_id + 1>.
  • «Table is marked as crashed» (MyISAM) — повреждение таблицы. Решение: REPAIR TABLE b_iblock_element.
  • Deadlocks при массовых операциях — две транзакции блокируют друг друга. Проявляется как «Lock wait timeout exceeded». Решение: оптимизация порядка обращений к таблицам, использование SHOW ENGINE INNODB STATUS для анализа.

Сроки устранения по сложности

Тип ошибки Типичное время
Проблема кэша, прав доступа 1-2 часа
Конфликт модулей, ошибка в шаблоне 2-8 часов
Проблемы БД, целостность данных 1-3 дня
Архитектурные проблемы (утечки памяти, race conditions) 3-10 дней

Для каждой найденной ошибки фиксируйте: причину, способ обнаружения, решение, и меры предотвращения. Без этого одна и та же ошибка будет возвращаться после каждого обновления.