Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
22 Окт 2017, 09:23
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: XDTO  (Прочитано 599 раз)

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

Оффлайн Ромашев Алексей

  • *
  • Сообщений: 35
  • РЕПУТАЦИЯ: -1
  • Регистрация: 2015-06-18
  • Сайт: 
  • Профессия: Ученик 1С
XDTO
« Первое сообщение: 19 Янв 2016, 15:03 »
Добрый день. Есть код на сервере:
Функция Заказ()
// Вставить содержимое обработчика.
// Подготовить Контрагентов
//ТипЗаказы= ФабрикаXDTO.Тип("http://www.livtorg.org","Заказы");
//ТипКонтрагент = ФабрикаXDTO.Тип("http://www.livtorg.org","Контрагент");
////ТипСписокДоговоров = ФабрикаXDTO.Тип("http://www.livtorg.org","СписокДоговоров");
//ТипДоговор = ФабрикаXDTO.Тип("http://www.livtorg.org","Договор");
НаборСхемXML = ФабрикаXDTO.ЭкспортСхемыXML("http://www.livtorg.org");
Для Счетчик = 0 по НаборСхемXML.Количество() - 1 Цикл
   Схема = НаборСхемXML.Получить(Счетчик);
   Схема.ОбновитьЭлементDOM();
   ЗаписьDOM = Новый ЗаписьDOM;
   ЗаписьXMLСтрока = Новый ЗаписьXML;
   ЗаписьXMLСтрока.УстановитьСтроку();
   ЗаписьXMLФайл = Новый ЗаписьXML;
   ЗаписьDOM.Записать(Схема.ДокументDOM, ЗаписьXMLСтрока);
   ЗаписьXMLФайл.УстановитьСтроку();
   ЗаписьXMLФайл.ЗаписатьБезОбработки(ЗаписьXMLСтрока.Закрыть());
   
    КонецЦикла;
    ЧТ= ЗаписьXMLФайл.Закрыть() ;
ЧТХЗ= Новый ХранилищеЗначения(ЧТ, Новый СжатиеДанных(9));
Возврат ЧТХЗ;
Который возвращает Хранилище значений, в котором находится XML, если я не ошибаюсь, который описывает структура XDTO пакета.

Вот код клиента:
&НаКлиенте
Процедура ОбменНажатие(Элемент)
  Строка = ПолучитьСхемуЗаказа();
КонецПроцедуры
Функция ПолучитьСхемуЗаказа()
//Соединение с сервисом!
Менеджер = Константы.Менеджер.Получить();
АдресСервера = "http://192.168.0.250:8080/LT/ws/exchange?wsdl";
Определения = Новый WSОпределения(АдресСервера,Менеджер);
Прокси = Новый WSПрокси(Определения,"http://www.livtorg.org","exchange","exchangeSoap");
Прокси.Пользователь = Менеджер;
//Получение списка номенклатуры в виде XDTO пакета
Хранилище = Прокси.Заказ();
Схема = Хранилище.Получить();
Возврат Схема;
КонецФункции
В переменной строка находится вот что:
<?xml version="1.0"?>
<xs:schema xmlns:tns="http://www.livtorg.org" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.livtorg.org" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:complexType name="Договор">
<xs:sequence>
<xs:element name="УИд" type="xs:string"/>
<xs:element name="Код" type="xs:string"/>
<xs:element name="Наименование" type="xs:string" nillable="true"/>
<xs:element name="Родитель" type="xs:string"/>
<xs:element name="СуммаЗадолженности" type="xs:decimal" nillable="true"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Заказ">
<xs:sequence>
<xs:element name="НомерДок" type="xs:string"/>
<xs:element name="ДатаДок" type="xs:dateTime"/>
<xs:element name="КодКонтрагента" type="xs:string"/>
<xs:element name="КодДоговора" type="xs:string"/>
<xs:element name="ТабТовары" type="tns:ЗаказТовары" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ЗаказТовары">
<xs:sequence>
<xs:element name="КодНоменклатуры" type="xs:string"/>
<xs:element name="Количество" type="xs:decimal"/>
<xs:element name="Цена" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Заказы">
<xs:sequence>
<xs:element name="СписокЗаказов" type="tns:Заказ" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Контрагент">
<xs:sequence>
<xs:element name="УИд" type="xs:string"/>
<xs:element name="Код" type="xs:string"/>
<xs:element name="Наименование" type="xs:string" nillable="true"/>
<xs:element name="СписокДоговоров" type="tns:Договор" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Номенклатура">
<xs:sequence>
<xs:element name="УИд" type="xs:string"/>
<xs:element name="Код" type="xs:string"/>
<xs:element name="Наименование" type="xs:string" nillable="true"/>
<xs:element name="Родитель" type="xs:string" nillable="true"/>
<xs:element name="ЭтоГруппа" type="xs:boolean"/>
<xs:element name="ЕдиницаДляОтчетов" type="xs:string" nillable="true"/>
<xs:element name="КоэффициентЕДО" type="xs:decimal" nillable="true"/>
<xs:element name="ЕдиницаХраненияОстатков" type="xs:string" nillable="true"/>
<xs:element name="КоэффициентЕХО" type="xs:decimal" nillable="true"/>
<xs:element name="Цена" type="xs:decimal" nillable="true"/>
<xs:element name="Остатки" type="xs:decimal" nillable="true"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="СписокКонтрагентов">
<xs:sequence>
<xs:element name="Контрагенты" type="tns:Контрагент" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="СписокТоваров">
<xs:sequence>
<xs:element name="Номенклатура" type="tns:Номенклатура" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

Собственно вопрос. Как мне из этого всего создать XDTO пакет и заполнить его свойства данными?


Теги: XDTO 
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
86 Сообщений
alex0402
49 Сообщений
AIFrame
43 Сообщений
Oldman06
31 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
30 Сообщений
vitasw
29 Сообщений
Golickoff Golickoff
28 Сообщений
MuI_I_Ika MuI_I_Ika
18 Сообщений
DmitriyF DmitriyF
14 Сообщений
BuhRust
13 Сообщений

* Кто онлайн

  • Точка Гостей: 203
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal