Имя: Пароль:
1C
1С v8
XDTO пакет в XML
0 N-S-B
 
06.07.17
10:59
Есть такая вот схема XSD https://pastebin.com/aEWCpQWW
Импортировал её как XDTO пакет, но не пойму, как мне получить объект для дальнейшей выгрузки в XML.
Везде, где я нагуглил, мы получаем тип объекта XDTO, а затем создаем сам объект. Сам объект создается только из представленных в пакете "Типов объектов", а в данной XSD схеме все нужные мне реквизиты находятся в "Свойствах" пакета (см. скриншот)

http://imgdisk.ru/images/2017/07/06/XDTO.png
1 Адинэснег
 
06.07.17
11:50
можешь даже не грузить в конфу
Создавай фабрику на основе файла схемы xsd
заполни, запиши
2 N-S-B
 
06.07.17
11:51
(1) Это понятно, что можно из файлика создавать фабрику. Итог такой же. Просто при загрузке схемы в конфу, наглядно видно как выглядит пакет http://imgdisk.ru/images/2017/07/06/XDTO.png
3 Адинэснег
 
06.07.17
12:15
ФайлыXSD = Новый Массив();
ФайлыXSD.Добавить(Темп);
Фабрика = СоздатьФабрикуXDTO(ФайлыXSD);

СчетаПКТип = Фабрика.Тип("http://v8.1c.ru/edi/edi_stnd/109","СчетПК";);
СчетаПК = Фабрика.Создать(СчетаПКТип);

СчетаПК.ДатаФормирования=Формат(ТекущаяДата() , "ДФ=yyyy-MM-dd");
СчетаПК.НаименованиеОрганизации=ОрганизацияНаименованиеПолное;
СчетаПК.ИНН=ОрганизацияИНН;
СчетаПК.РасчетныйСчетОрганизации=НомерСчета;
СчетаПК.ИдПервичногоДокумента=Строка(Док.УникальныйИдентификатор());



ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ТемпXML, "windows-1251");
ЗаписьXML.ЗаписатьОбъявлениеXML();
        
Фабрика.ЗаписатьXML(ЗаписьXML, СчетаПК,"СчетаПК");

ЗаписьXML.Закрыть();
4 Fragster
 
гуру
06.07.17
12:17
пакет.корневыесвойства.получить().тип()
5 Адинэснег
 
06.07.17
12:20
а по свойству можешь так
СотрудникСвойствоXDTO = РеестрЗачисленияТип.Свойства.Получить("Сотрудник");
Сотрудник = Фабрика.Создать(СотрудникСвойствоXDTO.Тип);
6 N-S-B
 
06.07.17
15:01
(4) Спасибо, то что нужно. Получилось
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший