Имя: Пароль:
1C
1С v8
как сформировать хмл файл для вэбсервиса?
0 spenov
 
27.04.15
17:32
добрый день.
столкнулся с проблемой взаимодействия с SAP через вэбсервис.
1С отправляет вполне корректный запрос через механизм WS-ссылок.
но не способно обработать правильно ответ.
т.е. 1С либо корректно отправляет запрос, либо корректно может обработать файл ответа. одновременно не получается выполнить оба действия.
решил обойти эту проблему, отправкой запроса через POST запрос и последующим разбором файла ответа.

не получается найти образец кода, который бы сформировал XML файл запроса в том виде, как его формирует объект прокси, полученный из WS-ссылки.
1 MadHead
 
27.04.15
22:24
Можно перехватить пакеты. В помощь http://charles-proxy.ru
2 Записьдампа
 
27.04.15
23:01
(1) Закопайте вы уже этот "shareware, which means that you may try Charles for 30 days". Пользуйтесь православным http://www.telerik.com/fiddler
3 MadHead
 
27.04.15
23:23
(1) под линуксом у него интерфейс мягко говор на любителя. Кроме того что пришлось ставить моно
4 MadHead
 
27.04.15
23:23
(3) -> (2)
5 spenov
 
28.04.15
10:00
тогда уж проще внешнюю компоненту применить, которая нормально работает с вэбсервисами. но хочется без дополнительных элементов обойтись.
6 Serginio1
 
28.04.15
10:38
7 Serginio1
 
28.04.15
10:39
Смотри фиддлером что передается, что принимается.
8 Serginio1
 
28.04.15
10:42
В любом случае можешь экспортировать по фабрике вэб сервиса объект и сохранить в текст и обработать его о получения нужных показаний
9 sapphire
 
28.04.15
10:42
(0) Посмотрите SOAPUI.
Там на основе wsdl получите всё, что Вам нужно.
10 sapphire
 
28.04.15
10:43
(0) Возвращается небось значение типа AnyType
11 Serginio1
 
28.04.15
10:43
Процедура ПоказатьОбъект(ОтветТаблицаЦен)
    ЗаписьХМЛ= новый ЗаписьXML;
    ЗаписьХМЛ.УстановитьСтроку();
    ФабрикаXDTO.записатьXML(ЗаписьХМЛ,ОтветТаблицаЦен,,,,НазначениеТипаXML.Явное);
    //записатьXML(ЗаписьХМЛ,ОтветТаблицаЦен);
    текст=Новый ТекстовыйДокумент;
    Текст.УстановитьТекст(ЗаписьХМЛ.Закрыть());
    Текст.Показать();
    
КонецПроцедуры
12 spenov
 
28.04.15
11:02
(11)
этот метод не добавляет заголовков, которые предусмотрены soap. и префиксов пространства имен нет.
что-то вроде
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:prod="http://lanit.ru/product_crchex">;
   <soapenv:Header/>
   <soapenv:Body>
      <prod:product_crchex>
...
13 SUA
 
28.04.15
11:08
(0)присоединяюсь к (9) - SOAPUI
заодно покажет ответ с сервиса
14 Serginio1
 
28.04.15
11:25
(12) Еще раз смотришь Фиддлером рабочий пример или соапУи что передается и добавляешь изменяешь.
Проще всего использовать 6
15 spenov
 
28.04.15
12:01
(13)(14)
что передавать я и так знаю. и от поставщика сервиса, и по SoapUi видно.
вопрос каким способом формировать файл, который будет выглядеть также, как его формирует SoapUi

причем механизм WS-ссылки формирует файл правильно. значит в 1С есть некий инструмент, с помощью которого можно создать такой файл.

к сожалению, WS-ссылка не может обработать файл ответа и вываливается с ошибкой.
поэтому хочу обойти это через POST запрос. но не могу файл собрать.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший