|
Вопрос по сериализации.
| ☑ |
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 в первом и втором случае одинаковый. (Там два документа, файл не большой)
Прокомментируйте, что не так ..
|
|
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) он и в браузере не открывается. сам файл глючный
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший