Имя: Пароль:
1C
1С v8
Как с сервера на клиент передать значение XDTO?
, ,
0 Elf56
 
28.06.17
09:43
Всем доброго времени суток.

Имеется платформа 1С:Предприятие 8.3 (8.3.10.2252)

Есть процедура на сервере которая формирует структуру одно из значений структуры получается типа XDTO и затем эту структуру надо передать обратно клиенту, но платформа выдает такую ошибку

Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'ret':
    форма: Элемент
    имя: {http://v8.1c.ru/8.2/managed-application/modules}ret
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'Value':
    форма: Элемент
    имя: {http://v8.1c.ru/8.1/data/core}Value
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ОбъектXDTO'

Тут понятно, что нельзя передавать тип ОбъектXDTO с сервера на клиент, но что я только не пробовал и ПоместитьВоВременноеХранилище, ПолучитьИзВременногоХранилища И ЗначениеВстрокуВнутрь, ЗначениеИзСтрокиВнутрь, а значение типа ОбъектXDTO так и не передается структура во всех двух случаях возврается, но строка где должно быть ОбъектXDTO становится во всех двух случаях НЕОПРЕДЕЛЕНО я так понимаю этот тип просто не сериализуется, но должен же быть какой то выход как передать значение ОбъектXDTO с сервера на клиент?

Всем заранее спасибо за ответы.
1 Имитация работы
 
28.06.17
09:51
в xml из xml
2 Elf56
 
28.06.17
09:53
А не подскажешь какими функциями процедурами это сделать можно ?
3 Имитация работы
 
28.06.17
09:56
ФабрикаXDTO.ЗаписатьXML
ФабрикаXDTO.ПрочитатьXML
4 Cyberhawk
 
28.06.17
09:56
СериализаторХДТО.ЗаписатьХМЛ
5 Cyberhawk
 
28.06.17
09:57
А что автор будет / собирается делать с ОбъектXDTO на клиенте?
6 Elf56
 
28.06.17
10:15
Что то я не очень пойму как этими функциями пользовать не могли бы привести небольшой пример
7 h-sp
 
28.06.17
10:18
(5) ну вообще-то

ОбъектXDTO (XDTODataObject)

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).


значит, можно на клиенте с ним работать.
8 Elf56
 
28.06.17
10:28
ЧТо то не работает делаю вот так

ЗаписьХМЛ = Новый ЗаписьXML;
    СериализаторXDTO.ЗаписатьXML(ЗаписьХМЛ, Результат.Данные);

Где Результат.Данные типа ХДТО

Валится вот с такой ошибкой

Ошибка при вызове метода контекста (ЗаписатьXML)
    СериализаторXDTO.ЗаписатьXML(ЗаписьХМЛ, Результат.Данные);
по причине:
Несоответствие типов (параметр номер '2') (Ошибка отображения типов)
9 Elf56
 
28.06.17
10:29
Или я не правильно ХДТО в XML преобразую?
10 Имитация работы
 
28.06.17
10:35
(8) Не слушай глупых дядек про СериализаторXDTO. Используй ФабрикуXDTO, она про пакеты и прочее знает.
11 Elf56
 
28.06.17
10:36
(10) хорошо как через ФабрикуXDTO сделать? что то я не понимаю?
12 Имитация работы
 
28.06.17
10:39
(11) А как ты уже пробовал?
13 Elf56
 
28.06.17
10:44
Да также как и до этого только через фабрику вот так

ЗаписьХМЛ = Новый ЗаписьXML;
ФабрикаXDTO.ЗаписатьXML(ЗаписьХМЛ, Результат.Данные);

вот с такой ошибкой вылетает

Ошибка при вызове метода контекста (ЗаписатьXML)
    ФабрикаXDTO.ЗаписатьXML(ЗаписьХМЛ, Результат.Данные);
по причине:
Ошибка при записи XDTO
по причине:
Не установлен приемник XML

что не так ?
14 Имитация работы
 
28.06.17
10:46
ЗаписьXML.УстановитьСтроку
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший