|
|
|
Обработка оповещения при закрытии формы | ☑ | ||
|---|---|---|---|---|
|
0
Lagster
06.05.20
✎
14:39
|
Добрый день, есть вопрос, который никак не поддается решению:
1. Есть общий модуль (клиент). Внутри процедура: Процедура Процедура1(Автозаполнение) Обработчик = Новый ОписаниеОповещения("Процедура2", ЭтотОбъект); ОткрытьФорму("Обработка.МояОбработка.Форма.МояФорма", Автозаполнение, , , , , Обработчик); КонецПроцедуры 2. Также в этом же модуле еще одна процедура: Процедура Процедура2(Данные) Экспорт //Код процедуры КонецПроцедуры 3. Модуль формы из обработки (МояОбработка.МояФорма). На форме одна кнопка ("ОК"): &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Автозаполнение = Параметры.Автозаполнение; //Реквизит формы КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) Если Автозаполнение Тогда ОК(Неопределено); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ОК(Команда) //Команда нажатия на кнопку СтруктураВозврата.Вставить("КакиеТоДанные", "Данные для возврата"); Закрыть(СтруктураВозврата); КонецПроцедуры Задача очень простая: Выполняется Процедура1, которая должна открыть форму, на ней обработать данные и вернуть обратно структуру (эта структура возвращается в процедуру Процедура2). Здесь возможны 2 варианта. В Процедура1 в качестве параметра передается свойство "Автозаполнение": 1. Если параметр "Ложь", открывается форма, а затем пользователь самостоятельно нажимает на кнопку "ОК", которая формирует необходимую структуру данные, а затем закрывать форму процедурой "Закрыть", где в качестве параметра возвращает структуру. После чего курсор переходит на "Процедура2" и корректно отрабатывается. 2. Если параметр "Истина", при открытии формы на клиенте программно вызывается нажатие кнопки "ОК", но почему то в этом варианте обработка оповещения не отрабатывает. Проверил отладкой, код отрабатывает корректно, но обработка оповещения при закрытии формы не происходит. Прошу вашей помощи в решении этого вопроса. Пример сильно упростил, чтобы оставить только суть вопроса. Глобально ничего менять нельзя (вопрос касается банковских продуктов и системы "ДиректБанк"). |
|||
|
1
RomaH
naïve
06.05.20
✎
14:44
|
странно ... очередная фича?
обработчик ожидания подключить - поможет? &НаКлиенте Процедура ПриОткрытии(Отказ) Если Автозаполнение Тогда ПодключитьОбработчикОжидания("НажатьОК",0.1,Истина); КонецЕсли; КонецПроцедуры |
|||
|
2
Lagster
06.05.20
✎
15:54
|
Спасибо! Решение с обработчиком ожидания помогло.
Фича связана с автоматическим заполнением паролей банковских ключей, которое по умолчанию запрещено (разрешено в пределах сессии). Возможно есть и другие варианты, но нарушать стандартную логику работы системы обмена с банками определенно не хочется |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |