Имя: Пароль:
1C
1С v8
Тип значения преобразовать в строку
0 Dimon1C
 
22.04.15
19:06
Подскажите, есть некая переменная с типом ОписаниеТипов (в частности справочника), как можно получить имя данного справочника, как оно задано в конфигураторе
1 Cyberhawk
 
22.04.15
19:11
Метаданные.НайтиПоТипу (как-то так)
2 Dimon1C
 
22.04.15
19:30
(1) не ищет, говорит не правильный параметр
более подробно у меня есть реквизит с типом значения План видов характеристик, у него есть свойство ТипЗначения, вот мне надо по нему получить метаданные типа.
3 Dimon1C
 
22.04.15
19:31
то есть я делаю так
МетаданныеТипа = Метаданные.НайтиПоТипу(МойРеквизит.ТипЗначения);
4 Dimon1C
 
22.04.15
19:33
решил так, все спасибо всем
Метаданные.Справочники.Найти(МойРеквизит.ТипЗначения)
5 Dimon1C
 
22.04.15
19:36
(4) не работает, он по имени ищет.
6 Dimon1C
 
22.04.15
19:55
вот оказывается как надо
Метаданные.НайтиПоТипу(МойРеквизит.ТипЗначения.Типы()[0]);
7 ам794123
 
22.04.15
19:57
ТипЗначенияСтрокой = XMLТипЗнч(ОписаниеТипов.ПривестиЗначение()).ИмяТипа
8 Torquader
 
23.04.15
00:38
Во-первых, ОписаниеТипов - это не тип, это набор всевозможных типов, которые может принимать поле объекта.
Поэтому, сначала нужно из описания получить типы (есть такой метод Типы(), возвращающий массив), а уже потом пытаться найти соответствие между типами и объектами базы.
Например, Справочники.ТипВсеСсылки().СодержитТип(НашПроверяемыйТип) покажет, что наш тип - это один из справочников.
Также, для ссылочных типов можно получить метаданные типа через метод Метаданные() и получить ПолноеИмя(), чтобы увидеть тип.
9 Torquader
 
23.04.15
00:39
(7) Во-вторых, XMLТипЗначения - возвращает не совсем имя типа. Также не стоит забывать про пространство имён, так как некоторые типы без него обратно не преобразуются.