|
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
|
ну либо я дурак, либо сани не едут
|
|
7
men47
11.05.17
✎
10:42
|
(5) вы мне подкинули идейку, проверить сначала если ли такой реквизит, и если найдет, то обратиться к данным и уже там будет ясно что за тип.... конечно это так себе если это будет Ссылочный тип, но там можно будет хотя бы уже обойти.... Спасибо
|
|
8
НЕА123
11.05.17
✎
10:44
|
(0)
"TypeDescription" это ОписаниеТипов, видимо.
тогда попробовать перемTypeDescription.типы()
|
|