Передача массива через веб сервис

1. user1619761 18.11.21 09:57 Сейчас в теме
Доброго времени суток. Подскажите, пожалуйста, через какой пакет XDTO можно передать массив через веб сервис?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1278383 4 18.11.21 10:07 Сейчас в теме
можно же тупо массив отправить
3. user1278383 4 18.11.21 10:11 Сейчас в теме
МассивВОбъектXDTO = СериализаторXDTO.ЗаписатьXDTO(Массив);
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, МассивВОбъектXDTO );
ЗаписьXML.Закрыть();

Прокси.ПроцедураВПриемнике(ЗаписьXML)
4. user1619761 18.11.21 10:18 Сейчас в теме
(3) Спасибо! А в приемнике параметру процедуры какой тип XDTO присвоить? Array (http://v8.1c.ru/8.1/data/core) подойдет? Или лучше AnyType?
5. user1278383 4 18.11.21 10:27 Сейчас в теме
(4) если нужен примитивный обмен, то пакеты xdto не нужно создавать. В приемнике достаточно будет написать:
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(XMLСтруктураСериализованногоОбъекта);
Массив = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
ЧтениеXML.Закрыть();

XMLСтруктураСериализованногоОбъекта - параметр процедуры-приемника
6. user1278383 4 18.11.21 10:29 Сейчас в теме
(5) таким способом можно передавать массивы, таблицы значений, деревья значений, списки значений, примитивные типы.
7. user1619761 18.11.21 11:02 Сейчас в теме
(5)
XMLСтруктураСериализованногоОбъекта
. Ситуация такая: я подключаюсь к базе через WSСсылку, и пытаюсь туда передать массив в качестве параметров. Попробовал как вы описали, выдает ошибку Несоответствие типов (параметр номер '1'). Процедура в опубликованной базе GettingMassive(Massive) , по умолчанию у процедуры сервиса стоит тип возвращаемого значения string (http://www.w3.org/2001/XMLSchema), у операции так же. Вот строку норм передает, а с массивом посылает меня, таблицу значений так же не могу передать. Пробовал менять типы возвращаемого значения на All , AnyType, без толку.
8. user1278383 4 18.11.21 11:25 Сейчас в теме
(7) мой код передает строку и принимающая сторона получает строку. Сначала я сериализую массив в строку с помощью СериализаторXDTO, а в конце десериализую с его же помощью. Ищите ошибку
9. olbu 20.04.22 09:46 Сейчас в теме
(8)
Надо так:
МассивВОбъектXDTO = СериализаторXDTO.ЗаписатьXDTO(Массив);
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, МассивВОбъектXDTO );
XmlСтр = ЗаписьXML.Закрыть();//Тут возвращается строка

Прокси.ПроцедураВПриемнике(XmlСтр);//Передается строка
Показать
user1671936; user1278383; +2 Ответить
10. user1278383 4 20.04.22 09:51 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот