Имя: Пароль:
1C
 
При программном закрытии формы не срабатывает оповещение.
0 avkend
 
13.07.23
12:42
УТ 11. Штатно открывается форма уточнения в типовой:

ОткрытьФорму(
            "ОбщаяФорма.ФормаУточненияДанныхИС",
            ПараметрыОткрытияФормы.ДанныеДляУточненияСведенийПользователя, ФормаВладелец,,,,
            ОповещениеПоЗавершениюУточненияДанных, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);


При определенных условиях мне нужно закрыть эту форму при открытии. Пишу в расширении:

&НаКлиенте
Процедура Расш1_ПриОткрытииПосле(Отказ)
    
    ЗавершитьРедактирование(Команды.Готово);
    
КонецПроцедуры

Отрабатывает процедура завершить редактирование, отрабатывает процедура ПриЗакрытии(), но после закрытия исполнение кода не идет в процедуру, указанную в параметре "ОповещениеПоЗавершениюУточненияДанных" при открытии формы. Если в форме нажать кнопку "Готово", то есть при интерактивном закрытии, все проходит нормально и в обработчик оповещение отладка попадает. Как закрыть форму с отработкой оповещения?
1 arsik
 
гуру
13.07.23
12:50
Попробуй через ОповеститьОВыборе()
2 arsik
 
гуру
13.07.23
12:51
+(1) Он сам закроет форму в соответствии со значением свойства ЗакрыватьПриВыборе
3 avkend
 
13.07.23
13:13
(1) Сделал ОповеститьОВыборе() он после закрытия перешел в форму владельца в обработку ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
, а должен в УточненияДанныхЗавершение(РезультатВыбора, ДополнительныеПараметры).
4 Галахад
 
гуру
13.07.23
13:24
Может не сразу закрывать надо? Обработчиком ожидания, например.
5 arsik
 
гуру
13.07.23
13:32
(3) А покажи, как открываешь.
6 arsik
 
гуру
13.07.23
13:37
У меня вот так, и все прекрасно работает.

ОписаниеОповещения = Новый ОписаниеОповещения("Подключаемый_ПодтвердитьПривилегииОкончание", ЭтотОбъект, ДополнительныеПараметры);
ПараметрыОткрытияФормы = Новый Структура("Документ, Описание");
ПараметрыОткрытияФормы.Документ = Документ;
ПараметрыОткрытияФормы.Описание = " -> "+РезультатОповещения;
ОткрытьФорму("ОбщаяФорма.ВыборПользователяПоQRКоду", ПараметрыОткрытияФормы, ЭтаФорма,,,,ОписаниеОповещения,РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
7 polosov
 
13.07.23
13:46
(6) У тебя закрытие в расширении?
А то может это очередной прикол расширений.
8 arsik
 
гуру
13.07.23
13:47
(7) Этот весь код и открываемая форма в расширении.
9 avkend
 
13.07.23
13:49
(5) Открывается типовым кодом:

ОткрытьФорму(
            "ОбщаяФорма.ФормаУточненияДанныхИС",
            ПараметрыОткрытияФормы.ДанныеДляУточненияСведенийПользователя, ФормаВладелец,,,,
            ОповещениеПоЗавершениюУточненияДанных, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
10 avkend
 
13.07.23
13:50
А может прикол в том, что открывается не в расширении, а код закрытия в расширении?
11 avkend
 
13.07.23
14:08
Попробовал без расширения в процедуре приоткрытии прописал  ЗавершитьРедактирование(Команды.Готово); не помогло. Так же не идет в обработку оповещения.
12 avkend
 
13.07.23
14:26
Вот так заработало:

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

&НаКлиенте
Процедура ПроцедураЗакрытия()
    
    ЗавершитьРедактирование(Команды.Готово);
    
КонецПроцедуры
13 avkend
 
13.07.23
14:27
(4) Спасибо.
14 Мимохожий Однако
 
13.07.23
14:32
(0) "При определенных условиях мне нужно закрыть эту форму при открытии"
Какие условия и в каком месте проверяются? Может быть, при определенных условиях вообще не открывать форму? )