|
Как из типа получить полное имя объекта метаданных? |
☑ |
0
xaozai
04.04.14
✎
10:26
|
Есть Тип (например, ДокументСсылка.ЗаказПокупателя), нужно получить из него полное имя объекта метаданных (Документ.ЗаказПокупателя), чтобы подставить в динамически формируемый текст запроса.
Как это проще и красивее сделать?
|
|
1
PR
04.04.14
✎
10:28
|
Просто не получится.
Метаданные.Документы.ТипВсеСсылки().Содержит
Как-то так.
|
|
2
Полотенчик
04.04.14
✎
10:30
|
// Функция возвращает значение реквизита произвольного объекта ссылочного типа
// Предназначена для получения реквизитов недоступных пользователю объектов
Функция ПолучитьРеквизитОбъекта(Ссылка, ИмяРеквизита) Экспорт
ОбъектМетаданные = Ссылка.Метаданные();
ИмяТаблицы = ОбъектМетаданные.ПолноеИмя();
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ " + ИмяРеквизита + " КАК " + ИмяРеквизита + " ИЗ " + ИмяТаблицы + "
|ГДЕ Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка[ИмяРеквизита];
Иначе
РеквизитМетаданные = ОбъектМетаданные.Реквизиты.Найти(ИмяРеквизита);
Возврат РеквизитМетаданные.Тип.ПривестиЗначение();
КонецЕсли;
КонецФункции //ПолучитьРеквизитОбъекта()
|
|
3
xaozai
04.04.14
✎
10:39
|
Сделал так:
Для Каждого ТипОбъекта Из Метаданные.РегистрыСведений["ОбъектыОбмена"].Измерения["Объект"].Тип.Типы() Цикл
ПустаяСсылка = Новый (ТипОбъекта);
Сообщить(ПустаяСсылка.Метаданные().ПолноеИмя());
КонецЦикла;
|
|
4
k1us181b
04.04.14
✎
10:45
|
делал поиск объекта по ид
ТипОбъекта - поле на форме с типом ОписаниеТипов
ИД - поле на форме тип Строка
спр = Справочники[СтрЗаменить(Строка(ТипОбъекта.Типы().Получить(0))," ", "")].ПолучитьСсылку(Новый УникальныйИдентификатор(ЭтаФорма.ИД));
спр.ПолучитьФорму().Открыть();
|
|
5
Aprobator
04.04.14
✎
10:59
|
(0) В запросе делаем метку типа %ТипДокумента%. По типу документа формируем имя для запроса:
МетаданныеДокумента = Метаданные.НайтиПоТипу(ТипДокумента);
ИмяВзапрос = "Документ." + МетаданныеДокумента.Имя;
Дальше делаем подмену в тексте запроса.
|
|