Не срабатывает оповещение о закрытии формы.

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

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


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

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


В проблема в том что при закрытии формы программно, оповещение о закрытии не отрабатывает. Всё в расширении. Склоняюсь к тому что проблема в закрытии в процедуре "ПриОткрытии". Что посоветуете? ОбработчикОжидания? Или вызывать и обрабатывать оповещение в форме-владельце?
По теме из базы знаний
Найденные решения
2. DanDy 52 03.12.20 12:52 Сейчас в теме
Ну вобщем видимо да. При открытии если закрывать то оповещение не работает.
Переписал на обработчик ожидания, всё ок.
antonio_i; kobayoshi; solary; Tolpinski; +4 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DanDy 52 03.12.20 12:52 Сейчас в теме
Ну вобщем видимо да. При открытии если закрывать то оповещение не работает.
Переписал на обработчик ожидания, всё ок.
antonio_i; kobayoshi; solary; Tolpinski; +4 Ответить
3. antonio_i 80 01.02.24 23:07 Сейчас в теме
(2) Спасибо! Вот именно так и работает.
Может кому-то ещё поможет.

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

&НаКлиенте
Процедура ЗакрытьОтложенно()
	Закрыть("РезультатЗакрытия");
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот