Имя: Пароль:
1C
1С v8
Обращение к Web-сервису 1С через MSXML2.ServerXMLHTTP
0 dymych
 
16.08.16
18:13
День добрый!
Господа, подскажите, возможна ли работа с 1С-ными Web-сервисами таким образом:

    requestTxt = "<soap:Envelope xmlns:soap=""http://www.w3.org/2003/05/soap-envelope""; xmlns:pric=""http://www.MySite.com/web_1c/PriceList/"">;
    |   <soap:Header/>
    |   <soap:Body>
    |      <pric:PriceListRequest>
    |         <pric:RequestItem>1</pric:RequestItem>
    |         <pric:Items>
    |            <!--1 or more repetitions:-->
    |            <pric:ItemId>33700222</pric:ItemId>
    |            <pric:ItemId>39100333</pric:ItemId>
    |            <pric:ItemId>33000629</pric:ItemId>
    |         </pric:Items>
    |      </pric:PriceListRequest>
    |   </soap:Body>
    |</soap:Envelope>";
    
    myXmlHttp       = новый COMОбъект("MSXML2.ServerXMLHTTP");

    webServiceUrl   = "http://1xx.2xx.2xx.y/MySite/ws/PriceList/?wsdl";;
    method          = "POST";
    login           = "Usr";
    pwd             = "Pwd";

    myXmlHttp.open(method,webServiceUrl,false,login,pwd);
    myXmlHttp.setRequestHeader("Content-Type", "text/xml");

    myXmlHttp.send(requestTxt);
    receiveXML  = myXMLHttp.responseXML();
    receiveTXT  = myXMLHttp.responsetext();


Ежели requestTxt выполнять в SoapUI - все отлично.
А так в 1С-ке - ответ receiveTXT: такой же текст, если смотреть на Веб-сервис через браузер, просто описание...

Или же это - метод для работы именно с 1С-ными HTTP-запросами.?
А с Web-запросами такая работа не пройдет?
1 Mauser
 
16.08.16
18:37
Таким образом - невозможна. С правильным адресом - возможна. Программирование методом тыка - зло.
2 dymych
 
16.08.16
18:40
Или это еще и от платформы как-то зависит?
Тестирую на 8.3.8. В 8.2 - HTTP-сервисов нету...

(1) Что значит - "С правильным адресом". Реальный адрес я просто скрыл. Меня интересует сам подход - возможен, или нет?
3 Fragster
 
гуру
16.08.16
18:40
лучше работать с 1сными вебсервисами через встроенные методы 1с. Если всё хорошо, то через WSПрокси, если не очень - то через фабрику XDTO + HTTP запросы
4 Fragster
 
гуру
16.08.16
18:41
(2) а у тебя не http-, а web- сервисы, судя по XML
5 Fragster
 
гуру
16.08.16
18:42
?wsdl убери, если хочешь стоя и в гамаке.
6 dymych
 
16.08.16
18:42
(3) Через WSПрокси - все работает... Проверенно 1000 раз.

Это, просто, мне клиент клиента прислал свой вариант работы, и говорит, что не работает...

(2) Сервисы именно Web.
7 Fragster
 
гуру
16.08.16
18:43
работу без импорта ws ссылки в конфу можно посмотреть, например, на http://fragster.ru/wsfor1c/ , скачав обработку для 1с с примерами
8 Fragster
 
гуру
16.08.16
18:43
(6) >мне клиент клиента прислал свой вариант работы, и говорит, что не работает...
убери ?wsdl в адресе. но нафига?
9 dymych
 
16.08.16
18:44
(5) Все заработало! Спасибо!! ))

(7) Это мы умеем. Спасибо.
10 dymych
 
16.08.16
18:45
Это не мой код...
Мы для клиента сделали, как положенно...
А у одного из клиента нашего клиента - уже так реализовано... Переделывать не хотят...
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс