Имя: Пароль:
1C
1С v8
Web services: Как привести одно значение к другому?
0 ZUM
 
17.10.11
09:25
Есть веб-сервис в который передается параметры типа "Документ"
Пакеты XDTO схожи в базе источника и в базе приемника.
Создан xdtoОбъект на основе локального пакета. Подскажите как конвертировать локальный объект в объект веб- сервиса?

Прокси = WSСсылки.wsСсылка.СоздатьWSПрокси(АдресWEB_Service,"ЗапросНоменклатуры","ЗапросНоменклатурыSoap");

wsТипДок = Прокси.ФабрикаXDTO.Тип(webURI,"Документ");

locТипДок = ФабрикаXDTO.Создать("Документ");
1 Широкий
 
17.10.11
09:34
Схожи или в точности такая же структура?
2 ZUM
 
17.10.11
09:35
(1) Обсолютно такая же. Конфа одна и таже.
3 ZUM
 
17.10.11
10:05
Пробовал так:

Прокси.ФабрикаXDTO.Привести(wsТипДок,locТипДок);

Ругается:
Несоответствие типов (параметр номер '1')
4 ZUM
 
17.10.11
11:17
Сделал криво : :( Вроде работает но не айс.
Охота все-таки оптимально сделать.

   ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
   
   ЗаписьXML = Новый ЗаписьXML;
   ЗаписьXML.ОткрытьФайл(ИмяВременногоФайла);
   ЗаписьXML.ЗаписатьОбъявлениеXML();
   ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, locДокумент);
   ЗаписьXML.Закрыть();
   
   ОбъектXML = Новый ЧтениеXML;
   ОбъектXML.ОткрытьФайл(ИмяВременногоФайла);
   wsДокумент = ФабрикаXDTO.ПрочитатьXML(ОбъектXML);
5 Asmody
 
17.10.11
11:54
(4) зачем тебе файл? ЧтениеXML и ЗаписьXML прекрасно работают со строкой

ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
...
СтрокаXML = ЗаписьXML.Закрыть();

ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(СтрокаXML);
...
6 Asmody
 
17.10.11
11:58
ещё можно попробовать через СериализаторXDTO (сам не пробовал)

СериализаторXDTO = Новый СериализаторXDTO(Прокси.ФабрикаXDTO);
ОбъектXDTO = СериализаторXDTO.ЗаписатьXDTO(locДокумент);
7 ZUM
 
17.10.11
12:29
(5,6) Спасибо щас попробую.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн