Имя: Пароль:
1C
1С v8
Использование стороннего web-сервиса 1с-кой
0 Kropa
 
27.09.11
20:11
Есть web-сервис, которому на вход нужно дать XML. Сервис проверенный из других программ, работает. я пишу примерно следующий код:


   Определения = Новый WSОпределения("http://blabla/BizTalkService_Proxy/BizTalkService_BizTalk_Orchestration1_PortInput.asmx?wsdl");
   Прокси = Новый WSПрокси(Определения, "http://blabla/BizTalkService_Proxy", "BizTalkService_BizTalk_Orchestration1_PortInput", "BizTalkService_BizTalk_Orchestration1_PortInputSoap");
   
   ТипВходногопараметра = Прокси.ФабрикаXDTO.Тип("http://BizTalkService.SchemaRequest","Root");
   Сотр = Прокси.ФабрикаXDTO.Создать(ТипВходногопараметра);
   Сотр.FirstName = ИмяСотрудника;
   Сотр.LastName = ФамилияСотрудника;
   Сотр.IDNumber = ИДСотрудника;
   Сотр.Birthday = ДатаРождения;
   Сотр.Position = Должность;
   
   Ответ = Прокси.Tranform(Сотр);

На имя сервиса не обращаейте внимая, он автоматически згенерирован из приложения biztalk, но тем не менее это обычный Web-сервис.
Проблема в том, что на вход web сервиса не передается требуемая xml - только заголовок. Кто работал с передачей ХМЛ параметров в сторонние web-сервисы? В чем может быть проблема?
1 Kropa
 
28.09.11
11:13
Подниму ветку, видно веб-сервисы не очень популярны в среде 1с-ников.
2 Serginio1
 
28.09.11
12:21
Если прокатывает запись в Сотр. Значит 1С разобрала типы объектов.

Проверь что показывает
ПоказатьОбъектПоФабрике(Прокси.ФабрикаXDTO,Сотр)

Процедура ПоказатьОбъектПоФабрике(Фабрика,ОтветТаблицаЦен)
   ЗаписьХМЛ= новый ЗаписьXML;
   ЗаписьХМЛ.УстановитьСтроку();
   Фабрика.записатьXML(ЗаписьХМЛ,ОтветТаблицаЦен);
   //записатьXML(ЗаписьХМЛ,ОтветТаблицаЦен);
   текст=Новый ТекстовыйДокумент;
   Текст.УстановитьТекст(ЗаписьХМЛ.Закрыть());
   Текст.Показать();
КонецПроцедуры
3 Kropa
 
28.09.11
16:45
Спасибо.

Смотрю процедурой на передаваемый параметр:

   <Tranform xmlns="http://blabla/BizTalkService_Proxy" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Root xmlns="http://BizTalkService.SchemaRequest">
           <FirstName>qwqe</FirstName>
           <LastName>qweqwe</LastName>
           <IDNumber>15</IDNumber>
           <Birthday>2011-09-28</Birthday>
           <Position>qweqe</Position>
       </Root>
   </Tranform>

На входе веб-сервиса (Body)

<Root xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://BizTalkService.SchemaRequest">
 <IDNumber xmlns="">0</IDNumber>
 <Birthday xmlns="">0001-01-01</Birthday>
</Root>
4 Serginio1
 
28.09.11
16:58
А пробовал через WS-ссылку?
5 Kropa
 
28.09.11
17:00
Причем если SOAP запрос к сервису выглядит следуюющим образом (Не только body, полный запрос)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:biz="http://192.168.242.15:2999/BizTalkService_Proxy" xmlns:biz1="http://BizTalkService.SchemaRequest">
  <soapenv:Header/>
  <soapenv:Body>
     <biz:Tranform>
        <biz1:Root>
           <FirstName>Ivan</FirstName>
           <LastName>ivanovich</LastName>
           <IDNumber>14</IDNumber>
           <Position>emploe</Position>
        </biz1:Root>
     </biz:Tranform>
  </soapenv:Body>
</soapenv:Envelope>

То все работает верно.
6 Kropa
 
28.09.11
17:01
Не пробовал, спасибо попробую.
Хотя там же вроде тоже самое...
7 Serginio1
 
28.09.11
17:30
Это все таки на стороне сервера проблемы. Я с несколькими сервисами через 1С работаю все впорядке
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс