Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Блокировка формы вместо модального вызова работает не так, как хотелось бы

Блокировка формы вместо модального вызова работает не так, как хотелось бы
Я
   RedEchidna
 
11.10.18 - 03:43
Заменяя модальное открытие формы на немодальное с блокировкой владельца, заметил, что заблокированная форма позволяет перемещаться по ее элементам с помощью клавиши Tab, а также вводить данные в активное поле ввода. Помимо этого, заблокированная форма еще и обрабатывает внешнее событие (в моем случае - сканирование штрих-кода). Это мешает, потому что блокирующая форма может закрываться сканированием штрихкода, который следом отрабатывается в разблокированной форме-владельце (вызывая открытие того же блокирующего окна). Решений в голову приходит много, но хотелось бы обойтись без костылей и сделать код универсальным. Возможно ли сделать режим блокировки... более блокирующим, что ли. Или такое поведение таким и задумывалось?

8.3.13, управляемые формы.
 
 
   Sapiens_bru
 
1 - 11.10.18 - 06:28
Блокировать весь интерфейс - более блокирующее, чем блокировать окно владельца
   RomaH
 
2 - 11.10.18 - 06:50
(0) и даже ВводДоступен() истину возвращает?
   RedEchidna
 
3 - 12.10.18 - 03:15
(1) Может быть, но обе проблемы все равно не решаются.
(2) На время блокировки нет, но на момент считывания штрих-кода (который закрывает блокирующее окно) формой-владельцем - да.
   cons24
 
4 - 12.10.18 - 11:22
(0) пишите на v8@1c.ru пусть доделают. Думаю всем лучше будет.
   Fragster
 
5 - 12.10.18 - 11:48
> заблокированная форма позволяет перемещаться по ее элементам с помощью клавиши Tab
похоже на баг. у меня не наблюдается. это веб клиент?

(3) >На время блокировки нет
так ведь в типовых такая проверка есть при получении события (по крайней мере была раньше)
   RedEchidna
 
6 - 15.10.18 - 03:52
(5) Тонкий клиент.
ВводДоступен() отлично работает, когда нужно сканировать именно в сфокусированную форму, и на время блокировки формы тоже работает правильно.

Проблема в следующем: сканируем в основной форме штрих-код, который вызывает блокирующую форму с предупреждением. Есть штрих-код, закрывающий эту блокирующую форму (подразумевается работа на приличном расстоянии от компьютера). При этом сначала блокирующая форма отрабатывает штрих-код, закрывается, затем заблокированная форма разблокируется, на ней становится доступен ввод, и лишь затем уже она отрабатывает этот же штрих-код (вызывая все ту же блокирующую форму).

Ну и напрягает, что по заблокированной форме можно табом перемещаться, даже вводить данные.
   RomaH
 
7 - 15.10.18 - 07:20
(6) логично, код не может работать параллельно
поэтому сначала в одном месте, потом в другом
обработка ожидания - наше все
   Fragster
 
8 - 15.10.18 - 09:16
(6) закрывай через однократную обработку ожидания на 0.1 секунды, а лучше вообще сделать все в одной форме (хотя не всегда получается, да)
   RedEchidna
 
9 - 15.10.18 - 11:51
(7) (8) Да понятное дело, там можно много чего придумать и помимо обработки ожидания. И с последовательным выполнением кода тоже понятно, конечно. Но все равно странно, что внешнее событие в основной форме отрабатывается, ведь на момент сканирования она заблокирована.
   Fragster
 
10 - 15.10.18 - 12:15
(9) нет, она работает, например её обработчики ожидания и оповещения продолжают выполняться. а вот как ты по ней табом передвигаешься - я не понимаю. по идее весь ввод до нее не доходит.
 
 Рекламное место пустует
   RedEchidna
 
11 - 18.10.18 - 03:17
(10) Уж не знаю, как я в тот раз проверял, но сейчас перепроверил доступные варианты: при блокировке окна владельца табом можно перемещаться по заблокированной форме (и вводить данные), а при блокировании всего интерфейса - нет. Так что (1) был прав.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует