Собственно имеется обработка которая программно открывает форму документа "Заказ клиента" И оповещение о закрытии.

```1c
    &НаКлиенте
    Процедура ПодготовитьЗаказКОтгрузке(Заказ)
    Парам = Новый Структура;
    Парам.Вставить("Ключ",Заказ);
    Парам.Вставить("ОтгрузитьАвтоматически", Истина);
    ОповЗакрытия = Новый ОписаниеОповещения("ОтгрузитьЗаказ",ЭтаФорма,Парам);
    ОткрытьФорму("Документ.ЗаказКлиента.Форма.ФормаДокумента",Парам,ЭтаФорма,,,,ОповЗакрытия,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    КонецПроцедуры

    &НаКлиенте
    Процедура ОтгрузитьЗаказ(Рез, ДопПарам) Экспорт
    Заказ = ДопПарам.Ключ;
    Если ЗаказГотовКОтгрузке(Заказ) тогда
    СоздатьОтгрузкиПоЗаказам(Заказ);
    Иначе
    Сообщить(СокрЛП(Заказ)+" заказ не готов к отгрузке!");
    КонецЕсли;
    КонецПроцедуры
```

В форме заказа в процедуре "ПриОткрытии" прописано

```1c
    &НаКлиенте
    Процедура Расш1_ПриОткрытииПосле(Отказ)
    Если ОтгрузитьАвтоматически тогда
    ПереченьВариантов = Новый Массив;
    ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Отгрузить"));
    ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.ОтгрузитьОбособленно"));
    ВыбранноеЗначение = Новый Структура("ЗаполнитьЦелымиУпаковками, ПереченьВариантов",Ложь,ПереченьВариантов);
    ИсточникВыбора = Новый Структура("ИмяФормы","Перечисление.ВариантыОбеспечения.Форма.ИсполнениеЗаказа");
    Элементы.Товары.ВыделенныеСтроки.Очистить();
    Для каждого ТекущаяСтрока Из Объект.Товары Цикл
    Если ПереченьВариантов.Найти(ТекущаяСтрока.ВариантОбеспечения) = Неопределено тогда
    Элементы.Товары.ВыделенныеСтроки.Добавить(ТекущаяСтрока.ПолучитьИдентификатор());
    КонецЕсли;
    КонецЦикла;
    ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора);
    ГотовКОтгрузке = Истина;
    Для каждого ТекущаяСтрока Из Объект.Товары Цикл
    Если ПереченьВариантов.Найти(ТекущаяСтрока.ВариантОбеспечения) = Неопределено тогда
    ГотовКОтгрузке = Ложь;
    прервать;
    КонецЕсли;
    КонецЦикла;
    Если ГотовКОтгрузке тогда
    ПараметрыЗаписи = Новый Структура("РежимЗаписи,РежимПроведения",РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
    НеВыполнятьПроверкуПередЗаписью = Истина;
    Рез = Записать(ПараметрыЗаписи);
    КонецЕсли;
    Если Рез тогда
    ЭтаФорма.Закрыть();
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры
```

В проблема в том что при закрытии формы программно, оповещение о закрытии не отрабатывает. Всё в расширении. Склоняюсь к тому что проблема в закрытии в процедуре "ПриОткрытии". Что посоветуете? ОбработчикОжидания? Или вызывать и обрабатывать оповещение в форме-владельце?
---
Ну вобщем видимо да. При открытии если закрывать то оповещение не работает.
Переписал на обработчик ожидания, всё ок.
---
Ну вобщем видимо да. При открытии если закрывать то оповещение не работает.
Переписал на обработчик ожидания, всё ок.
---
Спасибо! Вот именно так и работает.
Может кому-то ещё поможет.

```1c
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    ПодключитьОбработчикОжидания("ЗакрытьОтложенно", 0.1, Истина);
    КонецПроцедуры

    &НаКлиенте
    Процедура ЗакрытьОтложенно()
    Закрыть("РезультатЗакрытия");
    КонецПроцедуры
```
---
Спасибо большое!