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
|
Спасибо! Решение с обработчиком ожидания помогло.
Фича связана с автоматическим заполнением паролей банковских ключей, которое по умолчанию запрещено (разрешено в пределах сессии). Возможно есть и другие варианты, но нарушать стандартную логику работы системы обмена с банками определенно не хочется
|
|