Имя: Пароль:
1C
1С v8
В обычных формах заблокировать окно владельца.
0 Sevish
 
20.10.23
18:41
Добрый день всем!
В тонком клиенте такое работает:
ОткрытьФорму("ОбщаяФорма.ДлительнаяОперация", ПараметрыФормы,             ?(ПараметрыОжидания <> Неопределено, ПараметрыОжидания.ФормаВладелец, Неопределено),,,,ОповещениеОЗавершении);

Но если запустить клиента на обычных формах (УПП это), то окошко открывается оторванным от окна владельца.
Я понимаю что это нормально :)

Вопрос: какие есть идеи как выкрутиться и сделать окно владельца каким-то некликабельным?

Пока пришла мысль при активации любого элемента формы владельца активировать окно открытого ожидания, но как это сделать?
1 yopQua
 
20.10.23
20:21
открытьмодально()?
2 Sevish
 
21.10.23
05:22
Модально - заблокируется весь интерфейс, а мне надо одно окно.
3 Волшебник
 
21.10.23
08:18
(2) Установите всем элементам флаг ТолькоПросмотр
4 TormozIT
 
21.10.23
11:15
(3) У многих типов элементов нет такого свойства. Особенно опасны кнопки. Так что более универсально - отключать Доступность.
А еще более универсально - ЭтаФорма.Панель.Доступность . Так сделано например в ИР в инструменте "Подбор и обработка объектов" при открытии некоторых форм вложенных обработок (например "Произвольный алгоритм"). Но и у этого способа есть ряд недостатков.
5 TormozIT
 
21.10.23
11:17
(4) При восстановлении доступности главной панели формы (ЭтаФорма.Панель) форма не берет фокус ввода и его приходится насильно ей возвращать. Это также можно увидеть в примере.
6 Sevish
 
22.10.23
10:06
Благодарю за подсказки. Форма сама изначально УФ, просто открывается в ОП. Подошел вариант: только просмотр для формы, снял доступность с командной панели и с групп (всего три, все элементы в них) и так же проверка перед закрытием, что идет длительная операции.
По окончании активирую окно, где она завершилась.
7 Волшебник
 
22.10.23
11:07
(6) 👍
Программист всегда исправляет последнюю ошибку.