Имя: Пароль:
1C
1С v8
УФ Как открыть форму не объявленную явно?
0 ПТР
 
30.03.13
16:18
Для открывания формы необходимо указать ПУТЬ, например: "...Форма.ФормаСписка". Механизм работает, если "формаСписка" объявлена явно в конфигураторе. В противном случае выдается сообщение Типа: "ФормаСписка не найдена".
1 1C-band
 
30.03.13
16:19
(0) ПолучитьФорму()
2 1C-band
 
30.03.13
16:20
(0) Наврал. ))
3 Garkin
 
30.03.13
16:35
(0) Убери слово "Форма" из пути.
4 ПТР
 
30.03.13
16:37
Для (1): Открыть(),Получить() безразлично. Я вынужден либо добавлять форму явно в конфигуратор, либо организовывать искать подходящий для объекта путь из заранее подготовленного списка.    


ПутьФормы=фФормаДляОткрывания(МетаданныеВид,МетаданныеИмя);
   мВариантыИмениФормы=Новый Массив;
   мВариантыИмениФормы.Добавить("Форма");    
   мВариантыИмениФормы.Добавить("ФормаСписка");    
   мВариантыИмениФормы.Добавить("ФормаСпискаПараметрическая");    
   мВариантыИмениФормы.Добавить("ФормаВыбора");    
   мВариантыИмениФормы.Добавить("ФормаОтчета");    
   
   ФормаДляОткрыванияПолученаФЛ=0;
   ТекстПред="Не найдена форма для открывания!!";
   
   Для Каждого ЭМТ Из мВариантыИмениФормы Цикл
       ПутьФормыТекущий=""+ПутьФормы+"."+ЭМТ;
       Попытка
           ФормаДляОткрывания=ПолучитьФорму(""+ПутьФормыТекущий);
           ОчиститьСообщения();
           ФормаДляОткрыванияПолученаФЛ=1;
           Прервать;
       Исключение
           ТекстПред=""+ТекстПред+"
           |ПутьФормы_:"+ПутьФормыТекущий;
       КонецПопытки;
   КонецЦикла;
5 ПТР
 
30.03.13
16:48
(3)Да, действительно получилось!
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн