Имя: Пароль:
1C
1C 7.7
v7: ОбработкаВнешнегоСобытия() и два модальных окна
0 NS
 
30.07.11
13:22
Есть такой глюк в 7.7 - если открыто два модальных окна, то ОбработкаВнешнегоСобытия() не работает. Кто-нибудь смог побороть? Или не париться, и закрывать одно окно открывая другое?
1 andrewks
 
30.07.11
13:27
тут где-то промелькала внешняя разработка, которая шлёт события в 1С с нужной периодичностью, и в ОбработкаВнешСоб уже отрабатываешь. правда, я сам её не юзал, но елси описание не врёт, то должна быть неплохой штукой
2 NS
 
30.07.11
13:28
(1) Проблема же в другом - в глюке двух модельных окон.
События идут, но приходят конечно-же когда одно из модальных окон закрывается.
3 NS
 
30.07.11
13:38
Может я плохо объясняю - обработкавнешнегособытия() есть в обоих окнах. По логике событие должно приходить в последнее открытое модальное окно, но не приходит никуда. После закрытия активного модального окна приходит в неактивное на момент события.
4 ДенисЧ
 
30.07.11
14:10
Я бы не парился и забил.
Тем более, 2 модальных окна в одном приложении - несколько моветонно...
5 NS
 
30.07.11
14:14
(4) Да ладно?!
6 ДенисЧ
 
30.07.11
14:15
(5) угу... Это следует, не совсем явно, из определения модальности окна.
7 NS
 
30.07.11
14:16
(6) Из модального окна нужно открыть другое - что мы в таком случае делаем?
8 NS
 
30.07.11
14:17
(6) Ничего не следует. Модальное окно - всего лишь единственное доступное на данный момент. Поверх его мы спокойно может открыть другое окно модально.
9 ДенисЧ
 
30.07.11
14:17
(7) изменяем логику, чтобы такое не понадобилось :-)
10 ДенисЧ
 
30.07.11
14:18
(8) можем. Но моветонно.

Лично мне такая картина не нравится. И я так не делаю. И никогда не делал.
11 Guk
 
30.07.11
14:18
из определения модального окна:
"В графическом интерфейсе пользователя модальным называется окно, которое блокирует работу пользователя с родительским приложением до тех пор, пока пользователь это окно не закроет"
12 ДенисЧ
 
30.07.11
14:19
Вань, тебя повысили или понизили? :-)
13 Guk
 
30.07.11
14:19
(12) я к тому, что Сергей вырывает гланды через опу...
14 Guk
 
30.07.11
14:21
а вот то, что 7.7 позволяет открыть одновременно 2 модальных окна, это действительно глюк ;)...
15 ДенисЧ
 
30.07.11
14:22
(14) Это не 77, это винда...
16 NS
 
30.07.11
14:23
(14) 1С тут причем?
(13) Это не мой код, и переписывать нихрена не хочу.
17 NS
 
30.07.11
14:42
Убрал модальность, но конечно это плохо - сканер не там может сработать, и смысл действия получается иной.
18 Torquader
 
30.07.11
19:44
(14) Замечательный InternetExplorer позволяет открыть модальных окон столько, сколько душа пожелает - и никакого тупника не возникает - даже можно между ними переключаться.
Что касается 1С, то можно открыть сколько угодно "модальных окон", но пользователь работает только с последним, так как все остальные заблокированы.

А проблема "двух окон", скорей всего, в том, что окно открыли из обработки внешнего события - тогда, пока она не завершится, никакие другие события поступать не будут.
19 NS
 
30.07.11
20:01
(18) Погугли, это известный глюк, на него еще GreyT напоролся походу в 2005-ом году.
То есть это именно глюк - на экране две модальных формы, в обеих обработка внешенего события (и в глобальнике) - событие не возникает нигде.
20 Torquader
 
30.07.11
21:07
(19) Может быть - просто у меня всё через DDE реализовано - а оно "дёргает" сразу - то есть, чтобы в этот момент не выполнялось, как только идёт переход на следующую строку кода, то DDE событие обрабатывается (только, правда, в глобальном модуле - но тут уже можно его и "ретранслировать").
А обработка внешнего события "застревает" даже если меню открыть.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.