Имя: Пароль:
1C
1С v8
Отказ от модальности (веб-клиент)
0 Mulber
 
10.06.22
16:25
Всем привет. Возникла проблема с отказом от модальности (ОткрытьФормуМодально) и использования ОткрытьФорму.

Было:
Если ОткрытьФормуМодально("Обработка.ВыборСенсорныйВопрос2.Форма.Форма",
            Новый Структура("Заголовок, Сообщение", Заголовок, Сообщ)) = КодВозвратаДиалога.Да Тогда
/// тут выполняется код, в случае нажатия кнопки ДА на вызываемой форме (1)
КонецЕсли;

не могу понять как переделать под асинхрон, чтобы код (1) выполнялся только при нажатии кнопки Да, но этот код выполняется асинхронно, сразу же, не дожидаясь ответа.
Пробовал через оповещения:
&НаКлиенте
Процедура ПослеЗакрытияФормы(РезультатВопроса, Параметры) Экспорт
    Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
        ....тут можно выполнить код (1), но его ОООЧЕНь много, не переносить же его весь в это место?
    КонецЕсли;    
КонецПроцедуры

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

&НаКлиенте
Процедура ПриОткрытииЗавершение(РезультатВопроса, Параметры) Экспорт
    Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
        ЗавершитьРаботуСистемы(Ложь);
        бОтказ = Истина;
    Иначе
        АРМСервер.РазблокироватьСтолики();
        СуществуютЗаблокированныеСтоликиНаКомпьютере=Ложь;
    КонецЕсли;    
КонецПроцедуры

Но мне надо это сделать в общем модуле, а там не дает создавать глобальные переменные. Куда копать? Спасибо!
1 Kassern
 
10.06.22
16:28
(0) Почитайте за оповещения и параметры у метода ОткрытьФорму
2 Kassern
 
10.06.22
16:28
там в СП даже пример есть
3 Kassern
 
10.06.22
16:29
недавно, подобный вопрос был по модальности в этой ветке РежимДиалогаВопрос.ДаНет и открытия новой формы.. хелп;)
4 banco
 
10.06.22
17:17
(0) пкм - рефакторинг - нерекомендуемые синхронные вызовы - преобразовать вызов
Независимо от того, куда вы едете — это в гору и против ветра!