Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

XDTO дублирует тэг

XDTO дублирует тэг
Я
   nadvig
 
18.09.20 - 12:52
В SOAPUI определяется запрос как

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:urn="urn:XXXXXXXXXXXX">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:GetMobileTariffInfoRequest>
         <mobileTariffIdList>
            <!--1 or more repetitions:-->
            <mobileTariffId>?</mobileTariffId>
         </mobileTariffIdList>
      </urn:GetMobileTariffInfoRequest>
   </soapenv:Body>
</soapenv:Envelope>

XDTO формирует такой текст запроса

<m:GetMobileTariffInfoRequest xmlns:m="urn:XXXXXXXXXXXXXXX" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">;
               <mobileTariffIdList xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="m:GetMobileTariffInfoRequest">
                              <m:mobileTariffIdList>
                                            <m:mobileTariffId>235045</m:mobileTariffId>
                              </m:mobileTariffIdList>
               </mobileTariffIdList>
</m:GetMobileTariffInfoRequest>
   nadvig
 
1 - 18.09.20 - 12:53
Т.е. тэг mobileTariffIdList дублируется.
Подскажите, пожалуйста, как обойти этот косяк со списочным типом?
   nadvig
 
2 - 18.09.20 - 12:58
код формирования

Прокси = Новый WSПрокси(Определение,
                        "urn:XXXXXXXXXXXXXXX",
                        "CRMServiceOutService",
                        "HTTP_Port");

Прокси.Пользователь = ИмяПользователя;
Прокси.Пароль       = Пароль;

ТипWSПараметраRequest = Прокси.ФабрикаXDTO.Пакеты.Получить("urn:XXXXXXXXXXXXXX").Получить("GetMobileTariffInfoRequest");
WSПараметр = Прокси.ФабрикаXDTO.Создать(ТипWSПараметраRequest);

ТипОбъектаitemList = Прокси.ФабрикаXDTO.Пакеты.Получить("urn:XXXXXXXXXXXXXXXX").Получить("MobileTariffIdList");

ОбъектitemList = Прокси.ФабрикаXDTO.Создать(ТипОбъектаitemList);
ОбъектitemList.mobileTariffId.Добавить("235045");

WSПараметр.mobileTariffIdList = ОбъектitemList;
   Вафель
 
3 - 18.09.20 - 17:23
а изначально WSПараметр.mobileTariffIdList чему равно. до присваивания?
   nadvig
 
4 - 18.09.20 - 17:34
Неопределено
   acht
 
5 - 18.09.20 - 17:41
Чой-то бред какой-то у тебя написан, там все проще должно быть, типа

Прокси = Новый WSПрокси ...

ТипСписка = Прокси.ФабрикаXDTO.Тип("urn:XXXXXXXXXXXXXXXX", "MobileTariffIdList");
Список = Прокси.ФабрикаXDTO.Создать(ТипСписка);

Список.Добавить("235045");

Результат = Прокси.GetMobileTariffInfo(Список)
   nadvig
 
6 - 18.09.20 - 17:58
ОК, пробую только ОбъектitemList передавать.
А как можно отловить, что на выходе генерится? Визуально увидеть текст запроса. Мне внешняя система, в которой этот запрос получают не доступна.
   nadvig
 
7 - 18.09.20 - 18:05
Если через ЗаписьXML получать текст, то пишет, что тип принадлежит пакету, отсутствующему в фабрике типов XDTO (wsdl из файла загружал).
Да и это же только внутренняя часть запроса.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.