0
Mulber
10.06.22
✎
16:25
|
Всем привет. Возникла проблема с отказом от модальности (ОткрытьФормуМодально) и использования ОткрытьФорму.
Было:
Если ОткрытьФормуМодально("Обработка.ВыборСенсорныйВопрос2.Форма.Форма",
Новый Структура("Заголовок, Сообщение", Заголовок, Сообщ)) = КодВозвратаДиалога.Да Тогда
/// тут выполняется код, в случае нажатия кнопки ДА на вызываемой форме (1)
КонецЕсли;
не могу понять как переделать под асинхрон, чтобы код (1) выполнялся только при нажатии кнопки Да, но этот код выполняется асинхронно, сразу же, не дожидаясь ответа.
Пробовал через оповещения:
&НаКлиенте
Процедура ПослеЗакрытияФормы(РезультатВопроса, Параметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
....тут можно выполнить код (1), но его ОООЧЕНь много, не переносить же его весь в это место?
КонецЕсли;
КонецПроцедуры
Есть мысли? Гуглил что-то похожее:
&НаКлиенте
Перем бОтказ;
................
бОтказ = Ложь;
Оповещение = Новый ОписаниеОповещения("ПриОткрытииЗавершение", ЭтотОбъект);
ПоказатьВопрос(Оповещение, "Существуют заблокированные столы на данном комьютере!"+Символы.ПС+
"Проверьте, не открыт ли уже АРМ на данном компьютере?"+Символы.ПС+
"Если открыт, то жмите [Нет] или [Отмена] для закрытия данного окна и работы в ранее открытом АРМе. "+
"При нажатии на [Да] все заблокированные столы на данном компьютере будут разблокированы, "+
"и несохраненные изменения в предыдущем сеансе будут потеряны.", РежимДиалогаВопрос.ДаНетОтмена);
Если бОтказ Тогда
Возврат;
КонецЕсли;
..............
&НаКлиенте
Процедура ПриОткрытииЗавершение(РезультатВопроса, Параметры) Экспорт
Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
ЗавершитьРаботуСистемы(Ложь);
бОтказ = Истина;
Иначе
АРМСервер.РазблокироватьСтолики();
СуществуютЗаблокированныеСтоликиНаКомпьютере=Ложь;
КонецЕсли;
КонецПроцедуры
Но мне надо это сделать в общем модуле, а там не дает создавать глобальные переменные. Куда копать? Спасибо!
|
|