Имя: Пароль:
1C
 
Вопрос по сериализации.
0 lanc2233
 
08.03.18
16:47
Разбираюсь как обмениваться данными между приложениями через сериализацию. Возникла сложность, которую не могу сам разобрать.

Есть два приложения : сервер и клиент (мобильный).
На сервере код :

Функция Сериализовать(ОбъектСериализации) Экспорт
    ДеревоВОбъектеXDTO = СериализаторXDTO.ЗаписатьXDTO(ОбъектСериализации);
    МойXML = Новый ЗаписьXML;
    МойXML.УстановитьСтроку();
    ФабрикаXDTO.ЗаписатьXML(МойXML, ДеревоВОбъектеXDTO);
    ТекстМЛ = МойXML.Закрыть();
    Возврат ТекстМЛ;
КонецФункции

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

Нормально выполняется, в результате в отладчике получаю таблицу значений.

На клиенте :

ВСОпределение = Новый WSОпределения(Адрес);
ВСервис = ВСОпределение.Сервисы.Получить("api_test","api_study");
ВТочкаВхода = ВСервис.ТочкиПодключения.Получить("api_studySoap");
ВОперация = ВТочкаВхода.Интерфейс.Операции.Получить("GetIncomingDoc");
ВСПрокси = Новый WSПрокси(ВСОпределение, "api_test","api_study","api_studySoap");
Ответ = ВСПрокси.GetIncomingDoc(Неопределено);
    
Сообщить(Ответ);
    
тСериализаторXDTO = Новый СериализаторXDTO(ФабрикаXDTO);
тЧтениеXML = Новый ЧтениеXML;
тЧтениеXML.УстановитьСтроку(Ответ);    
тСсылка = тСериализаторXDTO.ПрочитатьXML(тЧтениеXML);

На последней строке : Ошибка преобразования данных XDTO: ...

Текст xml в первом и втором случае одинаковый. (Там два документа, файл не большой)

http://my-files.ru/l17uxh

Прокомментируйте, что не так ..
1 Эверест
 
08.03.18
16:56
Фабрика должна быть не твоей конфигурации, а взятая из сервиса.
2 lanc2233
 
08.03.18
17:05
Спасибо
3 lanc2233
 
08.03.18
17:30
Изменил на клиенте :

тСериализаторXDTO = Новый СериализаторXDTO(ВСПрокси.ФабрикаXDTO);
    тЧтениеXML = Новый ЧтениеXML;
    тЧтениеXML.УстановитьСтроку(Ответ);    
    тСсылка = тСериализаторXDTO.ПрочитатьXML(тЧтениеXML);

То-же самое.
4 h-sp
 
08.03.18
18:50
(3) он и в браузере не открывается. сам файл глючный
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.