Имя: Пароль:
1C
1С v8
Как найти элемент по id файле XML модели DOM при загрузке
0 e053nk
 
11.03.12
15:44
Две базы 8 для одностороннего обмена: Источник и Приемник. Из базы Источника выгружаются данные, есть атрибут,который является идентификатором элемента. В базе Источник пишу:

УзелЭлемента.УстановитьАтрибут("id",Строка(ВыгрЭле мент.УникальныйИдентификатор()));
УзелЭлемента.УстановитьАтрибутИдентификатор("id",и стина);
Дальше если проверять здесь же при выгрузке
УзелЭлемента.Атрибуты[0].ЯвляетсяИдентификатором -возвращает Истина.

При загрузке в Приемник вставил строки:

ЭлементЗагрузки2Ур=ДанныеDOM.ПолучитьЭлементПоИден тификатору(СоответствиеРеквизитов.Получить("ОсновнойДоговорКонтрагента"));
СоответствиеРеквизитов.Получить("ОсновнойДоговорКонтрагента") - это набор символов и он точно присутствует в файле.
Стал в базе приемнике проверять файл обмена - на тех же самых артиубтах
УзелЭлемента.Атрибуты[0].ЯвляетсяИдентификатором = возвращает Ложь. Т.е. не видит загрузка что этот атрибут содержит id элемента файла XML.
Что я сделал не правильно-я не понимаю.
Как указать атрибут с типом id элемента XML, чтобы искать по нему данные потом при загрузке из файла?
1 acsent
 
11.03.12
15:47
а как это в файле выглядит?
2 e053nk
 
11.03.12
15:51
кусок файла - не теги последние не привожу- много

<?xml version="1.0" encoding="UTF-8"?>
<Данные xmlns="http://www.w3.org/2001/XMLSchema" Откуда="УТ10.3.13.2" Куда="БП8.2" ДатаНачала="01.02.2006 0:00:00" ДатаКонца="27.02.2012 0:00:00" ИннОрганизации="7723240663" Наименование="Cтройснаб">
   <Справочники>
       <Валюты>
           <Элемент id="5e36e89d-93e2-4760-9e19-0e234985fc9c_848a00112f43529a11d955bcbd72d8f9" ЭтоГруппа="Нет" Код="643" Наименование="руб." Родитель="">
               <РеквизитСправочника ИД="НаименованиеПолное" Тип="Строка" Значение="Российский рубль"/>
               <РеквизитСправочника ИД="ПараметрыПрописиНаРусском" Тип="Строка" Значение="рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2"/>
           </Элемент>
           <Элемент id="5e36e89d-93e2-4760-9e19-0e234985fc9c_848a00112f43529a11d955bccbcf4923" ЭтоГруппа="Нет" Код="978" Наименование="EUR" Родитель="">
               <РеквизитСправочника ИД="НаименованиеПолное" Тип="Строка" Значение="ЕВРО"/>
               <РеквизитСправочника ИД="ПараметрыПрописиНаРусском" Тип="Строка" Значение="евро, евро, евро, м, цент, цента, центов, м, 2"/>
           </Элемент>
           <Элемент id="5e36e89d-93e2-4760-9e19-0e234985fc9c_848a00112f43529a11d955bcbd72d8fa" ЭтоГруппа="Нет" Код="840" Наименование="USD" Родитель="">
               <РеквизитСправочника ИД="НаименованиеПолное" Тип="Строка" Значение="Доллар США"/>
               <РеквизитСправочника ИД="ПараметрыПрописиНаРусском" Тип="Строка" Значение="доллар, доллара, долларов, м, цент, цента, центов, м, 2"/>
           </Элемент>
       </Валюты>
3 Serginio1
 
11.03.12
16:36
Сейчас занимаюсь выгрузкой загрузкой из разных конфигураций через Объекты XDTO и схему базы.
Есть нюансы но обмен прозрачнее и быстрее.
4 e053nk
 
11.03.12
23:27
(3)  я согласен, что мой вариант обмена возможно не идеален. Но мне для понимания работы XML в 1с крайне желательно понять -почему я не могу назначить атрибут с типом ID  в файле XML, для дальнейшей работы с ним при загрузке....И как вообще атрибут  с типом ID  от XML работает на языке 1с?
5 Serginio1
 
12.03.12
11:36
Вообще DOM в 1С некорректно работает v8: Неправильно работает ДокументDOM.ПолучитьЭлементыПоИмени
когда этих ссылок множество
6 Serginio1
 
12.03.12
11:48
Кстати а где в файле прописывается твой АтрибутИдентификатор. Или он является атрибутом DOM
7 e053nk
 
12.03.12
16:27
(6) Атрибут Идентификатор устанавливаю парой методов при выгрузке:

УзелЭлемента.УстановитьАтрибут("id",Строка(ВыгрЭлемент.УникальныйИдентификатор()));
УзелЭлемента.УстановитьАтрибутИдентификатор("id",истина);
Причем, напомню, если в конце формирования (при выгрузке)  файла попробовать найти элемент:
ДанныеDOM.ПолучитьЭлементПоИдентификатору(СоответствиеРеквизитов.Получить("ОсновнойДоговорКонтрагента")) - он находит его,а вот при загрузке во второй базе -уже не видит
8 Serginio1
 
12.03.12
17:09
Так в DOM он может и существует а в файле нет.
9 e053nk
 
12.03.12
17:51
Как сделать что бы и файле появился?
И еще: DOM  что, не принимает основные типы XML? ведь id-стандартный тип XMLа
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан