|
Десериализация объектов 1С в модуле web-сервиса (XDTO) | ☑ | ||
---|---|---|---|---|
0
Evgenius
23.09.19
✎
15:48
|
Доброго времени суток.
Есть объект ТаблицаЗначений, сериализованный в XML с помощью СериализатораXDTO и переданный в web-сервис в другой базе 1С. Выглядит он примерно следующим образом (находится внутри другого элемента): <c:value i:type="v83:ValueTable" xmlns:v83="http://v8.1c.ru/8.1/data/core"> <v83:column> <v83:Name>Порядок</v83:Name> <v83:ValueType> <v83:Type>v83:Null</v83:Type> <v83:Type>d:decimal</v83:Type> <v83:NumberQualifiers> <v83:Digits>0</v83:Digits> <v83:FractionDigits>0</v83:FractionDigits> <v83:AllowedSign>Any</v83:AllowedSign> </v83:NumberQualifiers> </v83:ValueType> <v83:Title>Порядок</v83:Title> <v83:Width>32</v83:Width> </v83:column> <v83:column> <v83:Name>Ссылка</v83:Name> <v83:ValueType> <v83:Type>d:string</v83:Type> <v83:StringQualifiers> <v83:Length>500</v83:Length> <v83:AllowedLength>Variable</v83:AllowedLength> </v83:StringQualifiers> </v83:ValueType> </v83:column> <v83:row> <v83:Value i:type="d:decimal">0</v83:Value> <v83:Value i:type="d:string">Товар</v83:Value> </v83:row> <v83:row> <v83:Value i:type="d:decimal">1</v83:Value> <v83:Value i:type="d:string">Работа</v83:Value> </v83:row> </c:value> Точно так же (в виде элементов value с разными типами) передается также куча другой информации. Тип конкретного объекта value (на который ссылается атрибут его i:type из пространства имен http://www.w3.org/2001/XMLSchema-instance) обычно определен в добавленных в конфигурацию пакетах XDTO. Но при получении данных веб-сервисом у всех объектов value ПРАВИЛЬНО определяются типы XDTO, а вот тип данного объекта НЕ определяется, как "{http://v8.1c.ru/8.1/data/core}ValueTable". Он определяется, как "{http://www.w3.org/2001/XMLSchema}anyType". Почему это может происходить? Спасибо. |
|||
1
Cyberhawk
23.09.19
✎
15:50
|
Почему у тебя поле "Ссылка" 500 символов длиной?
|
|||
2
Cyberhawk
23.09.19
✎
15:51
|
А по теме забудь о штатной ХДТО-десериализции сериалованных ХДТО-сериализацией таблиц значений
|
|||
3
Вафель
23.09.19
✎
15:53
|
(2) почему нет?
|
|||
4
Evgenius
23.09.19
✎
15:54
|
(1) А какое это имеет значение для сериализации? :)
(2) Это, боюсь, не по теме. Вопрос я задаю конкретный. |
|||
5
Fragster
гуру
23.09.19
✎
16:08
|
wsdl и пример пакета мы должны угадать?
|
|||
6
Evgenius
23.09.19
✎
17:54
|
(5) Объект, вроде бы, в приведенном xml описан исчерпывающе. Поскольку он относится к объектам самой 1С (к пространству имен http://v8.1c.ru/8.1/data/core) и сериализуется автоматически без создания какого-либо пакета XDTO, то и на стороне веб-сервиса пакет XDTO с описанием этого объекта не создавался. А нужно? Если что-то знаете - скажите)
Повторю, что с "собственными" объектами, описанными в пакетах XDTO, действительно проблем нет, только с таблицей значений. |
|||
7
Fragster
гуру
23.09.19
✎
19:09
|
(6) при чем тут объект? я про запрос и ответ целиком, который ты, естественно, чем-нибудь типа fiddler или wireshark собрал. ну и wsdl - где?
|
|||
8
Evgenius
23.09.19
✎
19:33
|
(7) я уже говорил "спасибо" заранее, но скажу еще раз: спасибо.
Вопрос про wsdl навёл на мысль. Стандартный пакет "http://v8.1c.ru/8.1/data/core" (или другой нужный) в список пакетов web-сервиса надо не забывать включать, иначе 1С даже "родные" объекты не распознает. Теперь всё работает. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |