Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 сен 2021, 14:44

Изменение точки подключения

Автор Greiv, 23 авг 2016, 11:09

0 Пользователей и 1 гость просматривают эту тему.

Greiv

Здравствуйте, пытаюсь поменять точку подключения при создании WSСсылки и не чего не получается, меняю, потому что та точка подключения которая видимо загрузилась вместе с wsdl ссылкой, не подходит.
Вот код создания прокси:
Прокси = WSСсылки.WS_Common.СоздатьWSПрокси(ПространствоИмёнXDTO, СервисРаботы, ПортСервиса,,,,ТочкаПодключенияКотораяНужна);
Такой способ не даёт результата, точка подключения не меняется, может есть другой способ поменять, просто не смог найти синтаксиса или это может можно сделать в самой WSСсылке?

Greiv

Указанной выше разобрался, но появилась другая, суть вот в чём:
При отправке вот таким методом
&НаСервере
Процедура Окай2()
СоапЗапрос =  "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:ns=""http://dom.gosuslugi.ru/schema/integration/10.0.0.6/"" xmlns:nsi=""http://dom.gosuslugi.ru/schema/integration/10.0.0.6/nsi-common/"" xmlns:xd=""http://www.w3.org/2000/09/xmldsig#"">
   |<soapenv:Header>
   |   <ns:ISRequestHeader>
    |     <ns:Date>2016-08-22T11:22:28</ns:Date>
    |     <ns:MessageGUID>5ae0a87d-b604-4e4b-a8f8-ec83f6414ab2</ns:MessageGUID>
    |  </ns:ISRequestHeader>
   |</soapenv:Header>
   |<soapenv:Body>
   |   <nsi:exportNsiListRequest>
   |   </nsi:exportNsiListRequest>
   |</soapenv:Body>
|</soapenv:Envelope>";
oXMLHTTP = Новый COMОбъект("MSXML2.XMLHTTP");

стрURL="http://localHost:8080/ext-bus-nsi-common-service/services/NsiCommon";

oXMLHTTP.open("POST", стрURL, 0, Логин, Пароль);

oXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8");

oXMLHTTP.setRequestHeader("SOAPAction", "urn:exportNsiList");
oXMLHTTP.send(СоапЗапрос);

Если oXMLHTTP.Status=200 тогда
ндок = Новый ТекстовыйДокумент;
нхмл = ПолучитьИмяВременногоФайла("XML");
ндок.ДобавитьСтроку(oXMLHTTP.responseText);
ндок.Записать(нхмл);
ХМЛ= Новый COMОбъект("MSXML2.DOMDocument");
ХМЛ.load(нхмл);
Корешок=ХМЛ.DocumentElement;

Родитель = Корешок.SelectNodes("//ns4:NsiItemInfo");
СписокНомеровСправ = корешок.SelectNodes("//ns4:RegistryNumber");
СписокНазванийСправочников = корешок.SelectNodes("//ns4:Name");
списокДатИзмененияСправочников = корешок.SelectNodes("//ns4:Modified");
Для чКК=0 По СписокНомеровСправ.Length Цикл
Попытка
НомерСправочника = СписокНомеровСправ.Item(чКК).nodeTypedValue;
НазваниеСправочника = СписокНазванийСправочников.Item(чКК).nodeTypedValue;
ДатаПоследнегоИзменения = списокДатИзмененияСправочников.Item(чКК).nodeTypedValue;
тт = Табд.Добавить();
тт.НомерСправочника = НомерСправочника;
тт.НазваниеСправочника = НазваниеСправочника;
тт.ДатаПоследнегоИзменения = ДатаПоследнегоИзменения;
Исключение
Прервать;
КонецПопытки;
КонецЦикла;
УдалитьФайлы(нхмл);
КонецЕсли;
КонецПроцедуры

Всё получается, но с этим способом есть проблема, он использует внешнюю компоненту которая допустим на 2012 сервере не работает уже.
Ко всему этому делу есть ws-ссылки с помощью которых можно сформировать запрос и вот пример запроса:
&НаСервере
Процедура Окай2()
Прокси = WSСсылки.WS_Common.СоздатьWSПрокси("http://dom.gosuslugi.ru/schema/integration/10.0.0.6/nsi-common-service/", "NsiService", "NsiPort");
Прокси.Пользователь         = Логин;
Прокси.Пароль = Пароль;
ДанныеЗаголовка = Прокси.ФабрикаXDTO.Пакеты[2].КорневыеСвойства[47].Тип;
тДанныеЗаголовка = Прокси.ФабрикаXDTO.Создать(ДанныеЗаголовка);
тДанныеЗаголовка.Date         = ТекущаяДата();
тДанныеЗаголовка.MessageGUID                 = Строка(Новый УникальныйИдентификатор);
ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить("http://dom.gosuslugi.ru/schema/integration/10.0.0.6/nsi-common/").Получить("exportNsiListRequest");
WSПараметр     = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
СписокСправочника = Прокси.exportNsiList(WSПараметр);
ф=22;
КонецПроцедуры

И при отправке у меня должен получиться запрос указанный выше, но получается вот этот бред
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body> <exportNsiListRequest xmlns="http://dom.gosuslugi.ru/schema/integration/10.0.0.6/nsi-common/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/></soap:Body>
</soap:Envelope>

Как видно элемент Header вообще отсутствует, а он обязательный и вот собственно как его заполнить я то и не пойму, также в запросе обязательно должно быть замыкающее свойство <ns:ISRequestHeader> до которого я тоже не могу не как достучаться. У кого нибудь есть мысли по этому поводу?
Кстати для примера вот самый адекватный рабочий вид данного запроса сформированный в SoapUI:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://dom.gosuslugi.ru/schema/integration/10.0.0.6/" xmlns:nsi="http://dom.gosuslugi.ru/schema/integration/10.0.0.6/nsi-common/" xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
   <soapenv:Header>
      <ns:ISRequestHeader>
         <ns:Date>2016-08-22T11:22:28</ns:Date>
         <ns:MessageGUID>5ae0a87d-b604-4e4b-a8f8-ec83f6414ab2</ns:MessageGUID>
      </ns:ISRequestHeader>
   </soapenv:Header>
   <soapenv:Body>
      <nsi:exportNsiListRequest>
      </nsi:exportNsiListRequest>
   </soapenv:Body>
</soapenv:Envelope>

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск