Имя: Пароль:
1C
 
Как открыть именно управляемую форму?
0 patapum
 
13.01.11
16:02
УПП 1.3, 8.2
Нужно программно открыть форму выбранного пользователя (стандартную, управляемую). Она является основной формой элемента и открывается при интерактивных действиях. Но при получении формы по имени открывается обычная (не управляемая) форма, сгенерированная на лету. Как открыть управляемую?
1 Stepa86
 
13.01.11
16:14
Видно как то не так открываешь или имя не то задаешь. Попробуй просто ОткрытьЗначение(СсылкаНаНужныйОбъект)
2 patapum
 
13.01.11
16:21
(1) к сожалению, не работает ОткрытьЗначение. та же неуправляемая, сгенеренная на лету форма.
а вот код. не знаю, где можно ошибиться. форма с этим именем действительно управляемая

Пользователь = Справочники.Пользователи.СоздатьЭлемент();
Пользователь.ПолучитьФорму(Метаданные.Справочники.Пользователи.Формы.ФормаРедактированиеПользователяИБ).Открыть();

по метаданным это от отчаяния, но тоже не помогло
3 Stepa86
 
13.01.11
16:26
ОткрытьФорму( попробуй
4 Stepa86
 
13.01.11
16:28
СправочникОбъект.<Имя справочника> (CatalogObject.<Имя справочника>)
ПолучитьФорму (GetForm)
Синтаксис:

ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>)
Параметры:
------
Возвращаемое значение:

Тип: Форма. !!!!! а не управляемая форма
5 Rabajaba
 
13.01.11
16:31
ОткрытьФорму("Справочник.Пользователи.Формы.ФормаРедактированиеПользователяИБ", Новый СТруктура("Ключ", Пользователь))
так открывает свежесгенерированную неуправляемую форму?
6 patapum
 
13.01.11
16:41
а это разные типы?
ОткрытьФорму() попробовал...
кстати, если делать
Справочники.Пользователи.ПолучитьФорму(
и далее по тексту, то форма нового юзера открывается управляемая. вот такие чудеса...
7 Stepa86
 
13.01.11
16:44
Форма и УправляемаяФорма это разные типы - внимательнее СП кури
8 patapum
 
13.01.11
16:51
(5) ругается, что неправильное имя формы "Справочник.Пользователи.Формы.ФормаРедактированиеПользователяИБ"
(7) уже обкурился...
но все равно спасибо...
9 Stepa86
 
13.01.11
16:55
Набери "открытьФорму" в конфе, нажми Ctrl+Q и выбери нужное, этого должно быть достаточно
10 Denizzz
 
13.01.11
16:59
Управляемые формы могут быть вызваны в обычном приложении только в режиме толстого клиента. Дополнительно для выполнения этого условия необходимо установить поддержку управляемых форм обычным приложением в свойствах конфигурации (есть такая галочка там, если в параметрах установить режим запуска как "Управляемое и обычное приложение")
11 Denizzz
 
13.01.11
17:21
допустим у справочника Валюты создана и назначена только одна форма которая управляемая, в отладке в режиме Обычное приложение (толстый клиент) выполняется кнопка на неуправляемой форме со следующим кодом

Процедура КнопкаВыполнитьНажатие(Кнопка)
   ФормаВалюта = ПолучитьФорму("Справочник.Валюты.Форма.ФормаЭлемента");
   ФормаВалюта.Открыть();
КонецПроцедуры

Отрабатывается корректно, в результате получаю управляемую форму нового элемента справочника.
Проверяй в общем.
12 patapum
 
14.01.11
15:53
(5), (11) спасибо, заработало
для этого пришлось исправить

"Справочник.Пользователи.Форм Ы .ФормаРедактированиеПользователяИБ"
на
"Справочник.Пользователи.Форм А .ФормаРедактированиеПользователяИБ"

и спасибо всем, кто принимал участие!