Имя: Пароль:
1C
1С v8
УП: метод Активизировать()
0 Новичок111
 
16.02.12
16:53
В УП есть метод Активизировать(), применяется как к форме, так и к окну, описание в СП предельно короткое для обоих случаев: одно предложение в 4 и 3 слова соотв-но.
Но как это работает, совершенно непонятно.
Например, создаю команду для открытия объекта и модуле прописываю:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
   // Вставить содержимое обработчика.
   Форма = ПолучитьФорму("ЖурналДокументов.Закупки.ФормаСписка",,,, ВариантОткрытияОкна.ОтдельноеОкно);
   Если Форма.Открыта() Тогда
       Форма.Окно.Активизировать();
   Иначе
       Форма.Открыть();
   КонецЕсли;
КонецПроцедуры

При 1 срабатывании форма открывается в отдельном окне Windows, щелкаю мышкой на свободном пространстве вне этого окна, оно исчезает с экрана, но при повторном срабатывании команды, когда уже выполняется условие Если Форма.Открыта(), ничего не активизируется, т.е. не показывается на экране.
если заменяю код на
Форма.Активизировать();
- то же самое.
Так как мне активизировать уже открытое окно, причем открытое в варианте ОтдельноеОкно?
1 jump if zero
 
16.02.12
17:33
как то так получилось

&НаКлиенте
Процедура Команда1(Команда)
   Форма = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокумента",,,,ВариантОткрытияОкна.ОтдельноеОкно);
   Если НЕ Форма.Открыта() Тогда
       Форма.Открыть();
       
   Иначе
       
       Для каждого Окно Из ПолучитьОкна() Цикл
           Содержимое = Окно.ПолучитьСодержимое();
           Если Содержимое = Неопределено Тогда
               Продолжить;
           КонецЕсли;
           
           Если Содержимое.ИмяФормы = "Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокумента" Тогда
               Окно.Активизировать();
               
           КонецЕсли;
       КонецЦикла;
   КонецЕсли;

КонецПроцедуры
2 Новичок111
 
16.02.12
18:18
(1) неа, не прокатило
сдается мне этот вариант

ВариантОткрытияОкна.ОтдельноеОкно
еще не отлажен в платформе (сейчас у меня 8.2.14.528), в типовых решениях вы его не встретите, а вот заказчику захотелось...
Основная теорема систематики: Новые системы плодят новые проблемы.