Усунення помилок на сайті 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Усунення помилок на сайті 1С-Бітрікс
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Усунення помилок на сайті 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 днів

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