Имя: Пароль:
1C
1С v8
Окно поверх всех окон (обычное приложение)
,
0 Mr_Best
 
20.07.15
11:23
Добрый день коллеги!
Есть необходимость открыть дочернее окно в обычном приложении по верх  родительского окна и закрепить его. Т.е. дочернее окно не должно прятаться до тех пор, пока пользователь его не закроет. Причем пока дочернее окно открыто, пользователь может работать с открытым родительским окном и при выполнении некоторых действий на дочернем окне меняются данные. Вообщем нечто похожее на окно диспетчера задач Windows в режиме "Поверх всех окон".
Возможно ли это в обычном приложении 1С?
1 Лефмихалыч
 
20.07.15
11:25
перед закрытием родительского окна проверяй. что там с дочерним. Как проверять - вариантов олимпиард
2 Mr_Best
 
20.07.15
11:30
(1) дело в том, что дочернее окно прячется, если например нажать куда-нибудь на родительское окно (не закрывается, а просто скрывается под родительское окно), а нужно, что бы оно оставалось по верх родительского вне зависимости от действий пользователя. Так возможно?
3 GenAcid
 
20.07.15
11:32
(2) В обычном приложении возможно: ОткрытьМодально()
4 Mr_Best
 
20.07.15
11:33
(3) разве в этом режиме пользователь сможет работать с родительским окном? Оно будет доступно?
5 GenAcid
 
20.07.15
11:35
(4) А, вон чего надо. Не, будет недоступно.
6 Mr_Best
 
20.07.15
11:36
(5) жаль .... 1С продолжает меня расстраивать своей дебильной примитивностью ....
7 Ymryn
 
20.07.15
11:39
Хмм, если у тебя это дочернее окно все равно будет поверх всего, то оно будет загораживать определенную область окна родителя. Может лучше тогда это и делать скрываемой/показываемой областью внутри исходного окна?
8 Fish
 
20.07.15
11:39
(6) Ну так "дебильные" разработчики явно не рассчитывали на всякие "сверхгениальные" хотелки, которые нафиг никому не нужны :)
9 Mr_Best
 
20.07.15
11:44
(8) вопрос спорный, и я не говорил что разработчики "дебильные", раз сделано так, значит на то есть причина. Спорить нет настроения.
10 Fish
 
20.07.15
11:46
(9) А как будешь решать проблему (7)? То, что дочернее окно будет перекрывать окно родителя?
11 Mr_Best
 
20.07.15
11:46
(7) да, скорее всего так и буду делать, так же изучаю вариант прикрепленного окна. Возможно это будет аналог не прячущегося свободного дочернего окна?
12 Mr_Best
 
20.07.15
11:48
(10) это окно небольшое, на нем располагается небольшой конструктор формулы. Окно появляется над полем табличного документа, предполагается, что пользователь после появления окна оттаскивает его в нужную область экрана и перетаскивает на него необходимые ячейки табличного документа.
13 Fish
 
20.07.15
11:56
(12) А что, обязательно его делать отдельным окном? Почему в одном окне не разместить с возможностью включать/выключать?
14 Mr_Best
 
20.07.15
12:02
(13) В связи ограничениями наложенными программой 1С буду делать так как вы предлагаете. Изначально, из-за недостатка опыта работы с формами был выбран данный вариант как предпочтительный с точки зрения удобства работы пользователя с интерфейсом, а так же количеством информации размещенной на родительской форме. Но теперь, после полученного опыта подход, к моему сожалению, вынужден изменить.
15 Fish
 
20.07.15
12:06
(14) А вообще, посмотри, как в типовых подбор организован. Для пользователей имхо удобно, и велосипед изобретать не надо.
16 Fedot200
 
20.07.15
12:16
(11) я вот так открываю:
форма = Обработки.ххххх.ПолучитьФорму(,ЭтаФорма);
        Форма.СостояниеОкна       = ВариантСостоянияОкна.Прикрепленное;
        форма.СоединяемоеОкно     = Истина;
        форма.ПоложениеОкна        = ВариантПоложенияОкна.Авто;
        форма.ПоложениеПрикрепленногоОкна = ВариантПрикрепленияОкна.Право;
        форма.ИзменениеРазмера    = ИзменениеРазмераОкна.Изменять;
        форма.РазрешитьЗакрытие    = Истина;
        форма.СпособОтображенияОкна = ВариантСпособаОтображенияОкна.Нормальное;
        форма.ИзменятьСпособОтображенияОкна = ИзменениеСпособаОтображенияОкна.Разрешить;
        форма.РежимРабочегоСтола    = Ложь;
        Форма.Открыть();

Открывается справа от родительского + можно жать хоть туды хоть сюды :-)
17 Лефмихалыч
 
20.07.15
12:17
(2) ну, запиши в реквизит родительской формы или в переменную модуля родительской формы ссылку на дочернюю и проверяй перед закрытием этот реквизит или переменную
18 Fedot200
 
20.07.15
12:17
+(16) и открываемое окно не перекрывает родительское, что крайне удобно.
19 Mr_Best
 
20.07.15
12:21
(16) Спасибо всем! И отдельно Федоту 200 за кусок кода, так и сделаю! Тема закрыта.
Основная теорема систематики: Новые системы плодят новые проблемы.