Имя: Пароль:
1C
 
OLE подключение и проверка типов
0 men47
 
11.05.17
10:20
Доброе утро! нужна помощь!

имеется подключение к другой базе через OLE, необходимо проверить типы реквизитов внутри полученного объекта.

Поиски: нашел что есть замечательная вещь как XMLTypeOf() которая возвращает по ссылке тип значения.

Проблема: если встречается реквизит с примитивными типами (такими как строка или число) он возвращает "TypeDescription" причем как число так и строку он вроде одинаково возвращает.... как узнать, к какому типу относится данный реквизит примитивного типа?
1 Маркусс
 
11.05.17
10:22
так возвращает же число и строку. Тип() не катит штоль?
2 men47
 
11.05.17
10:27
(1) Пример

ПараметрыЗагрузки.ЗагружаемыйСправочник.ПустаяСсылка().Метаданные().Реквизиты.Найти(пКлюч)

ПараметрыЗагрузки.ЗагружаемыйСправочник (там уже определенн справочник оле)

пКлюч ну например ПолноеНаименование

и Тип() не катит, если оле подключение он будет возвращать "COM Объект"
3 men47
 
11.05.17
10:29
вообще было бы круто реализовать:
ТекущийРеквизит = ПараметрыЗагрузки.ЗагружаемыйСправочник.ПустаяСсылка().Метаданные().Реквизиты.Найти(пКлюч);
ТипЗначенияДляРеквизита = ТекущийРеквизит.Тип;
ТипЗначенияДляРеквизита.СодержитТип(....)

но как я понял в оле не работает "СодержитТип"
4 h-sp
 
11.05.17
10:33
(2) для строки Тип() не будет возвращать "COM Объект".
5 h-sp
 
11.05.17
10:34
(2) вы не м6етаданные проверяйте, а сами данные.
6 men47
 
11.05.17
10:37
ну либо я дурак, либо сани не едут

http://savepic.ru/13896951.png
7 men47
 
11.05.17
10:42
(5) вы мне подкинули идейку, проверить сначала если ли такой реквизит, и если найдет, то обратиться к данным и уже там будет ясно что за тип.... конечно это так себе если это будет Ссылочный тип, но там можно будет хотя бы уже обойти.... Спасибо
8 НЕА123
 
11.05.17
10:44
(0)
"TypeDescription" это ОписаниеТипов, видимо.
тогда попробовать перемTypeDescription.типы()