При работе с информационными базами 1С:Предприятие пользователи периодически сталкиваются с критическим сбоем, который сопровождается сообщением: «На сервере 1С:Предприятия произошла неисправимая ошибка. Приложение будет закрыто». Эта ошибка является обобщенным сигналом о том, что процесс rphost на стороне сервера был аварийно завершен операционной системой. Давайте разберем, почему это происходит и как нам с вами провести диагностику для поиска причины.
Первое, что необходимо сделать, — это понять, в какой момент происходит падение. Поскольку стандартное окно 1С не дает подробностей, мы воспользуемся инструментом Технологический журнал. Он позволяет записывать события сервера в логи, где мы сможем найти конкретную причину: будь то нехватка памяти, нарушение прав доступа или ошибка при работе с СУБД.
logcfg.xml на сервере 1С.error и critical для события EXCP.rphost.Если ваша база опубликована на веб-сервере (IIS или Apache), часто проблема кроется в настройках самого веб-узла. При передаче больших объемов данных (загрузка прайс-листов, справочников номенклатуры) сервер может принудительно разрывать соединение.
Проанализируйте следующие параметры:
Request Timeout) достаточно для завершения операции загрузки.maxAllowedContentLength.Процесс rphost при выполнении сложных алгоритмов импорта данных может потреблять значительный объем оперативной памяти. Если на сервере наблюдается дефицит ОЗУ, операционная система может принудительно завершить процесс, чтобы защитить стабильность системы. Мы рекомендуем:
rphost в Диспетчере задач во время загрузки.Иногда причина сбоя кроется в физическом повреждении таблиц базы данных или накопленном «мусоре» в кэше. Выполним следующие действия:
srvinfo (для конкретного сеанса).Поскольку вы используете платформу 8.3.20.1789, важно учитывать, что этот релиз может содержать ошибки, исправленные в более свежих версиях. Рассмотрим возможность обновления платформы до актуального стабильного релиза.
Если ошибка возникает в конкретной обработке, попробуйте включить отладчик. Пошаговое прохождение кода (используя клавиши F10 или F11) поможет выявить команду, при выполнении которой происходит вылет. Обратите особое внимание на использование внешних компонентов (COM-объектов) или прямые обращения к SQL-таблицам через Запрос, если они есть в алгоритме загрузки.
В завершение, проанализируйте алгоритм загрузки. Если вы используете собственный код, убедитесь в корректности обработки исключений:
Попытка
// Ваш код загрузки данных
Исключение
ЗаписьЖурналаРегистрации("Ошибка загрузки", УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки());
КонецПопытки;
Использование конструкции Попытка...Исключение позволит перехватить ошибку внутри сеанса 1С до того, как произойдет падение всего процесса сервера. Это поможет вам увидеть описание ошибки в Журнале регистрации, а не просто констатировать аварийное завершение приложения.