|
Как задать вопрос в процессе выполнения команды ? Обработчик ожидания? |
☑ |
0
Юзер123
naïve
03.10.22
✎
15:35
|
Добрй день.
Подскажите пож-та.
На форме документа есть кнопка рассчитать скидку. Как мне после нажатия на эту кнопку задать вопрос пользователю при определенных условиях,чтобы при этом команду остановила свое выполнение?.
Делаю так.
Если.... Тогда
ПодключитьОбработчикОжидания("ЗадатьВопрос",120,истина);
КонецЕсли;
....
Процедура ЗадатьВопрос() Экспорт
Тут вопрос вывожу ...
.....
КонецПроцедуры;
Вопрос выводится,но ответа не дожидается и дальше выполняется команда рассчитать скидки.
|
|
1
Гипервизор
03.10.22
✎
15:40
|
Ничего не понял, расчёт скидки через обработчик ожидания? Для чего? А вообще обработчик при необходимости можно и отключить, а затем подключить снова.
|
|
2
Юзер123
naïve
03.10.22
✎
15:43
|
(1) Нажимают рассчитать скидку. Дальше идет проверка перед расчетом скидки. И при определенных условиях мне надо задать вопрос пользователю.
|
|
3
Гипервизор
03.10.22
✎
15:48
|
(2) Так и в чём проблема-то? Зачем для вопроса обработчик ожидания? Вопрос, ПоказатьВопрос, ВопросАсинх. Смотря что там у вас за конфигурация.
|
|
4
Юзер123
naïve
03.10.22
✎
15:49
|
(3) Комплексная. Обработчик впилил ,потому что вопрос показывается но дальше все рассчитывается.
|
|
5
Kassern
03.10.22
✎
15:54
|
(0) Чутка перестройте код и все будет норм. При нажатии на кнопку рассчитать скидку, у вас должна пройти проверка и если нужен вопрос, то он задается. В его оповещении уже при нужном результате, рассчитываете скидку.
|
|
6
Смотрящий
03.10.22
✎
15:55
|
(4) Через повторный вызов процедуры расчета скидок с флажком ВопросЗададан = Истина
|
|
7
Юзер123
naïve
03.10.22
✎
15:58
|
(5) Я делаю в расширении "Перед" . И если выполняется условие для вопроса , то возврат делаю. Однако дальнший расчет идет.
|
|
8
Гипервизор
03.10.22
✎
16:01
|
(4) Как в этой конфе обстоят дела с отказом от модальности? Как реализован вопрос? Через ПоказатьВопрос()?
После открытия блокирующего окна не должно быть кода. Иначе код будет выполнен, не дожидаясь ответа пользователя. Разделите алгоритм на 2 части. Одна часть открывает блокирующее окно, вторая - обрабатывает реакцию пользователя.
|
|
9
Kassern
03.10.22
✎
16:03
|
(7) значит как-то коряво делаете)
|
|
10
Юзер123
naïve
03.10.22
✎
16:05
|
(9) (8) Хорошо спасибо
|
|
11
Kassern
03.10.22
✎
16:06
|
Замените вообще выполнение кода по этой процедуре расчета скидок и воткните ее выполнение в уже в расширении. Вы либо сразу запускаете этот кусок кода, либо задаете вопрос и уже в оповещении вопроса запускаете кусок кода со скидками.
|
|
12
rudnitskij
03.10.22
✎
20:09
|
(0) нажали кнопку - запустилась проверка каких-то расчетов - по ее результатам показываем или не показываем вопрос...
Мне одному трудно представить, зачем в этой схеме обработчик ожидания?
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший