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

v7: Вызов веб сервиса из 7.7, msxml3.dll: Неопознанная ошибка

v7: Вызов веб сервиса из 7.7, msxml3.dll: Неопознанная ошибка
Я
   Gobo
 
16.04.19 - 12:10
Доброек время суток !

Не нашел открытой темы где обсуждался данный вопрос, поэтому открыл.
На клиенте установлен Windows 7 x64.

Пробовал так обращаться:

Процедура Выполнить()
    ПараметрыSoap="<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/""; xmlns:core=""http://core.webservice.config.core.auction.bas.com/"">;
   |<soapenv:Header/>
   |<soapenv:Body>
      |<core:createEntities>
        |  <auth_key>0c18fd768c0cdab0ee41d4c605314259dff9b8cf8c8e4c3a0cb1e24090482c963190d643fe58b75f1bcb45e05cd861c1</auth_key>
          |<secret_key>8724112f3bf585cbb872f77562d06920d9b613327267dbf4f9190e99f0e35a82</secret_key>        
          |<data_content>![CDATA[{""Организации"": [{
            |""Ref"": ""eaf3d8f2-5207-11e5-9b29-000c293829c4"",
            |""Код"": ""000000001"",
            |""Наименование"": ""ТОО Cloudmaker""}]}
            |]]
        |</data_content>
        |<!--Optional:-->
         |<batchId>201</batchId>
         |<!--Optional:-->
         |<data_type>json</data_type>
     |</core:createEntities>
   |</soapenv:Body>
|</soapenv:Envelope>";
                      
Сообщить("ПараметрыSoap="+ПараметрыSoap);

    об = СоздатьОбъект("MSXML2.XMLHTTP");
    об.open("POST", "https://presale.tophr.kz/corews?wsdl";);
    об.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    об.setRequestHeader("SOAPAction", "http://core.webservice.config.core.auction.bas.com/#CoreWebServiceImplService:CoreWebServiceImplPort";);
    
    об.send(ПараметрыSoap);
    
    
    Если об.Status=200 Тогда
        ТекстОтвета = об.responseXml;
    КонецЕсли;

КонецПроцедуры

Получаю ошибку:
Если об.Status=200 Тогда
{F:\SOAPSENDER.ERT(45)}: msxml3.dll: Неопознанная ошибка


Отладчик показывает что объект "об" пустой.
 
 
   NikVars
 
1 - 16.04.19 - 12:21
Обновления все установлены? Не просит обновиться или перезагрузиться после установки обновлений?
   Gobo
 
2 - 16.04.19 - 12:27
Если вопрос на счет обновления ОС, они отключены.
   MadDAD
 
3 - 16.04.19 - 14:29
(0) попробовать перерегистрировать "msxml3.dll" ?
   serpentt
 
4 - 16.04.19 - 15:01
у меня по httpS не получилось послать.
   craxx
 
5 - 16.04.19 - 15:04
(0) ощущение что XML невалидный
   trad
 
6 - 16.04.19 - 15:47
(5) +1
1. не хватает
<?xml version="1.0" encoding="windows-1251"?>
Без этого заголовка, xml по умолчанию считается в кодировке utf8
А строка с кириллицей собранная в 77 имеет кодировку ANSI.

2. <soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"";; xmlns:core=""http://core.webservice.config.core.auction.bas.com/"">;;
тут - никаких точек_с_запятой

Но у автора проблема, пока, не в этом
   trad
 
7 - 16.04.19 - 15:50
об.open("POST", "https://presale.tophr.kz/corews?wsdl";;); 

тут какой-то странный код
и если делаем вызов метода soap, то причем тут wsdl
   trad
 
8 - 16.04.19 - 15:51
дурацкий форум - мудит с ;
   trad
 
9 - 16.04.19 - 15:53
офф тест

"Строка с одной тзп";
"http Строка с одной тзп";
"http://Строка с одной тзп";
   trad
 
10 - 16.04.19 - 15:54
 
 Рекламное место пустует
   trad
 
11 - 16.04.19 - 15:56
офф тест3
"http://aa.bb.cc/";
   Gobo
 
12 - 17.04.19 - 07:02
(6)
Исправлены,

    ПараметрыSoap="<?xml version=""1.0"" encoding=""windows-1251""?>
    |<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/""; xmlns:core=""http://core.webservice.config.core.auction.bas.com/"">;
   |<soapenv:Header/>
   |<soapenv:Body>
      |<core:createEntities>
        |  <auth_key>0c18fd768c0cdab0ee41d4c605314259dff9b8cf8c8e4c3a0cb1e24090482c963190d643fe58b75f1bcb45e05cd861c1</auth_key>
          |<secret_key>8724112f3bf585cbb872f77562d06920d9b613327267dbf4f9190e99f0e35a82</secret_key>        
          |<data_content>![CDATA[{""Организации"": [{
            |""Ref"": ""eaf3d8f2-5207-11e5-9b29-000c293829c4"",
            |""Код"": ""000000001"",
            |""Наименование"": ""ТОО Cloudmaker""}]}
            |]]
        |</data_content>
        |<!--Optional:-->
         |<batchId>201</batchId>
         |<!--Optional:-->
         |<data_type>json</data_type>
     |</core:createEntities>
   |</soapenv:Body>
|</soapenv:Envelope>";
   Gobo
 
13 - 17.04.19 - 07:03
Точки запятые форум добавляет, я без них вставлял.
   Gobo
 
14 - 17.04.19 - 07:07
(1) Все обновления сделал, результат тот же.
   Gobo
 
15 - 17.04.19 - 07:08
На 8-ке у меня код так реализован:

Определения = Новый WSОпределения(«адрес моего сервиса»);
Прокси = Новый WSПрокси(Определения, «http://core.webservice.com/»,»CoreWebServiceImplService»,»CoreWebServiceImplPort»);
Схема=»http://www.w3.org/2001/XMLSchema»;

ТекТекст=»Тут содержимое передаваемого документа»;

ТипXDTO_data_content = Прокси.ФабрикаXDTO.Тип(Схема, «string»);
ОбъектXDTO_data_content = Прокси.ФабрикаXDTO.Создать(ТипXDTO_data_content,ТекТекст);

ТипXDTO_batchId = Прокси.ФабрикаXDTO.Тип(Схема, «int»);
ОбъектXDTO_batchId = Прокси.ФабрикаXDTO.Создать(ТипXDTO_batchId,201);

ТипXDTO_data_type = Прокси.ФабрикаXDTO.Тип(Схема, «string»);
ОбъектXDTO_data_type = Прокси.ФабрикаXDTO.Создать(ТипXDTO_data_type,»XML»);

ДанныеОтправки = Прокси.createEntities(ОбъектXDTO_data_content, ОбъектXDTO_batchId, ОбъектXDTO_data_type);
Сообщить(ДанныеОтправки);
   Gobo
 
16 - 17.04.19 - 07:18
(7) как мне тут указать, чтобы он вызвал метод - createEntities ?

Сервис находиться тут:
https://presale.tophr.kz/corews?wsdl
   trad
 
17 - 17.04.19 - 08:05
Неопознанная ошибка на об.status?
   Gobo
 
18 - 17.04.19 - 12:35
(17) да,

и объект пустой в отладчике.
   trad
 
19 - 17.04.19 - 16:59
//*******************************************

Процедура Сформировать()
    
    ПараметрыSoap = "<?xml version=""1.0"" encoding=""windows-1251""?>
    |<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/""; xmlns:core=""http://core.webservice.config.core.auction.bas.com/"">;
    |<soapenv:Header/>
    |<soapenv:Body>
    |<core:createEntities>
    |<auth_key>0c18fd768c0cdab0ee41d4c605314259dff9b8cf8c8e4c3a0cb1e24090482c963190d643fe58b75f1bcb45e05cd861c1</auth_key>
    |<secret_key>8724112f3bf585cbb872f77562d06920d9b613327267dbf4f9190e99f0e35a82</secret_key>
    |<data_content>![CDATA[{""Организации"": [{
    |""Ref"": ""eaf3d8f2-5207-11e5-9b29-000c293829c4"",
    |""Код"": ""000000001"",
    |""Наименование"": ""ТОО Cloudmaker""}]}
    |]]
    |</data_content>
    |<batchId>201</batchId>
    |<data_type>json</data_type>
    |</core:createEntities>
    |</soapenv:Body>
    |</soapenv:Envelope>
    |";
    
    Query = СоздатьОбъект("Msxml2.XMLHTTP");
    Query.open("POST", "https://presale.tophr.kz/corews";, 0);
    Query.setRequestHeader("Content-Type", "text/xml; charset=windows-1251");
    Query.setRequestHeader("SOAPAction", "http://core.webservice.config.core.auction.bas.com/#CoreWebServiceImplService:CoreWebServiceImplPort";);
    Query.send(ПараметрыSoap);
    
    Если Query.status <> 200 Тогда
        Сообщить(Query.status);
        Сообщить(Query.statusText);
    Иначе
        Сообщить("Ok");
        //Сообщить(Query.responseXml);
        Сообщить(Query.responseText);
    КонецЕсли;

КонецПроцедуры
   trad
 
20 - 17.04.19 - 16:59
   trad
 
21 - 17.04.19 - 17:00
Windows 7 32
обновления все установлены
   Gobo
 
22 - 18.04.19 - 07:19
(19) Спасибо большое, работает !
Хочу в качестве спасибо отправить 0.003 BTC, если напишешь адрес.

Получается моя ошибка была в этой строке:
Query.open("POST", "https://presale.tophr.kz/corews",0);

На счет библиотеки, у клиентов могут быть с этим проблемы.
Можно эту обработку переделать на использование библиотеки - v7plus.dll ?
   Ёпрст
 
23 - 18.04.19 - 07:34
(22) храни все нужные библиотеки в самой ert в мокселе, при старте поделкии проверяй их наличие в системе, при отсутствии извлекай и устанавливай.  И v7plus.dll тоже может быть не зарегена. Проще 1cpp использовать, там есть встроенный xml
   Ёпрст
 
24 - 18.04.19 - 07:36
Хотя, тебе нужна mxmln3 и ее методы. Храни ее и извлекай/регистрируй при необходимости
   trad
 
25 - 18.04.19 - 09:39
(22) "Хочу в качестве спасибо отправить 0.003 BTC, если напишешь адрес."
спасибо, не надо
   trad
 
26 - 18.04.19 - 09:40
(23) "храни все нужные библиотеки в самой ert в мокселе,"
ТС, не делай так никогда
   trad
 
27 - 18.04.19 - 09:46
(22) "Можно эту обработку переделать на использование библиотеки - v7plus.dll ?" можно, но я ей не пользуюсь

использую компонентами windows. на современных win все это есть

Во-первых Msxml2.XMLHTTP имеет .responseXml - там готовый DOM-документ, бери да перебирай, хочешь просто перебором, хочешь xpath-ами

Во-вторых .send(ПараметрыSoap) на вход умеет получать не только строку, но и тот же DOM-документ
   trad
 
28 - 18.04.19 - 09:49
   Gobo
 
29 - 18.04.19 - 11:56
(27) Да, дом это хорошо.
На VBA его часто использую.
   Gobo
 
30 - 18.04.19 - 13:42
B код читабельнее:
[CODE]

Процедура Выполнить()

    myDOMdoc = СоздатьОбъект("Msxml2.DOMDocument");
    myDOMdoc.appendChild(myDOMdoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""windows-1251"""));

    elSoapenv=myDOMdoc.createElement("soapenv:Envelope");
    
    attrEnvel = myDOMdoc.createAttribute("xmlns:soapenv");
    attrEnvel.nodeValue = "http://schemas.xmlsoap.org/soap/envelope/";;
    elSoapenv.setAttributeNode(attrEnvel);
    
    attrEnvel = myDOMdoc.createAttribute("xmlns:core");
    attrEnvel.nodeValue = "http://core.webservice.config.core.auction.bas.com/";;
    elSoapenv.setAttributeNode(attrEnvel);
    
    elHead=myDOMdoc.createElement("soapenv:Header");
    elSoapenv.appendChild(elHead);

    elBody=myDOMdoc.createElement("soapenv:Body");
    elCrentit=myDOMdoc.createElement("core:createEntities");
    
    elAuthkey=myDOMdoc.createElement("auth_key");
    elAuthkey.text = "0c18fd768c0cdab0ee41d4c605314259dff9b8cf8c8e4c3a0cb1e24090482c963190d643fe58b75f1bcb45e05cd861c1";
    elCrentit.appendChild(elAuthkey);

    elSecrkey=myDOMdoc.createElement("secret_key");
    elSecrkey.text = "8724112f3bf585cbb872f77562d06920d9b613327267dbf4f9190e99f0e35a82";
    elCrentit.appendChild(elSecrkey);

    elData=myDOMdoc.createElement("data_content");
    elData.text = "<![CDATA[<Root_1C>
    |<Header>
    |    <ExchangePlan>TestObmen</ExchangePlan>
    |    <To>Приемник</To>
    |    <From>Источник</From>
    |    <Root_1СNo>13</Root_1СNo>
    |    <ReceivedNo>0</ReceivedNo>
    |</Header>
    |</Root_1C>
    |]]>";
    elCrentit.appendChild(elData);
        
    elbatchId=myDOMdoc.createElement("batchId");
    elbatchId.text = "201";
    elCrentit.appendChild(elbatchId);

    elDatatype=myDOMdoc.createElement("data_type");
    elDatatype.text = "xml";
    elCrentit.appendChild(elDatatype);
    
    elBody.appendChild(elCrentit);
    
    elSoapenv.appendChild(elBody);
    
    
    myDOMdoc.appendChild(elSoapenv);
        
    Сообщить("myDOMdoc.xml="+myDOMdoc.xml);


    Query = СоздатьОбъект("MSXML2.XMLHTTP");
    Query.open("POST", "https://presale.tophr.kz/corews",0);
    Query.setRequestHeader("Content-Type", "text/xml; charset=windows-1251");
    //Query.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    Query.setRequestHeader("SOAPAction", "http://core.webservice.config.core.auction.bas.com/#CoreWebServiceImplService:CoreWebServiceImplPort";);
    
    Query.send(myDOMdoc);
    
    
    Если Query.Status<>200 Тогда
        Сообщить(Query.status);
        Сообщить(Query.statusText);
    Иначе
        Сообщить("Ok");
        Сообщить(Query.responseText);
    КонецЕсли;


КонецПроцедуры

[/CODE]
   Ёпрст
 
31 - 18.04.19 - 18:10
(26) почему ?
   trad
 
32 - 19.04.19 - 09:53
(31) совершенно не нужное шаманство, усложняющее систему без необходимости
   Ёпрст
 
33 - 19.04.19 - 11:42
(32) ааа.. я то думал, что-то религиозное, может :)
 
 


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