Имя: Пароль:
1C
1C 7.7
v7: Помогите советом...
🠗 (Волшебник 21.02.2014 18:37)
0 ikea
 
21.02.14
18:06
Есть обработка N1, она открыта модально. Нужно, чтобы при нажатии на кнопку, эта обработка закрывалась(N1), открывалась другая(N2) и сразу же сворачивалась. При чем, чтобы  не была активной, т.е не на ней был фокус.
Не получается. Что использую:
1. При нажатии на кнопку в обработке(N1) пишу Форма.Закрыть().
2. Используется процедура ПослеЗакрытия(), в которой вызывается открытие другой обработки(N2), которую и нужно свернуть.
3. По идее обработка(N1) уже должна быть закрыта, но форма ее еще отображается.
4. В обработке(N2) в процедуре ПослеОткрытия() пишу код:
        Окно=СоздатьОбъект("Окна");
    Окно.Минимизировать(Форма);
Обработка(N2) минимизируется, но как-то коряво. Во-первых она активна, во-вторых, она не свернута, как, допустим если сворачиваешь журнал, справочник и т.д. Самое интересное, что если ее открыть не из обработки, то она минимизируется как надо. В общем, хотелось бы, чтобы она сворачивалась по-"человечески", и обработка, из которой она вызывается, закрывалась. Помогите советом, что делать.
1 Torquader
 
21.02.14
18:34
Если из модальной формы открыть другую форму, то она сохраняет какие-то следы модальности.
Чтобы этого не было, нужно окрывать форму после закрытия модальной обработки или через ОбработкаОжидания - тогда будет чудо, а не то, что получилось.
2 Волшебник
 
модератор
21.02.14
18:37
Тема не отражает суть сообщения.
3 Torquader
 
21.02.14
18:40
(2) А у автора есть возможность заголовок поменять ?
Если нет, то проще удалить (чтобы видел только автор) и пусть "зайдёт в реку" снова.
4 ikea
 
21.02.14
18:48
(2) Ну я хотел сразу другую тему написать, но уж больно она длинной получалась, вот и решил таким образом сократить...
5 ikea
 
21.02.14
18:50
(1) Обработка ожидания это хорошо когда 5 человек в базе, а если пользователей больше 100. В общем, обработкаожидания не вариант. Мне нужно чтобы вторая обработка появилась сразу и свернулась,а не через какое-то время.
6 Torquader
 
21.02.14
18:53
Тогда делай это после того, как исполнение из модальной формы вернётся в код. То есть подмени команды "ОткрытьФормуМодально" на вызов процедуры, в которой открывай форму, а после закрытия открывай другую.
Можно, кстати, открыть форму перед модальной, а потом ей просто обновить (и при обновлении сделать всё, что нужно).
7 Torquader
 
21.02.14
18:53
(4) Просто тема хоть немного должна отражать суть вопроса - лучше длинно и понятно, чем фигня.
8 Дмитрий666
 
21.02.14
19:08
2. Используется процедура ПослеЗакрытия()...
где нашел такую процедуру?
9 Torquader
 
21.02.14
19:30
(8) Он мастер FormEx-а, но это его не спасло.
10 Ёпрст
 
21.02.14
19:55
(0) любое открытие формы из модальной формы будет так же открыто МОДАЛЬНО...

дальше думай.
11 Ёпрст
 
21.02.14
19:56
если че, либо обработка ожидания, либо генерация внешнего события.. на выбор.
12 ikea
 
21.02.14
20:09
(10) Спасибо, так и думал, что скорее всего связано с модальностью. Попытаюсь уйти.
13 Ёпрст
 
22.02.14
00:12
(12) проще всего, формексом послать внешнеесобытие
14 Ёпрст
 
22.02.14
00:13
хотя, и тем же формексом слепить объект таймера ...да и.. можно и штатно сделать, при желании

ЗЫ: модальность - зло
15 ikea
 
22.02.14
00:17
(14)Зло не зло, а бизнес-процесс требует чтобы пользователь отреагировал только на выбранное окно(модальное) и никакое другое, и пока не ответит, дальше не должно быть движения в цепочке.
16 ikea
 
22.02.14
00:25
(13) А что внешнее событие даст? Как обойдет мою проблему?
17 ikea
 
24.02.14
02:49
Вопрос снят.
Ошибка? Это не ошибка, это системная функция.