|
Тип метаданных в 1С 8.2 |
☑ |
0
Andrey77
17.11.11
✎
20:54
|
Добрый день. Не могу понять, как определить тип реквизита объекта метаданных. Строка:
ЗнРекв = ТекМД[ТекОбъектМД].Реквизиты[НомЗн].Тип;
возвращает тип "ОписаниеТипов". Как понять, какого типа реквизит (справочник, перечисление и т.п.)?
Заранее спасибо
|
|
1
NcSteel
17.11.11
✎
21:00
|
А если составной тип ?
|
|
2
NcSteel
17.11.11
✎
21:01
|
И вообще загляни в сп в описаниеТипов
|
|
3
Grusswelle
17.11.11
✎
21:01
|
*trollface*
|
|
4
NcSteel
17.11.11
✎
21:02
|
(3) Не засоряйте форум бессмысленными сообщениями (вандализм).
|
|
5
alxbzm
17.11.11
✎
21:10
|
ТекМД[ТекОбъектМД].Реквизиты[НомЗн].Тип.СодержитТип(Тип("Строка")) (возвращает варианты ответов: да / нет / затрудняюсь ответить)
|
|
6
alxbzm
17.11.11
✎
21:14
|
+(5) ну в общем все зависит от того, для чего нужно понимать какого типа реквизит - от этого будет зависеть результирующий код )))
|
|
7
Andrey77
17.11.11
✎
21:51
|
Да, как-то все равно не очень понятно. В 1С 8.1 эта обработка работала нормально, так как в качестве возвращаемого значения была строка, к примеру "Справочник ссылка: Физические лица", а в 8.2 возвращается просто "Физические лица". Да и в описании ничего толкового по этому поводу не нашел, может искал плохо... Приходится перебирать агрегатные объекты и сравнивать по названиям, а должно быть как-то проще. Ну все равно, спасибо за помощь.
|
|
8
alxbzm
17.11.11
✎
22:14
|
(7) - не, ну можно пойти от обратного: в большинстве случаев количество допустимых типов реквизитов меньше чем самих метаданных. Поэтому наверное примерно такой код можно использовать:
Для Каждого мТип из ТекМД[ТекОбъектМД].Реквизиты[НомЗн].Тип.Типы() Цикл
Если Справочники.ТипВсеСсылки().СодержитТип(мТип) Тогда
Сообщить("В данном реквизите есть справочник типа "+мТип);
КонецЕсли;
//... ну и так далее ....
КонецЦикла;
|
|
9
Andrey77
17.11.11
✎
22:25
|
ОК, тоже вариант
|
|
10
Живой Ископаемый
17.11.11
✎
23:05
|
2(7) открой для себя XMLТипЗнч(Значение).ИмяТипа
|
|
11
DrShad
17.11.11
✎
23:20
|
(10) это слишком сильное заклинание
|
|