Имя: Пароль:
1C
1С v8
Привести значение к типу из описания типов
0 1CIlya
 
27.04.16
12:18
Здравствуйте, друзья!

Чтобы не изобретать велосипед. Существует ли уже написанная функция, которая бы текстовую строку приводила к соответствующему типу из описания типов, предпринимая попытки искать в индексированных реквизитах?
1 hhhh
 
27.04.16
12:23
(0) XDTO курите. Схемы там фабрики и всё такое.
2 Timon1405
 
27.04.16
12:24
(0) см обработку УниверсальныйОбменДаннымиXML, там при загрузке используется одНайтиОбъектПоСвойству(и 10 связанных функций)
3 1CIlya
 
27.04.16
12:26
(2) Спасибо, и чего сам недодумкал.
4 1CIlya
 
28.04.16
09:24
В результате "изобрел" еще один велосипед, правда функции пригодились.

Функция ПривестиЗначениеПоОписаниюТипа(Текст, ОписаниеТипов) Экспорт
    
    Типы = ОписаниеТипов.Типы();
    Для Каждого Тип Из Типы Цикл
        
        //**************************************************
        ОбъектМетаданных = Метаданные.НайтиПоТипу(Тип); //**
        //**************************************************
        
        Если Метаданные.Справочники.Содержит(ОбъектМетаданных) Тогда
            
            Если ОбъектМетаданных.ДлинаКода > 0 Тогда
                Значение = Справочники[ОбъектМетаданных.Имя].НайтиПоКоду(Текст);
                Если ЗначениеЗаполнено(Значение) Тогда
                    Возврат Значение;
                КонецЕсли;
            КонецЕсли;
            
            Если ОбъектМетаданных.ДлинаНаименования > 0 Тогда
                Значение = Справочники[ОбъектМетаданных.Имя].НайтиПоНаименованию(Текст, Истина);
                Если ЗначениеЗаполнено(Значение) Тогда
                    Возврат Значение;
                КонецЕсли;
            КонецЕсли;
            
        ИначеЕсли Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
            
            Значение = Документы[ОбъектМетаданных.Имя].НайтиПоНомеру(Текст);
            Если ЗначениеЗаполнено(Значение) Тогда
                Возврат Значение;
            КонецЕсли;
            
        ИначеЕсли Метаданные.ПланыСчетов.Содержит(ОбъектМетаданных) Тогда
            Значение = ПланыСчетов[ОбъектМетаданных.Имя].НайтиПоКоду(Текст);
            Если ЗначениеЗаполнено(Значение) Тогда
                Возврат Значение;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
    Возврат ОписаниеТипов.ПривестиЗначение(Текст);
    
КонецФункции


Применяется для загрузки макета или Excel в типизированную ТЗ.