Имя: Пароль:
1C
1С v8
Как записать назначение типа XML в элементе с атрибутами ?
0 Alex_MA
 
10.12.12
07:57
Всем доброго утра!

Создаю xml такого вида:

<?xml version="1.0" encoding="UTF-8"?>
<!--Выгрузка сообщения интегрированной системы-->
<Data xmlns:v8="http://v8.1c.ru/8.1/data" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" IDConfig="Энергосбыт" Transmission="Contracts">
   <СправочникСсылка.Контрагенты>
       <Предопределенный xsi:type="xsd:boolean">false</Предопределенный>
       <Ссылка xmlns:v8="http://v8.1c.ru/data" xsi:type="v8:UUID">62261353-a69f-11dd-b1b2-0050450097d9</Ссылка>
       <ПометкаУдаления xsi:type="xsd:boolean">false</ПометкаУдаления>
       <ЭтоГруппа xsi:type="xsd:boolean">false</ЭтоГруппа>
       <Родитель Предопределенный="Нет" ПометкаУдаления="Нет" ЭтоГруппа="Да" Наименование="Управление" Код="Г00000000034" Комментарий="" GUID="" Vsc_Iskra_quid="">
           <d4p1:UUID xmlns:d4p1="http://v8.1c.ru/data">765a088c-f6bf-11dd-bbe9-0050450097d9</d4p1:UUID>765a088c-f6bf-11dd-bbe9-0050450097d9</Родитель>

Как видно из xml элемент родитель имеет вложенный элемент d4p1:UUID.
Как мне обойтись без вложенного элемента, чтобы описание типа было в элементе "Родитель" ?

Спасибо за внимание. За советы и ответы премного благодарен.
1 Alex_MA
 
10.12.12
09:34
апну
2 banco
 
10.12.12
10:03
ЗаписьXML.ЗаписатьАтрибут(<ЛокальноеИмя>,<URIПространстваИмен>, <Значение>);
3 Alex_MA
 
10.12.12
10:23
(2)что такое вообще "xmlns:d5p1" ?
4 banco
 
10.12.12
10:37
(3) ты создаешь xml файл и у меня спрашиваешь?
5 Serginio1
 
10.12.12
11:43
А почему не используешь пакеты XDTO?
6 Alex_MA
 
10.12.12
14:46
(5)хочу использовать универсальную выгрузку объекта в xml
7 Alex_MA
 
10.12.12
14:50
Что то я вообще ничего не понимаю, есть xml:

<?xml version="1.0" encoding="UTF-8"?>
<!--Выгрузка сообщения интегрированной системы-->
<Data xmlns:v8="http://v8.1c.ru/8.1/data" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" IDConfig="Энергосбыт" Sender="EntMain" Transmission="Contracts">
   <CatalogRef.ДоговорыКонтрагентов>
       <СтандартныеРеквизиты>
           <xsd:Предопределенный xsi:type="xsd:boolean">false</xsd:Предопределенный>
           <d4p1:Ссылка xmlns="" xmlns:d4p1="http://v8.1c.ru/data" xsi:type="CatalogRef.ДоговорыКонтрагентов">c14d0d79-f48a-11e0-a16e-002264a3800e</d4p1:Ссылка>
           <xsd:ПометкаУдаления xsi:type="xsd:boolean">false</xsd:ПометкаУдаления>
           <xsd:ЭтоГруппа xsi:type="xsd:boolean">false</xsd:ЭтоГруппа>
           <Владелец Предопределенный="Нет" ПометкаУдаления="Нет" ЭтоГруппа="Нет" Наименование="Бизнес-Софт ООО" Код="У00000000064" НаименованиеПолное="Общество с ограниченной ответственностью &quot;Бизнес-Софт&quot;" Комментарий="" ДополнительноеОписание="" КодПоОКПО="57114551" ИНН="3525112510" КПП="352501001" ДокументУдостоверяющийЛичность="30.12.99" Покупатель="Да" Поставщик="Да" РасписаниеРаботыСтрокой="" СрокВыполненияЗаказаПоставщиком="0" НеЯвляетсяРезидентом="Нет" GUID="К0000366                                " Vsc_Iskra_quid="" vscЛНОУП="Нет" vscГрузополучатель="" vscАдресГрузополучателя="" vscУстав="Да" vscСведНалог="Да" vscСведГосРегистрация="Да" vscПризЛицензия="Нет" vscОКОГУ="49013" vscОКАТО="19401000000" vscОКВЭД="" vscОКФС="16" vscОГРН="1033500045765" vscОКПФ="65" vscПроверен="Да" vscТолькоДляСпециальныхРасчетов="Нет" vscНеИспользовать="Нет" vscНеПроверятьНаименование="Нет" vscНомерПостащикаУслуг="0" vscВыделятьОтдельнойСтрокойВОперативномКонтроле="Нет" vscХешПароляАвторизацииССайта="" ОбособленноеПодразделение="Нет">
               <d5p1:UUID xmlns:d5p1="http://v8.1c.ru/data">62261353-a69f-11dd-b1b2-0050450097d9</d5p1:UUID>62261353-a69f-11dd-b1b2-0050450097d9</Владелец>
           <Родитель Предопределенный="Нет" ПометкаУдаления="Нет" ЭтоГруппа="Нет" Наименование="" Код="          " ДержатьРезервБезОплатыОграниченноеВремя="Нет" ДопустимаяСуммаЗадолженности="0" ДопустимоеЧислоДнейЗадолженности="0" Комментарий="" КонтролироватьСуммуЗадолженности="Нет" КонтролироватьЧислоДнейЗадолженности="Нет" ОбособленныйУчетТоваровПоЗаказамПокупателей="Нет" ПроцентКомиссионногоВознаграждения="0" ПроцентПредоплаты="0" ЧислоДнейРезерваБезОплаты="0" УчетАгентскогоНДС="Нет" КонтролироватьДенежныеСредстваКомитента="Нет" РасчетыВУсловныхЕдиницах="Нет" Дата="01.01.0001 0:00:00" Номер="" РеализацияНаЭкспорт="Нет" ВестиПоДокументамРасчетовСКонтрагентом="Нет" СрокДействия="01.01.0001 0:00:00" НалоговыйАгентПоОплате="Нет" vscНомерДоговораВходящий="" vscДатаНачалаДействияДоговора="01.01.0001 0:00:00" vscСуммаПоДоговору="0" vscСуммаНДСПоДоговору="0" Vsc_Iskra_guid="" vscДатаНачалаДействия="01.01.0001 0:00:00" vscБессрочный="Нет" vscДатаСогласованияОднСх="01.01.0001 0:00:00" vscДатаОкончанияСрокаАренды="01.01.0001 0:00:00" vscДатаПодписанияДоговора="01.01.0001 0:00:00" vscЛьгота="Нет" vscПредметДоговора="" vscНомерРешения="" vscДатаПринятияРешения="01.01.0001 0:00:00" vscАИИСКУЭ="Нет" vscБезДоговора="Нет" vscНомерДляСортировки="0" vscЦельКредита="" vscСрокКредита="0" vscСуммаКредита="0" vscДатаПогашения="01.01.0001 0:00:00" vscКредитнаяЛиния="Нет" vscПроцентнаяСтавка="0" vscПериод="01.01.0001 0:00:00" vscТелефонПоставщика="" vscТелефонТСО="" vscОсобый="Нет" vscАгентскийДоговор="Нет" vscДоговорПотерь="Нет" vscВыставлятьПлатежноеТребование="Нет" vscХешПароляАвторизацииССайта="" vscUUIDИзБазыДоговоров="">
               <d5p1:UUID xmlns:d5p1="http://v8.1c.ru/data">00000000-0000-0000-0000-000000000000</d5p1:UUID>00000000-0000-0000-0000-000000000000</Родитель>
           <xsd:Наименование xsi:type="xsd:string">1372/2</xsd:Наименование>
           <xsd:Код xsi:type="xsd:string">ГЧ00028213</xsd:Код>
       </СтандартныеРеквизиты>
   </CatalogRef.ДоговорыКонтрагентов>
</Data>

Начинаю его читать:

Функция PutXML(data)
   
   ФайлДанных = ПолучитьИмяВременногоФайла("xml");
   
   data.BinaryData.Записать(ФайлДанных);    
   
   ЧтениеXML = Новый ЧтениеXML;
   ЧтениеXML.ОткрытьФайл(ФайлДанных);
   
   Пока ЧтениеXML.Прочитать() Цикл
       
       //-----------------------------------------------------
       // Начало элемента
       
       Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
           
           ЛокальноеИмя = ЧтениеXML.ЛокальноеИмя;
           ИмяЭлемента  = ЧтениеXML.Имя;
           
           // Чтение атрибутов
           
           Пока ЧтениеXML.ПрочитатьАтрибут() Цикл
               
               ИмяАтрибута      = ЧтениеXML.Имя;
               ЗначениеАтрибута = ЧтениеXML.Значение;
               
           КонецЦикла;
           
       КонецЕсли;
       
       //-----------------------------------------------------
       // Конец элемента    
       
       Если ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
           
           //...
       
       КонецЕсли;    
       
   КонецЦикла;    
   
   Возврат Истина;
   
КонецФункции


Количество атрибутов 6.
http://shot.qip.ru/009B7C-1GAPIlxYa/

Затем начинаю читать атрибуты у элемента "Data", он какого то "лешего" позиционируется на другом элементе
http://shot.qip.ru/009B7C-4GAPIlxYb/

Уважаемые коллеги, подскажите пожалуйста ЧЯДНТ ?
8 Alex_MA
 
10.12.12
15:55
Все заработало! Ура! Помог бубун.
Как решил проблему:

Сначала изменил имя переменной

Файл = Новый ЧтениеXML;
Файл.ОткрытьФайл(ФайлДанных);

В отладке ПрочитатьАтрибут(), хотя атрибутов 6 - он думал, что их очень много, нажал F5 зацикливания не произошло.

изменил имя переменной на ФайлXML - все заработало прекрасно!
Чудна 1С ка!
Независимо от того, куда вы едете — это в гору и против ветра!