XDTO #578549


#0 by leech001
Создал xml схему такого содержания <xs:schema xmlns:tns="http://www.vet1.org" xmlns:xs=" www.w3.org/2001/XMLSchema »»" targetNamespace=" www.vet1.org »»" attributeFormDefault="unqualified" elementFormDefault="qualified"> написал такой код выгрузки не могу понять как мне передать текст в элемент "header" чтоб получилось в итогк вот так интересует значение 444 как его туда записать ??? В пакете для типа "header" создал свойство "text" с формой Текст, но при попытке записать туда кодом {Обработка.Обработка1.Форма.Форма.Форма}: Поле объекта не обнаружено (text) header.text="444"; Помогите пойжалуста разъясните как же туда что то записать.
#1 by Лефмихалыч
попробую сразбегу - может не text, а value?
#2 by leech001
Скорректировал как вы и посоветовали до такого кода нужный вроде блок {Обработка.Обработка1.Форма.Форма.Форма}: Поле объекта не обнаружено (value) header.value="444";
#3 by МишельЛагранж
ну тогда header.text.value="444"; ... а вообще когда 1С документацию создаст??
#4 by leech001
я пробовал выше использовать код header.text="444"; {Обработка.Обработка1.Форма.Форма.Форма}: Поле объекта не обнаружено (text) header.text="444"; как видите он сразу ругается на поле "text" и походу как то правильно ругается если посмотреть код схемы то там вообще нет упоминания про свойство текст :( Однако в самом пакете откуда выгружал оно есть. Наверное текст туда как то передается без указания свойства текст. Но вот как ? Если бы небыло типа "header" то передал бы просто data.header="444"; но так как используется тип то такая запись сразу становится в системе не корректной :( И не дает так произвести внесение данных.
#5 by Feanor
Объясните, плз, зачем нужно это XDTO, по простому как-то
#6 by leech001
Для более удобной работы с XML. Как я понимаю если использовать XDTO то мы начинаем работать с XML как просто с объектом то есть абстрагируемся от его там тегов и прочей мути. Да и вариантов в 1С не особо много как по другому можно. 1. Последовательная работа нативно быстро, но очень геморна в коде. 2. DOM модель тормозная если xml достаточно большой. Она же его весь в память пихает :( ну а 3 тока сраное комбинирование DOM для схемы данных и XDTO чтоб там как объектами манипулировать. Вот я как то так понял эту хреновину.
#7 by Feanor
ага, спасибо, получается, это некоторый шаблон для хмл документа. по сабжу можно попробовать отладчиком посмотреть свойства объектов, мб чего-нить найдется, куда записать 444 нужно.
#8 by DmitrO
ну вообще-то, XDTO это тоже все в памяти.
#9 by DmitrO
и кстати, фабрику тебе можно по проще создать так:
#10 by leech001
DmitrO спасибо за подсказку, просто код из примера брал. А по делу можете подсказать как мне текст елементу то записать ?
#11 by DmitrO
Неа, не могу ничо сказать. Имхо XDTO подразумевает, что текст может существовать только в простом типе, в комплексном типе текста быть не должно.
#12 by DmitrO
Цитата из документации по 8.1 (т.к. документация по XDTO для 8.2 на ИТС отсутствует, видать засекречена, дети-шпионы мля) Свойства объектов должны представляться в XML только как элементы. Представление свойств как атрибутов XML не влияет на эквивалентность исходной и результирующей схем. Однако имеется ряд ограничений: ·      в атрибуте не может быть представлено значение объектного типа, - только типов-значений; ·      в атрибуте не могут быть представлены свойства с множественными значениями; ·      В случаях полиморфных типов у свойства, представленного как атрибут XML может происходить искажение типа значения. А именно, при присваивании значения свойству тип значения приводится точно к типу свойства, так как только для значения свойства в элементе XML можно указать атрибут xsi:type, который позволяет точно указать тип значения свойства. Как следствие, не надо использовать simpleContent для complexType, так как эта модель подразумевает использование для хранения значений свойств атрибутов и текста включающего элемента XML.
#13 by leech001
Вот же блин засада :( "Не надо использовать" а если такой XML заказчик передает и ведь он валидный в плане XML'я :( Спасибо DmitrO за разъяснения. Одно не понятно, зачем они тогда XDTO сделали если в таком подрезанном варианте оно только для внутренних реализация обмена и годно.
#14 by Feanor
1С-стайл ))))
#15 by DmitrO
XDTO это просто стандарт над стандартом. Сам xml шире чем XDTO. XDTO ограничивает xml. Получается, что тебе надо использовать DOM.
#16 by leech001
DmitrO спасибо так и делал, но решил извратиться и сделать на XDTO. Два дня курил его и вляпался в простейший вроде случай описания XML и не смог его описать с помощью этих фабрик :( Спасибо всем кто откликнулся на мой проблем ....
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С