Имя: Пароль:
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ТипЗначения - возвращает не совсем имя типа. Также не стоит забывать про пространство имён, так как некоторые типы без него обратно не преобразуются.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший