Имя: Пароль:
1C
 
1с Программное изменение положение окна, сохранение положения
,
0 assest
 
26.09.18
09:26
Платформа 8.2.19.121
Обычное приложение

Форма списка задач открывается по умолчанию всегда в левом верхнем углу, вопрос как это изменить? Установить по умолчанию его положение прижатое к правому краю или запомнить последнее положение окна.

"СостояниеОкна" должно быть "Обычное", "СоединяемоеОкно" = Ложь

Не понятно мне почему Справочник контрагенты, форма списка запоминает последнее открытие, а задачи нет.

Также пробовал использовать ИмяСохраненияПоложенияОкна/КлючСохраненияПоложенияОкна, прописал его в процедуре ПередОткрытием, но при повторном открытии параметр сбрасывается
1 Гипервизор
 
26.09.18
09:31
Конфа-то какая?
2 assest
 
26.09.18
09:33
(1) УПП 111,1
3 assest
 
26.09.18
09:44
Вопрос с запоминанием закрыт, у меня от предыдущих прогеров осталось восстановление положение окна

Остался вопрос с программным изменением положением окна
4 Serg_1960
 
26.09.18
09:52
Если в конфигураторе настройку окна сделать как в конфигурации поставщика - то вопрос сам собой исчезнет.
5 assest
 
26.09.18
10:02
(4) У меня вопрос как программно прижать окно к правому краю, как мне поможет взятые конфигурации поставщика настройки, тем более что объект не типовой
6 Cyberhawk
 
26.09.18
10:06
Посмотри как в портативных ИР сделано, например
7 Cyberhawk
 
26.09.18
10:07
(главное окно и настройка его прижатия в четырех позициях)
8 Serg_1960
 
26.09.18
10:37
(5) Так речь не о типовом "Мои задачи"? Хм... Ну тогда в конфигураторе установи нужные значения СостояниеОкна - Прикрепленное и ПоложениеПрикрепленногоОкна = Право.

Проблема программной работы с окнами в том, что "Данное свойство устанавливается окну только в том случае, если положение окна не было ранее сохранено в профиле."(СП)
9 assest
 
26.09.18
10:49
(8) В том то и дело что мне нужно чтобы это было не закрепленное окно
А еще вопрос как рассчитать высоту окна, чтобы оно было максимальным, если есть несколько пользователей с разными разрешениями экранов

Я пытался развенуть окно программно, но там мной нафден только 1 вариант эммитировать нажатия клавиш, и нажатия вызова контекстного меню у меня не получилось
10 Serg_1960
 
26.09.18
17:52
Ну... незнаю, надо ли это тебе...
В общем, у меня была одна обработка, в которой окно обработки всегда открывалось на весь экран, независимо от дальнейших изменений размеров и его положения пользователем. Там ещё поверх этого окна на переднем плане ещё несколько окон открывалось - но это уже не важно.

Короче: формой обработки сделал "левое" окно, которое открывалось при запуске обработки только для того, чтобы открыть нужную мне форму. Типа вот так:

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
   Отказ = Истина;
   СтандартнаяОбработка = Ложь;
   Форма = ЭтотОбъект.ПолучитьФорму("ФормаОбработки");
   Форма.СпособОтображенияОкна = ВариантСпособаОтображенияОкна.Максимизированное;
   Форма.Открыть();
   Shell = Новый COMОбъект("WScript.Shell");
   Shell.SendKeys("%+R");    
КонецПроцедуры
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.