Возникает на клиенте перед закрытием формы. В обработчике события можно отказаться как от закрытия формы, так и от стандартной обработки при закрытии. В процессе завершения работы приложения (параметр ЗавершениеРаботы имеет значение Истина) запрещены серверные вызовы и открытие окон.
Синтаксис
ПередЗакрытием(<Отказ>, <ЗавершениеРаботы>, <ТекстПредупреждения>, <СтандартнаяОбработка>)Полное описание, параметры и ограничения
ФормаКлиентскогоПриложения.ПередЗакрытием (ClientApplicationForm.BeforeClose)
ФормаКлиентскогоПриложения (ClientApplicationForm)
ПередЗакрытием (BeforeClose)
Доступен, начиная с версии 8.2.
Синтаксис:
ПередЗакрытием(<Отказ>, <ЗавершениеРаботы>, <ТекстПредупреждения>, <СтандартнаяОбработка>)
Параметры:
<Отказ>
Тип: Булево.
Признак отказа от закрытия формы. Если в теле процедуры-обработчика установить данному параметру значение Истина, то форма закрыта не будет.
Значение по умолчанию: Ложь.
<ЗавершениеРаботы>
Тип: Булево.
В данный параметр передается признак того, что форма закрывается в процессе завершения работы приложения:
Истина - если в процессе завершения приложения; Ложь - если закрывается только форма.
<ТекстПредупреждения>
Тип: Строка.
Если параметру <Отказ> установлено значение Истина и <ТекстПредупреждения> содержит непустую строку, то:
Если <ЗавершениеРаботы> установлено в Истина, окно сообщения со строкой текста предупреждения будет выведено на экран и пользователю будет предложено на выбор - остаться или покинуть окно без сохранения изменений.
Если <ЗавершениеРаботы> установлено в Ложь, текст предупреждения игнорируется и процесс закрытия формы прерывается.
Если параметру <Отказ> установлено значение Истина и <ТекстПредупреждения> содержит пустую строку, то
Если <ЗавершениеРаботы> установлено в Истина, пользователю будет отображно окно с общим текстом "Работа в данном окне не завершена" и будет предложено остаться или покинуть окно без сохранения изменений.
Если <ЗавершениеРаботы> установлено в Ложь, то значение параметра <ТекстПредупреждения> будет проигнорировано, и процесс закрытия формы будет прерван.
Если параметру <Отказ> установлено значение Ложь, то значение параметра <ТекстПредупреждения> будет проигнорировано, и процесс закрытия формы будет продолжен.
Примечание: В браузере Mozilla Firefox окно сообщения не будет содержать текста предупреждения.
<СтандартнаяОбработка>
Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
Значение по умолчанию: Истина.
Описание:
Возникает на клиенте перед закрытием формы.
В обработчике события можно отказаться как от закрытия формы, так и от стандартной обработки при закрытии.
В процессе завершения работы приложения (параметр ЗавершениеРаботы имеет значение Истина) запрещены серверные вызовы и открытие окон.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент).
Примечание:
При закрытии формы по таймауту, если в обработчике выполнен отказ от закрытия, то через тот же промежуток времени будет инициировано повторное закрытие.
Если из исходной формы открыта дочерняя форма, блокирующая владельца или модальная, то при закрытии исходной формы программно или по таймауту, дочерняя форма закроется автоматически. В этом случае перед закрытием исходной формы данное событие вызывается, а перед закрытием дочерней - не вызывается.
В режиме запуска веб-клиент при закрытии формы, которая открыта во вспомогательном окне, нажатием системной кнопки закрытия окна ("крестик" в правом верхнем углу формы) или нажатием Alt+F4, вызов обработчика не происходит.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Не закрывать форму до завершения учебной проверки
Обработчик отменяет обычное закрытие, пока пользователь не отметил завершение. При завершении приложения окна не открываются.
Где и как запускать
Клиентский модуль управляемой формы внешней обработки, событие ПередЗакрытием.
Подготовка
Создайте управляемую форму внешней обработки с булевым реквизитом ПроверкаЗавершена и флажком для него.
Свяжите процедуру с событием формы ПередЗакрытием. Начальное значение флажка — Ложь.
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Если Не ПроверкаЗавершена Тогда
Отказ = Истина;
ТекстПредупреждения = "Учебная проверка ещё не завершена";
Если Не ЗавершениеРаботы Тогда
Сообщить(ТекстПредупреждения);
КонецЕсли;
КонецЕсли;
КонецПроцедурыРазбор по шагам
Платформа передаёт признаки обычного закрытия и завершения приложения.
При незавершённой проверке Отказ отменяет обычное закрытие.
При завершении приложения передаётся текст системного предупреждения без серверного вызова или нового окна.
Как проверить результат
При снятом флажке обычное закрытие отменяется и показано сообщение.
Установите флажок: форма закрывается. Отдельно проверьте завершение приложения в учебном сеансе.
Ожидаемый результат
При завершении приложения пользователь может подтвердить выход без сохранения: обработчик не гарантирует запрет выхода.
На что обратить внимание
Некоторые способы закрытия вспомогательного окна веб-клиента не вызывают событие.
В этой процедуре не открывайте диалоги и не вызывайте сервер при ЗавершениеРаботы = Истина.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.