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