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

XDTO пакеты и Web-сервисы

Автор Ромашев Алексей, 06 янв 2016, 14:31

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

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

Добрый день. Разбираюсь с мобильной платформой от 1с. Решил для теста развернуть серверную часть(1с УТ 8.2) и клиентску(мобильная платформа). Посмотрел пару уроков насчет программирования под мобильные, всё понятно, но не объяснили что делать с полученным на клиенте XDTO-пакетом.
Вот серверный код:


Функция ПолучитьТовар()
ТипСписокТовара = ФабрикаXDTO.Тип("СтруктураТовары","СписокТоваров");
ТипНоменклатура = ФабрикаXDTO.Тип("СтруктураТовары","Товар");
Список = ФабрикаXDTO.Создать(ТипСписокТовара);
Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ
   | Товары.Наименование КАК Наименоване,
   | Товары.Артикул КАК Артикул,
   | Товары.Описание КАК Описание
   |ИЗ
   | Справочник.Товары КАК Товары";
Выполнение = Запрос.Выполнить();
Выборка = Выполнение.Выбрать();
Пока Выборка.Следующий() Цикл
Товар = ФабрикаXDTO.Создать(ТипНоменклатура);
Товар.Наименование = "Товар";
Товар.Артикул = "Артикул";
Товар.Коментарий = "Комментарий";

Список.ТоварСписка.Добавить(Товар);
КонецЦикла;

Если Список.ТоварСписка.Количество() = 0 Тогда
Возврат Неопределено;
Иначе
Возврат Список;
КонецЕсли;
КонецФункции

Эта функция возвращает список товара в виде XDTO пакета. Вот его структура:

Вот исходник клиента:


&НаКлиенте

Процедура ОбменСервер(Команда)





ПолучитьПрокси();
КонецПроцедуры
&НаСервере
Процедура ПолучитьПрокси()




АдресСервера = "http://192.168.0.254/basep/ws/getsprvochnik?wsdl";
Определения = Новый WSОпределения(АдресСервера);
Прокси = Новый WSПрокси(Определения,"getsprvochnik","getsprvochnik","getsprvochnikSoap");
ПакетПолучение = Прокси.ПолучитьТовар();
ОбработкаНоменклатуры(ПакетПолучение);


КонецПроцедуры
Процедура ОбработкаНоменклатуры(Пакет)

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


Получаю пакет и на этом всё заканчивается. Как мне из этого пакета получить данные, чтобы потом ими заполнить справочник номенклатура на клиенте? Я читал про то что можно сначала в XML, а из него в объект 1с, но можно ли на прямую? без XML.

vitasw

Цитата: Ромашев Алексей от 06 янв 2016, 14:31но можно ли на прямую? без XML.
нет, нельзя. XDTO - суть тоже самое XML, что есть, грубо говоря, формат передачи данных.

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

Цитата: vitasw от 08 янв 2016, 19:17
Цитата: Ромашев Алексей от 06 янв 2016, 14:31но можно ли на прямую? без XML.
нет, нельзя. XDTO - суть тоже самое XML, что есть, грубо говоря, формат передачи данных.
Я нашел способ, обычным циклом если свойство пакета - список. Пример:

    Для Каждого Позиция Из СписокТоваров.Номенклатура Цикл
        //Доступ к элементу списка свойства пакета
        //Сообщить(Позиция.Наименование);
    КонецЦикла;

Естественно если свойство - не список, то просто через точку.

Теги: XDTO.web 

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

Рейтинг@Mail.ru

Поиск