Возникает перед закрытием формы, а также при закрытии модальной формы по таймауту. В обработчике события можно отказаться как от закрытия формы, так и от стандартной обработки при закрытии.
Синтаксис
ПередЗакрытием(<Отказ>, <СтандартнаяОбработка>)Полное описание, параметры и ограничения
Форма.ПередЗакрытием (Form.BeforeClose)
Форма (Form)
ПередЗакрытием (BeforeClose)
Доступен, начиная с версии 8.0.
Синтаксис:
ПередЗакрытием(<Отказ>, <СтандартнаяОбработка>)
Параметры:
<Отказ>
Тип: Булево.
Признак отказа от закрытия формы. Если в теле процедуры-обработчика установить данному параметру значение Истина, закрытие формы выполнено не будет.
Значение по умолчанию: Ложь.
<СтандартнаяОбработка>
Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет. Отказ от стандартной обработки не отменяет закрытие формы.
Для форм, связанных с типами ДокументОбъект.<Имя документа> и СправочникОбъект.<Имя справочника>, стандартной обработкой является проверка модифицированности, задание вопроса о сохранении и сохранение объекта.
Значение по умолчанию: Истина.
Описание:
Возникает перед закрытием формы, а также при закрытии модальной формы по таймауту. В обработчике события можно отказаться как от закрытия формы, так и от стандартной обработки при закрытии.
Доступность:
Толстый клиент.
Примечание:
При закрытии формы по таймауту, если в обработчике выполнен отказ от закрытия, то через тот же промежуток времени будет инициировано повторное закрытие.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
ПередЗакрытием: собственная обычная форма
Локальное правило отменяет закрытие собственной формы через Отказ. СтандартнаяОбработка не отключается и не выдаётся за признак отмены.
Где и как запускать
Модуль своей обычной формы, толстый клиент. Для связанных форм место каждого дополнительного блока указано отдельно.
Подготовка
Создайте собственную внешнюю обработку с обычной формой. Запуск — толстый клиент, обычные формы; основной блок назначается указанному событию самой формы.
Реквизиты формы: Наименование (Строка 100), Количество (Число 10.0), Цена и Сумма (Число 12.2), Статус (Строка 200), КоличествоПовторныхОткрытий (Число 10.0), РазрешитьЗакрытие (Булево). Выведите нужные поля и флажок на форму.
Добавьте обычную надпись СуммаНадпись без связи с данными. Для расчётных опытов вручную задайте Количество = 3, Цена = 100, Наименование = Книга. Данные находятся только в форме.
Каждый пример — отдельный вариант формы. Не вызывайте обработчик события вручную; используйте указанное действие или дополнительную кнопку.
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
Если Не РазрешитьЗакрытие Тогда
Отказ = Истина;
Сообщить("Для закрытия учебного окна включите Разрешить закрытие");
КонецЕсли;
КонецПроцедурыРазбор по шагам
Подготавливаем свою обычную форму и назначаем её точное событие.
Платформа вызывает обработчик в описанных условиях; дополнительные блоки создают реальное действие там, где оно доступно без внешней компоненты.
Локальное правило отменяет закрытие собственной формы через Отказ. СтандартнаяОбработка не отключается и не выдаётся за признак отмены.
Как проверить результат
При выключенном флажке окно не закрывается.
Включите флажок: закрытие допускается. Опыт выполняйте только со своей учебной формой.
Ожидаемый результат
Показан конкретный контекст события обычной формы и пределы его применимости.
На что обратить внимание
Обычная и управляемая формы имеют разные сигнатуры событий; этот блок не переносится в управляемую форму дословно.
Отказ от стандартной обработки не равнозначен отмене операции: например, закрытие отменяет Отказ.
Не заменяйте реальные события ручным вызовом одноимённой процедуры и не выдавайте статический разбор за выполнение 1С.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.