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