Глобальный контекст.ОбработкаОтображенияОшибки

События · ErrorDisplayProcessing

Вызывается при возникновении неперехваченного исключения, перед отображением пользователю окна с ошибкой. В обработчике данного события можно выполнить дополнительные действия по логированию ошибки, показать свою форму ошибки, отправить информацию об ошибке на внешний сервер. Следует помнить, что для некоторых типов ошибок (например, ошибка сети, удаление сеанса) невозможно обращение к серверу (например, для получения формы). В таких случаях можно воспользоваться методами ПоказатьВопрос и ПоказатьОповещениеПользователя. Если параметр <ТребуетсяЗавершениеСеанса> имеет значение Истина, то открыть форму можно только использую только метод ПоказатьИнформациюОбОшибке и объект ОтчетОбОшибке. Любые другие формы не будут влиять на завершение работы после завершения выполнения обработчика.

Синтаксис

ОбработкаОтображенияОшибки(<ИнформацияОбОшибке>, <ТребуетсяЗавершениеСеанса>, <СтандартнаяОбработка>)
Полное описание, параметры и ограничения

Глобальный контекст.ОбработкаОтображенияОшибки (Global context.ErrorDisplayProcessing)

Глобальный контекст (Global context)

ОбработкаОтображенияОшибки (ErrorDisplayProcessing)

Доступен, начиная с версии 8.3.17.

Синтаксис:
ОбработкаОтображенияОшибки(<ИнформацияОбОшибке>, <ТребуетсяЗавершениеСеанса>, <СтандартнаяОбработка>)
Параметры:

<ИнформацияОбОшибке>
Тип: ИнформацияОбОшибке.
Содержит описание ошибки, при возникновении которой был вызван данный обработчик.

<ТребуетсяЗавершениеСеанса>
Тип: Булево.
В данный параметр передается признак того, что работа в приложении не может быть продолжена и после окончания работы обработчика будет выполнено завершение работы или перезапуск приложения.

<СтандартнаяОбработка>
Тип: Булево.
В данный параметр передается признак отображения пользователю стандартного сообщения об ошибке.
Описание:

Вызывается при возникновении неперехваченного исключения, перед отображением пользователю окна с ошибкой.
В обработчике данного события можно выполнить дополнительные действия по логированию ошибки, показать свою форму ошибки, отправить информацию об ошибке на внешний сервер. Следует помнить, что для некоторых типов ошибок (например, ошибка сети, удаление сеанса) невозможно обращение к серверу (например, для получения формы). В таких случаях можно воспользоваться методами ПоказатьВопрос и ПоказатьОповещениеПользователя.
Если параметр <ТребуетсяЗавершениеСеанса> имеет значение Истина, то открыть форму можно только использую только метод ПоказатьИнформациюОбОшибке и объект ОтчетОбОшибке. Любые другие формы не будут влиять на завершение работы после завершения выполнения обработчика.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.

См. также:
ОтчетОбОшибке
ИнформацияОбОшибке, метод ПоказатьИнформациюОбОшибке

Использование в версии:

Доступен, начиная с версии 8.3.17.

Методическая информация

Практические примеры

ОбработкаОтображенияОшибки: собственный модуль managed

Обрабатываем собственное неперехваченное исключение, не скрывая стандартную диагностику и не меняя признак обязательного завершения сеанса.

Где и как запускать

Конкретный собственный модуль приложения / сеанса / внешнего соединения, указанный в подготовке. Платформенные события вручную не вызываются.

Подготовка

  1. Используйте отдельную свою учебную конфигурацию. Основной блок помещается в модуль приложения, указанный ниже, не в модуль формы и не в общий серверный модуль.

  2. Обработчик вызывает платформа при настоящем событии сеанса. Не вызывайте процедуру вручную и не добавляйте второй обработчик того же имени в модуль.

  3. Основной блок — модуль управляемого приложения. В своей внешней управляемой обработке создайте команду ПроверитьСвоюОшибку и назначьте дополнительный клиентский обработчик.

  4. Нажмите эту кнопку только в учебной базе. Ошибка намеренно не перехвачена; событие приложения оставляет стандартное окно ошибки включённым и не отправляет сведения вовне.

Процедура ОбработкаОтображенияОшибки(ИнформацияОбОшибке, ТребуетсяЗавершениеСеанса, СтандартнаяОбработка)
    СтандартнаяОбработка = Истина;
    Сообщить("Собственная проверка обработки ошибки: " + ИнформацияОбОшибке.Описание);
    Если ТребуетсяЗавершениеСеанса Тогда
        Сообщить("Не пытаемся отменить обязательное завершение или открыть свою форму");
    КонецЕсли;
КонецПроцедуры
Собственная управляемая форма: явная кнопка учебной ошибки
&НаКлиенте
Процедура ПроверитьСвоюОшибку(Команда)
    Сообщить("Сейчас будет собственное неперехваченное учебное исключение");
    ВызватьИсключение "Учебная ошибка своей обработки";
КонецПроцедуры

Разбор по шагам

  1. Выбранный модуль и настоящий тип сеанса определяют, когда платформа вызывает обработчик.

  2. Используется явно подготовленный собственный параметр / кэш / команда, а не неизвестный входной объект.

  3. Соблюдаем ограничения этапа: до окна и после его закрытия не показываем интерфейс, в фоне не выполняем долгую работу.

Как проверить результат

  1. При собственной ошибке показано дополнительное сообщение и стандартная диагностика.

  2. Параметр ТребуетсяЗавершениеСеанса не присваивается. Обработчик не открывает свои формы и не вызывает сервер при сбое.

Ожидаемый результат

Событие / раздел модулей показаны с собственным источником и реальными ограничениями его этапа.

На что обратить внимание

  1. Не смешивайте модули управляемого приложения, обычного приложения, внешнего соединения и сеанса.

  2. Обзорный пример относится только к указанному событию и не наследует отметку готовности всем дочерним страницам.

  3. При сборке HTML сеансы 1С, внешние соединения, системный буфер и BSL не запускались.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.