Не закрывать форму до завершения учебной проверки

Учебные задачи

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

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

Клиентский модуль управляемой формы внешней обработки, событие ПередЗакрытием.

Подготовка

  1. Создайте управляемую форму внешней обработки с булевым реквизитом ПроверкаЗавершена и флажком для него.

  2. Свяжите процедуру с событием формы ПередЗакрытием. Начальное значение флажка — Ложь.

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

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

  1. Платформа передаёт признаки обычного закрытия и завершения приложения.

  2. При незавершённой проверке Отказ отменяет обычное закрытие.

  3. При завершении приложения передаётся текст системного предупреждения без серверного вызова или нового окна.

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

  1. При снятом флажке обычное закрытие отменяется и показано сообщение.

  2. Установите флажок: форма закрывается. Отдельно проверьте завершение приложения в учебном сеансе.

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

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

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

  1. Некоторые способы закрытия вспомогательного окна веб-клиента не вызывают событие.

  2. В этой процедуре не открывайте диалоги и не вызывайте сервер при ЗавершениеРаботы = Истина.

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

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

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

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

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