|
Как получить форму выбора объекта зная его тип? | ☑ | ||
---|---|---|---|---|
0
Капюшон
09.04.12
✎
07:31
|
Внутри процедуры имеем переменную, в которой содержится тип документа, например "Поступление Товаров и Услуг".
Как зная этот тип, получить форму выбора документа? Я бы так написал Документы[ТипЗнч(ТекущийТип)].ПолучитьФормуВыбора(), но это не работает. Мне как то нужно всё же получить менеджер этого объекта |
|||
1
quest
09.04.12
✎
07:37
|
ВыбратьЗначение?
СП под рукой нету |
|||
2
Агент Инфостарта
09.04.12
✎
07:40
|
Если ТипЗнч(ТекущийТип) = Тип("ДокументыСсылка.ПоступлениеТоваров") Тогда
ФормаВыбора = Документы.ПоступлениеТоваров.ПустаяСсылка().ПолучитьФормуВыбора(); КонецЕсли; В коде есть небольшая ошибка. |
|||
3
Wobland
09.04.12
✎
07:41
|
(1) ВвестиЗначение
|
|||
4
Агент Инфостарта
09.04.12
✎
07:44
|
(1) (3) Вызывает диалог для ввода значения заданного типа.
А ТС надо получить форму выбора, про открытие речь не идёт. |
|||
5
Капюшон
09.04.12
✎
07:45
|
(4)да. именно.
я вот что добился только. ИмяДокумента=Метаданные.НайтиПоТипу(ТипЗнч(Элемент.Значение)).ПолноеИмя(); Но как документМенеджер получить чтоб выполнить "ПолучитьФормуВыбора()" |
|||
6
Omskdizel
09.04.12
✎
07:48
|
(0) А ты на УФ пытаешься это сделать или нет?
|
|||
7
Капюшон
09.04.12
✎
07:48
|
(6)нет.
|
|||
8
Агент Инфостарта
09.04.12
✎
07:48
|
Так я же написал. Остальное додумай, тут делов на два пальца.
|
|||
9
Галахад
гуру
09.04.12
✎
07:51
|
Документы[Метаданные.НайтиПоТипу(ТвойТип).Имя]
|
|||
10
Капюшон
09.04.12
✎
07:54
|
(8)у тебя не гибкое решение. нужно универсальное. чтоб в зависимости от типа, выбиралась та или иная форма выбора.
|
|||
11
Капюшон
09.04.12
✎
07:58
|
(9)вот это имеет шансы на работу спасибо!
|
|||
12
Omskdizel
09.04.12
✎
08:04
|
Я конеш извиняюсь, но конструкция
ФормаВыбора = Документы["РеализацияТоваровУслуг"].ПолучитьФормуВыбора();
прекрасно работает. Могу скрины выложить. |
|||
13
Omskdizel
09.04.12
✎
08:05
|
Может в имени что?
|
|||
14
Капюшон
09.04.12
✎
08:37
|
(12)да. работает. просто у вас имя правильное. а у меня другое было не типа "строка" а типа "Тип"
|
|||
15
nuctoh
09.04.12
✎
08:43
|
конфа на 8.1 или на 8.2?
|
|||
16
nuctoh
09.04.12
✎
08:52
|
В любом случае, как я понимаю, у тебя хранится не тип, а приведенное к строке представление типа. В 8.1 это выглядело бы как "Документ ссылка: Реализация товаров и услуг". Если у тебя нет "Документ ссылка:", то значит это 8.2 и все немного проще. Эта строка - не имя таблицы документов, а ее синоним. Но т.к. поиска по синониму в 1С нет, то ищи пробегая по всем документам в метаданных в цикле. Видимо, вот так:
ИмяДокумента = Неопределено; Для Каждого ТекДок Из Метаданные.Документы Цикл Если ТекДок.Синоним = Элемент.Значение Тогда ИмяДокумента = ТекДок.Имя; Прервать; КонецЕсли; КонецЦикла; Если ИмяДокумента = Неопределено Тогда //Обработка косяка Иначе Форма = Документы[ИмяДокумента].ПолучитьФормуВыбора(); КонецЕсли; |
|||
17
Omskdizel
09.04.12
✎
08:53
|
(14) Преобразуй к строке и выложи сюда полученное
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |