Вход | Регистрация

1С:Предприятие ::

Метки: 

XDTO. Вывод элемента

Я
   Bot002
 
14.02.18 - 15:38
Здравствуйте. Пытаюсь разобраться с XDTО.
Понял как получить и вывести "xs:complexType".
А как быть с "xs:element"???
Нужно вывести "Файл", в нём "СвУчДокОбор" и "Документ". А в "Документе" уже всё остальное. (см. вложения)
https://cdn1.savepice.ru/uploads/2018/2/14/614edcc3e98b4c2d9386b51033c22a4b-full.png
https://cdn1.savepice.ru/uploads/2018/2/14/bdfdfcb690d1aef2635b0d8c7b43442b-full.png

Подкажите, пожалуйста, как это можно сделать.

&НаСервере
Процедура Команда1НаСервере()
    ХХХ = РеквизитФормыВЗначение("Объект");
    ИмяСхемы = КаталогВременныхФайлов() + "scheme_ordersp2.xsd";
    Мак = ХХХ.ПолучитьМакет("Схема2");
    Мак.Записать(ИмяСхемы);
    ФайлыXSD = Новый Массив(); 
    ФайлыXSD.Добавить(ИмяСхемы); 
    Фабрика = СоздатьФабрикуXDTO(ФайлыXSD);
    //ТипФайл = Фабрика.Тип("http://www.sample-package.org";, "Файл"); //так не работает
    АдресТип = Фабрика.Тип("http://www.sample-package.org";, "АдресТип");

    Адр = Фабрика.Создать(АдресТип);
    Адр.АдрИнф = "123";
    Адр.АдрРФ = "111";
    Адр.КодГар = "1";
    Запись = Новый ЗаписьXML();
    Запись.ОткрытьФайл("C:\Tmp\ТестФабрикиXDTO.xml", "UTF-8");
    Запись.ЗаписатьОбъявлениеXML();        
    Фабрика.ЗаписатьXML(Запись, Адр,,,,НазначениеТипаXML.Явное);
    Запись.Закрыть();
КонецПроцедуры
 
 
   Bot002
 
1 - 14.02.18 - 17:25
3
   Cyberhawk
 
2 - 14.02.18 - 17:30
Что-то ты путаешь. У тебя есть XSD-схема. Кого и куда "вывести"?
   Cyberhawk
 
3 - 14.02.18 - 17:38
Типа "Файл" в твоей схеме нет. После записи в файл все, что в нем будет, и есть этот самый "Файл", походу
   Bot002
 
4 - 15.02.18 - 16:39
(3) Да, типа "Файл" в схеме нет. Есть элемент "Файл". Как его вывести используя схему?
   Cyberhawk
 
5 - 15.02.18 - 16:57
(4) Вручную ЗаписатьНачалоЭлемента со всеми нужными атрибутами (пространство имен, например) + ЗаписатьКонецЭлемента, ну а между этим уже через Фабрику / Сериализатор писать в этот же файл
   Bot002
 
6 - 15.02.18 - 17:19
(5) Это я умею) Я разобраться хотел - т.е. через фабрику ни как?
   Cyberhawk
 
7 - 15.02.18 - 17:21
(6) Фабрике ничего не известно о том, что корневой тэг в файле с данными должен называться как-то. Это вообще-то и без разницы.
   Bot002
 
8 - 15.02.18 - 17:23
(7) Спасибо.
   Cyberhawk
 
9 - 15.02.18 - 17:45
(8) Простой пример: ты когда фабрикой с использованием схемы читаешь в 1С текстовую строку / ХМЛ-файлик, у тебя на выходе ОбъектХДТО без какого-либо намека на его "имя". Это и есть корневой тэг. А вот внутри этого объекта уже свойства с конкретными именами, описанные в схеме. Но само имя корневого элемента в получаемом "главном" ОбъектеХДТО никак не фигурирует, пофиг какое оно.


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует