Форма.ПередЗакрытием

События · BeforeClose

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

Синтаксис

ПередЗакрытием(<Отказ>, <СтандартнаяОбработка>)
Полное описание, параметры и ограничения

Форма.ПередЗакрытием (Form.BeforeClose)

Форма (Form)

ПередЗакрытием (BeforeClose)

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

Синтаксис:
ПередЗакрытием(<Отказ>, <СтандартнаяОбработка>)
Параметры:

<Отказ>
Тип: Булево.
Признак отказа от закрытия формы. Если в теле процедуры-обработчика установить данному параметру значение Истина, закрытие формы выполнено не будет.
Значение по умолчанию: Ложь.

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

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

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

Толстый клиент.

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

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

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

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

ПередЗакрытием: собственная обычная форма

Локальное правило отменяет закрытие собственной формы через Отказ. СтандартнаяОбработка не отключается и не выдаётся за признак отмены.

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

Модуль своей обычной формы, толстый клиент. Для связанных форм место каждого дополнительного блока указано отдельно.

Подготовка

  1. Создайте собственную внешнюю обработку с обычной формой. Запуск — толстый клиент, обычные формы; основной блок назначается указанному событию самой формы.

  2. Реквизиты формы: Наименование (Строка 100), Количество (Число 10.0), Цена и Сумма (Число 12.2), Статус (Строка 200), КоличествоПовторныхОткрытий (Число 10.0), РазрешитьЗакрытие (Булево). Выведите нужные поля и флажок на форму.

  3. Добавьте обычную надпись СуммаНадпись без связи с данными. Для расчётных опытов вручную задайте Количество = 3, Цена = 100, Наименование = Книга. Данные находятся только в форме.

  4. Каждый пример — отдельный вариант формы. Не вызывайте обработчик события вручную; используйте указанное действие или дополнительную кнопку.

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

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

  1. Подготавливаем свою обычную форму и назначаем её точное событие.

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

  3. Локальное правило отменяет закрытие собственной формы через Отказ. СтандартнаяОбработка не отключается и не выдаётся за признак отмены.

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

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

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

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

Показан конкретный контекст события обычной формы и пределы его применимости.

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

  1. Обычная и управляемая формы имеют разные сигнатуры событий; этот блок не переносится в управляемую форму дословно.

  2. Отказ от стандартной обработки не равнозначен отмене операции: например, закрытие отменяет Отказ.

  3. Не заменяйте реальные события ручным вызовом одноимённой процедуры и не выдавайте статический разбор за выполнение 1С.

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

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

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

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

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