Есть отправка запроса на внешний веб-сервис, примерно так вот

```1c
    Прокси = Новый WSПрокси(Определение....);
    ...
    Товары = Прокси.ФабрикаXDTO.Создать(ТипОбъектаТовары);
    ....
    Ответ = Прокси.SetGoods(Товары);
```

там с той стороны что-то не работает и они просят прислать текст запроса. Я так понимаю, на ту сторону отправляется некий XML.
Как мне его получить?
---
```1c
    ХМЛ = Новый ЗаписьXML;
    ХМЛ.УстановитьСтроку();
    ФабрикаXDTO.ЗаписатьXML(ХМЛ, Товары);
    Результат = ХМЛ.Закрыть();
```

Результат будет текст xml файла типа строка
---
От вас отправляется пакет Товары. Поставьте точку останова на строке Ответ = Прокси.SetGoods(Товары); и вычислите выражение "Товары". Если параметр веб-сервиса имеет такой же тип и структуру, значит запрос отправится успешно. Часто бывает, что на входе веб-сервиса тип параметра "string". В таком случае "Товары" надо сериализовать в xml перед запросом и отправить как строку.
---
Товары имеет тип и значение XDTOОбъект. Смысла в этом знании нет никакого. Нужен текст XML, который передается сервису.
---
https://forum.infostart.ru/forum9/topic92232/
---
спасибо, там такой же вопрос, но без ответа
неужели нет какого-нибудь метода ПолучитьЗапросXML()?
---
Используйте

```1c
    ФабрикаXDTO.ЗаписатьXML()
```

в какую-нибудь временную папку и смотрите что он там отправляет.
---
я так пробовал сделать

```1c
    Запись = Новый ЗаписьXML;
    Прокси.ФабрикаXDTO.ЗаписатьXML(Запись, Товары);
```

но что-то не сложилось, я не понимаю, что она хочет
Ошибка при вызове метода контекста (ЗаписатьXML)
 Прокси.ФабрикаXDTO.ЗаписатьXML(Запись, Товары);
по причине:
Ошибка при записи XDTO
по причине:
Не установлен приемник XML
---
ПолучитьИмяВременногоФайла() может подойтемт
---
Адрес сервиса http или https?
---
http
запрос они поймали на той стороне.
Но как получить его здесь, я пока не понял.
---
Поставь SoapUI, в ней можно посмотреть.
---
(6)
это все, наверное, здорово, но дело происходит на клиентском сервере, ставить туда какое-то левое ПО не очень хотелось бы.
Странно, что нет простых методов, неужели это так сложно...
---
https://www.nirsoft.net/utils/smsniff.html

Покажет что и как ушло и что в ответ получили.
---
```1c
    ХМЛ = Новый ЗаписьXML;
    ХМЛ.УстановитьСтроку();
    ФабрикаXDTO.ЗаписатьXML(ХМЛ, Товары);
    Результат = ХМЛ.Закрыть();
```

Результат будет текст xml файла типа строка
---
о ес! спасибо большое. Получилось.
---
Можно еще так:

```1c
    Запись = Новый ЗаписьXML;
    Запись.ОткрытьФайл(ПутьКФайлуXML,"windows-1251");
    Запись.ЗаписатьОбъявлениеXML();
    ФабрикаXDTO.ЗаписатьXML(Запись, Товары);
    Запись.Закрыть();
```

Кодировку установите какую вам надо, в нашем случае это windows-1251.

Мы при работе с платежными шлюзами стали применять такую схему: все запросы пишутся в промежуточный XML-файл с именем типа НомерЗапроса_ДатаВремя.xml, если шлюз вернул успех - файл удаляется. В случае какой-либо ошибки у нас остается готовый файл с запросом, который можно как быстро изучить самому, так и предоставить в поддержку. Аналогичным образом поступаем и с ответами шлюза. Т.е. в случае какой-либо ошибки у нас в рабочей папке находятся файлы запроса и ответа.
---
спасибо, может пригодится. Хорошая идея. Здесь-то вряд ли, а в более ответственных делах вполне жизненно.
---
Основной смысл этой идеи в том, что полная расшифровка ответа шлюза избыточна, но иногда эта самая информация может быть нужна. В нашем случае шлюз выдает код результата и код состояния плюс некоторый набор дополнительных полей, который может меняться в разных сочетаниях кода результата и состояния.

Скажем кассиру расшифровываются только явные ошибки: "Неправильный номер абонента", "Недопустимая сумма", "Платежи на данного получателя временно не проводятся" и т.д. Даже если платеж стал в очередь кассиру все равно показываем "Успех". Все остальное "Ошибка, позвоните в офис/техподдержку".

Операторам в офисе показываем больше, здесь, например, будут статусы "В очереди, нет свободных средств на счету", "Ошибка, шлюз провайдера временно недоступен, позвоните туда-то", т.е. расшифровываем те ситуации, которые в пределах их компетенции. Остальное глушится сообщением "Ошибка, позвоните в техподдержку", которая уже и изучает эти файлы. Для поддержки это вообще идеальный вариант, так как видно всё, что отправили, что получили, все допполя и т.п.
---
Fiddler еще очень удобен - перехватывает трафик, в том числе https. Вот например, что он показывает по запросу на веб-сервис службы доставки КCЭ:

POST http://lk-test.cse.ru/1c/ws/Web1C.1cws HTTP/1.1
Proxy-Authorization: NTLM TlRMTVNTUAABAAAAt7II4gkACQArAAAAAwADACgAAAAGAbEdAAAAD05PVldP­UktHUk9VUA==
User-Agent: 1C+Enterprise/8.2
Host: lk-test.cse.ru
Accept: */*
Connection: Keep-Alive
SOAPAction: "http://www.cargo3.ru#WebService:GetReferenceData"
Content-Type: text/xml; charset=utf-8
Content-Length: 946

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 <soap:Header/>
 <soap:Body> <m:GetReferenceData xmlns:m="http://www.cargo3.ru">
 <m:login xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">test</m:login>
 <m:password xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2016</m:password>
 <m:parameters xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <m:Key>Parameters</m:Key>
  <m:List>
   <m:Key>Reference</m:Key>
   <m:Value xsi:type="xs:string">Geography</m:Value>
   <m:ValueType>string</m:ValueType>
  </m:List>
  <m:List>
   <m:Key>Search</m:Key>
   <m:Value xsi:type="xs:string">Санкт-Петербург г</m:Value>
   <m:ValueType>string</m:ValueType>
  </m:List>
 </m:parameters>
</m:GetReferenceData></soap:Body>
</soap:Envelope>