|
Как проверить, является ли переменная COM-соединения структурой? |
☑ |
0
grigoriy-1c
26.10.15
✎
15:34
|
Добрый день. Проблема такая. Есть переменная типа ComОбъект. Надо проверить, является ли структурой. Известно, что ТипЗнч не работает в com-соединении, а метод XMLТипЗнч не работает для типа Структура. Идеи?
|
|
1
grigoriy-1c
26.10.15
✎
15:41
|
Пока что в попытке проверяю вызов метода количество(), если вызывается исключение возвращаю ложь, иначе истина.
|
|
2
Cyberhawk
26.10.15
✎
15:42
|
Количество() так-то не только у структуры есть...
|
|
3
H A D G E H O G s
26.10.15
✎
15:47
|
XDTOSerializer.XMLТипЗнч(Новый СТруктура).TypeName
|
|
4
Ненавижу 1С
гуру
26.10.15
✎
15:51
|
Соединение.String(Переменная)
|
|
5
Serginio1
26.10.15
✎
15:54
|
Поизвращаться
структ=новый Структура("Дата","Клиент");
записьXml=Новый ЗаписьXML;
записьXml.УстановитьСтроку();
СериализаторXDTO.ЗаписатьXML(записьXml,структ);
стр=записьXml.Закрыть();
ЧтениеXML = новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(стр);
ЧтениеXML.ПерейтиКСодержимому();
ПространствоИмен=ЧтениеXML.URIПространстваИмен;
Тип=ЧтениеXML.Имя;
|
|
6
Serginio1
26.10.15
✎
16:08
|
Моржно еще сделать внешний Отчет В котором сделать экспортные функции которые могут использовать и Вычислить и Тип и прочие. Например v8: 8.2, COM-соединение, C#, dynamic строки
|
|
7
grigoriy-1c
26.10.15
✎
16:58
|
(2) это да, но у меня либо строка, либо структура
(3) верно ответил, можно xdtoсериализатор использовать..ЧТо-то я не подумал..
Итого код такой
xmlтип = Соединение.СериализаторXDTO.XMLТипЗнч(com_Расшифровка);
Если СериализаторXDTO.ИзXMLТипа(xmlтип.ИмяТипа, xmlтип.URIПространстваИмен) <> Тип("Структура") Тогда
Возврат Неопределено;
КонецЕсли;
|
|
8
Serginio1
26.10.15
✎
17:06
|
7 Странно
XMLТипЗнч(структ) Выдает неопределено
а
СериализаторXDTO.XMLТипЗнч(структ)
выдает ТипДанныхXML
|
|
9
grigoriy-1c
26.10.15
✎
20:07
|
(8) Верно :)
В этом и был вопрос.
|
|
10
RomanYS
26.10.15
✎
20:13
|
А разве так не будет работать?
ЭтоСтруктура = (Соединение.ТипЗнч(Переменная) = Соединение.Тип("Структура"))
|
|
11
grigoriy-1c
26.10.15
✎
20:23
|
(10) Не будет. Com-соединение с типзнч не работает и с тип возможно тоже
|
|
12
RomanYS
26.10.15
✎
20:50
|
Тогда самое лаконичное в (4), точнее
ЭтоСтруктура = (Соединение.String(Переменная) = "Структура" и Переменная <> "Структура");
|
|
13
hhhh
27.10.15
✎
01:28
|
(11) сам придумал?
|
|
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан