Как найти причину ошибки «При выполнении скрипта возникла ошибка»
Вместо страницы сайт показывает одну строку — «При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php». Сервер при этом отвечает кодом 500.

Так продукт сообщает, что при выполнении PHP-кода произошла фатальная ошибка или исключение, которое код не обработал. Текст самой ошибки посетители не видят — в нем пути к файлам на сервере и детали кода.
Если ошибка произошла до того, как система определила язык сайта, например при недоступной базе данных, сообщение выводится на английском языке — «The script encountered an error and will be aborted. To view extended error messages, enable this feature in .settings.php».
Сообщение не содержит причину ошибки. После установки продукта вывод ошибок на экран выключен, а запись ошибок в файл не настроена. Увидеть текст ошибки может только тот, у кого есть доступ к файлам сайта на сервере.
-
Вы посетитель сайта — ошибка произошла на стороне сайта. Сообщите о ней администратору сайта.
-
Вы владелец или администратор сайта, но доступа к файлам на сервере нет — передайте сведения об ошибке разработчику или хостингу.
-
У вас есть доступ к файлам сайта — включите запись ошибок в файл, повторите действие, которое привело к сбою, и прочитайте текст ошибки. Шаги описаны ниже. Типичные ошибки и способы их исправить собраны в разделе Частые причины.
Если нет доступа к файлам сайта
Причину ошибки найдет разработчик сайта или хостинг. Передайте им сведения, которые помогут повторить ошибку.
-
Адрес страницы с сообщением.
-
Дату и время, когда появилось сообщение.
-
Действие, после которого оно появилось, например отправку формы или открытие раздела.
-
Что менялось на сайте незадолго до ошибки — обновление, установка решения из Маркетплейса, правка шаблона, переезд на другой хостинг.
Попросите включить запись ошибок в файл по этой инструкции и прислать запись за время ошибки. По записи разработчик определит, в чьем коде ошибка и кто ее исправит.
Подготовьте файл настроек
Оба способа включают в секции exception_handling файла /bitrix/.settings.php. Если на сайте есть файл /local/.settings.php, система использует его вместо /bitrix/.settings.php, и править нужно его.
Откройте файл по FTP, SSH или через файловый менеджер панели хостинга. В разделе Контент > Структура сайта файл не отображается в списке папки /bitrix/.
Ошибка в .settings.php может нарушить работу всего сайта. Перед правкой сохраните копию файла.
После установки секция выглядит так.
'exception_handling' =>
array (
'value' =>
array (
'debug' => false,
'handled_errors_types' => 4437,
'exception_errors_types' => 4437,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' => NULL,
),
'readonly' => false,
),
За поиск ошибки отвечают два параметра секции.
-
log— записывает ошибки в файл. ЗначениеNULLвыключает запись. -
debug— показывает текст ошибки на странице вместо сообщения. Значениеfalseвыключает вывод.
Описание всех параметров секции exception_handling — в статье Конфигурация ядра.
Секция в вашем файле может выглядеть иначе.
-
Массивы записаны через квадратные скобки
[ ]вместоarray ( ). Обе записи равноценны, правьте файл в той же записи. -
В секции нет строки
'log' => NULL. Добавьте блокlogиз следующего раздела в массивvalue. -
В файле нет секции
exception_handling. Добавьте ее целиком по образцу выше.
Изменения действуют со следующего запроса к сайту. Сбрасывать кеш не нужно.
Включите запись ошибок в файл
Запись в файл подходит для рабочего сайта. Посетители по-прежнему видят короткое сообщение, а текст ошибки попадает в файл. Сообщение для посетителей можно заменить своим текстом — как это сделать, описано в статье Конфигурация ядра.
-
Замените строку
'log' => NULL,в секцииexception_handlingблоком с настройками файла.'log' => array ( 'settings' => array ( 'file' => 'bitrix/modules/error.log', 'log_size' => 1000000, ), ),-
file— путь к файлу. Путь без слеша в начале система считает от корня сайта, путь со слешем — от корня сервера. -
log_size— размер файла в байтах. Когда файл превышает размер, система копирует его в файл с окончанием.oldи очищает.
-
-
Сохраните файл
.settings.php. -
Повторите действие, после которого появилось сообщение. Откройте ту же страницу или отправьте ту же форму. Ошибка запишется в файл.
-
Откройте файл
/bitrix/modules/error.logпо FTP, SSH или через файловый менеджер хостинга. Новые записи продукт добавляет в конец файла.
Если файл не появился, проверьте три причины.
-
Ошибка не повторилась. Повторите действие точно так же — на той же странице, с теми же данными формы.
-
На сайте есть файл
/local/.settings.php. Система читает настройки из него, и блокlogнужно добавить туда. -
Папки из параметра
fileнет или PHP не может в нее писать. Система не создает папки для лога. Укажите существующую папку, доступную PHP на запись.
Лог не должен открываться в браузере — в нем пути к файлам на сервере и тексты запросов к базе данных. В папке /bitrix/modules/ лежит файл .htaccess, который запрещает доступ на веб-сервере Apache. Веб-сервер nginx файл .htaccess не читает, для него запрет задают в конфигурации. После настройки откройте адрес лога на сайте, например https://example.com/bitrix/modules/error.log, и проверьте, что сервер отвечает ошибкой 403 или 404.
Запись в файл можно оставить включенной постоянно. Так ошибка сохранится, даже если ее не удалось повторить.
Включите вывод ошибок на экран
Вывод на экран подходит для локальной или тестовой копии сайта. Текст ошибки появляется прямо на странице вместо сообщения.
-
Замените в секции
exception_handlingзначение'debug' => falseна'debug' => true. -
Сохраните файл
.settings.php. -
Обновите страницу с ошибкой.
При 'debug' => true текст ошибки видят все посетители сайта, в том числе неавторизованные. В тексте есть пути к файлам на сервере. На рабочем сайте не включайте вывод на экран, используйте запись в файл.
Прочитайте текст ошибки
Запись в файле и текст на экране устроены одинаково. В записи есть тип ошибки, сообщение PHP, файл и строка, где произошла ошибка.
Пример. Запись в файле error.log после вызова несуществующей функции.
2026-10-29 12:34:59 - Host: example.com - UNCAUGHT_EXCEPTION - [Error]
Call to undefined function undefined_function_for_check() (0)
/home/bitrix/www/local/php_interface/init.php:4
—————
-
2026-10-29 12:34:59— дата и время ошибки. По ним сопоставьте запись с действием на сайте. -
Host— домен, на котором произошла ошибка. -
UNCAUGHT_EXCEPTION— исключение, которое код не обработал. Для фатальных ошибок PHP, например нехватки памяти, система пишетFATAL. -
[Error]— класс исключения или ошибки PHP. -
Call to undefined function ...— сообщение PHP. По нему ищут описание ошибки. -
/home/bitrix/www/local/php_interface/init.php:4— файл и номер строки.
Частые причины
В таблице собраны ошибки, которые чаще всего приводят к сообщению. Найдите строку по началу сообщения PHP из записи.
| Сообщение в записи | Что случилось | Что сделать |
|---|---|---|
Allowed memory size of ... bytes exhausted |
Скрипту не хватило памяти. Тип записи — FATAL |
Увеличьте параметр PHP memory_limit или попросите об этом хостинг. Файл в записи показывает место, где закончилась память, а не обязательно код, который ее израсходовал |
Maximum execution time of ... seconds exceeded |
Скрипт работал дольше, чем разрешает параметр PHP max_execution_time. Тип записи — FATAL |
Найдите долгую операцию, например импорт или обработку большого списка. Сократите ее или перенесите в фоновую задачу. Если операция должна идти долго, увеличьте max_execution_time |
Call to undefined function ... |
Функция не существует. Чаще всего в имени опечатка, файл с функцией не подключен или не включено расширение PHP, которому принадлежит функция | Найдите функцию в документации PHP. Если она из расширения, попросите хостинг включить его. Расширения часто пропадают после смены версии PHP или переезда на другой хостинг |
Class "..." not found |
Система не нашла класс. Модуль не установлен, файл класса отсутствует или пространство имен не совпадает с путем к файлу | Проверьте, что модуль установлен и его файлы на месте. Для своих классов проверьте автозагрузку |
syntax error, unexpected ... |
Синтаксическая ошибка в PHP-файле. Класс в записи — [ParseError] |
Исправьте файл в строке из записи. Часто ошибка появляется после ручной правки файла |
Mysql connect error |
Сайт не подключился к базе данных. Сообщение на странице выводится на английском языке | Проверьте, что сервер базы данных работает, и сверьте параметры в секции connections файла .settings.php. Если база на стороне хостинга, обратитесь к нему |
Mysql query error |
База данных вернула ошибку на SQL-запрос, например таблица не существует | Найдите в стеке вызовов код, который отправил запрос. Если таблицы не хватает после обновления или установки модуля, запустите Настройки > Инструменты > Проверка системы. Проверка сверяет структуру таблиц и предлагает исправить ошибки |
Определите, в чьем коде ошибка
Путь к файлу из записи показывает, кто отвечает за код и к кому обращаться.
| Путь в записи | Чей код | Что сделать |
|---|---|---|
/local/, /bitrix/php_interface/, файлы страниц в публичной части |
Код сайта — шаблоны, компоненты, модули, init.php |
Обратитесь к разработчику сайта |
/bitrix/templates/ |
Шаблоны сайтов. Часть из них установили продукт или модули, например login и bitrix24 в Битрикс24, часть сделал разработчик сайта |
Шаблон, сделанный для сайта, исправляет разработчик сайта |
/bitrix/modules/ с кодом модуля без точки, например main, модули bitrix.*, /bitrix/components/bitrix/ |
Код продукта. Модули bitrix.*, например bitrix.eshop, — решения «1С-Битрикс» из дистрибутива |
Установите обновления в разделе Marketplace > Обновление платформы. Если ошибка осталась, напишите в техническую поддержку |
/bitrix/modules/ с кодом модуля через точку, например vendor.module |
Сторонний модуль. В эту папку модули устанавливает Маркетплейс. Иногда здесь лежит и модуль разработчика сайта | Обновите модуль или обратитесь к его разработчику |
/bitrix/components/ с другой папкой вместо bitrix, например vendor |
Компоненты стороннего модуля или разработчика сайта | Обратитесь к разработчику модуля или сайта |
Путь в модуль продукта еще не значит, что ошибка в продукте. Часто продукт только сообщает об ошибке, а вызвал ее код сайта. Проверьте стек вызовов. Это строки #0:, #1: и далее под путем к файлу. Стек показывает, какой код вызвал функцию продукта. Просмотрите его сверху вниз и найдите первый файл вне кода продукта — чаще всего ошибка в нем. Если вне кода продукта в стеке только файл страницы в самом конце, например /index.php, причина обычно в окружении или в продукте. Сверьтесь с разделом Частые причины.
Пример. Запись об ошибке SQL-запроса. Путь ведет в главный модуль, а запрос отправил файл сайта /local/php_interface/init.php.
2026-11-03 11:56:29 - Host: example.com - UNCAUGHT_EXCEPTION - [Bitrix\Main\DB\SqlQueryException]
Mysql query error: (1146) Table 'sitedb.b_my_table' doesn't exist (400)
SELECT * FROM b_my_table
/home/bitrix/www/bitrix/modules/main/lib/db/mysqlcommonconnection.php:417
#0: Bitrix\Main\DB\MysqlCommonConnection->createQueryException(integer, string, string)
/home/bitrix/www/bitrix/modules/main/lib/db/mysqliconnection.php:149
#1: Bitrix\Main\DB\MysqliConnection->queryInternal(string, array, NULL)
/home/bitrix/www/bitrix/modules/main/lib/db/connection.php:324
#2: Bitrix\Main\DB\Connection->query(string)
/home/bitrix/www/local/php_interface/init.php:12
—————
Если ошибка появилась после изменений на сайте, начните с них. Проверьте последнее обновление, установленное решение, правку шаблона или смену версии PHP.
Напишите в техническую поддержку
Техническая поддержка «1С-Битрикс» отвечает владельцам активной лицензии и партнерам компании. Она помогает, если ошибка в модуле продукта. Ошибки в коде сайта и в сторонних модулях исправляют их разработчики, а проблемы настройки сервера решает хостинг.
-
Авторизуйтесь на сайте 1c-bitrix.ru. Если лицензионный ключ сайта еще не привязан к вашему логину, укажите его в форме Проверка и регистрация ключа. Без привязки поддержка не узнает вас как владельца лицензии.
-
Откройте форму обращения и опишите проблему.
-
Адрес страницы и действие, после которого появилось сообщение.
-
Дату и время ошибки.
-
Запись из лога целиком, без сокращений.
-
Что изменилось на сайте перед ошибкой — обновление, установка решения, правка кода, смена версии PHP.
-
Что вы уже проверили, например установили обновления.
-
Если для поиска причины нужно поработать на сайте, сотрудник поддержки запросит временный доступ к административному разделу, а иногда к серверу по FTP или SSH. Срок ответа зависит от сложности вопроса — от нескольких часов до нескольких дней. Ответ и историю обращений смотрите на странице Все обращения.