Имя: Пароль:
1C
1C 7.7
v7: помогите разобраться с загрузкой из xml
0 vvvadim70
 
03.08.14
18:47
Срочно потребовалось написать загрузчик из xml в 1c7.7.
Никак не могу разобрать как считать поля Address и Area


<?xml-stylesheet type="text/xsl" href="https://portal.rosreestr.ru/xsl/EGRP_FIR/Reestr_Extract_Object/03/Common.xsl"?>;
<Extract>
<eDocument CodeType="112" Scope="EGRP" Version="03">
<Sender Appointment="Государственный регистратор" Date_Upload="2014-04-30+04:00" E_Mail="значение отсутствует" FIO="Федеральный информационный ресурс" Kod="00.0.7.3" Name="Федеральный информационный ресурс" Region="99" Telephone="значение отсутствует"/>
<Recipient Kod="00.0.4.111"/>
</eDocument>
<ReestrExtract>
<DeclarAttribute ExtractCount="1" ExtractDate="30-04-2014" ExtractNumber="90-1011442" ExtractTypeCode="010000" ExtractTypeText="выписка из Единого государственного реестра прав на недвижимое имущество и сделок с ним" ID_KUVI="123456" NoticeCount="0" OfficeDate="30-04-2014" OfficeNumber="90-1011442" RefuseCount="0" Registrator="Федеральный информационный ресурс" RequeryDate="2014-04-30" RequeryNumber="90-1011442">
<Representativ>
значение отсутствует
</Representativ>
<ReceivAdress>
значение отсутствует
</ReceivAdress>
</DeclarAttribute>
<ExtractObjectRight>
<HeadContent>
<ID_REC_KUVI/>
<Title>
ФЕДЕРАЛЬНАЯ СЛУЖБА ГОСУДАРСТВЕННОЙ РЕГИСТРАЦИИ, КАДАСТРА И КАРТОГРАФИИ
</Title>
<DeptName>
Федеральный информационный ресурс
</DeptName>
<ExtractTitle>
ВЫПИСКА ИЗ ЕДИНОГО ГОСУДАРСТВЕННОГО РЕЕСТРА ПРАВ НА НЕДВИЖИМОЕ ИМУЩЕСТВО И СДЕЛОК С НИМ
</ExtractTitle>
<Content>
На основании запроса №90-1011442 от 2014-04-30, поступившего на рассмотрение 30-04-2014 , сообщаем, что в Едином государственном реестре прав на недвижимое имущество и сделок с ним зарегистрировано:
</Content>
</HeadContent>
<ExtractObject>
<ObjectRight>
<ObjectDesc>
<ID_Object>
35547658311
</ID_Object>
<CadastralNumber>
11:16:1704006:663
</CadastralNumber>
<ObjectType>
002002002000
</ObjectType>
<ObjectTypeText>
Помещение
</ObjectTypeText>
<Name>
квартира
</Name>
<Assignation_Code_Text>
Жилое
</Assignation_Code_Text>
<Area>
<Area>
47.1
</Area>
<AreaText>
47.1 Квадратный метр
</AreaText>
<Unit>
012002001000
</Unit>
</Area>
<Inv_No/>
<Floor>
3
</Floor>
<Address>
<ID_Address>
0
</ID_Address>
<Content>
Республика Коми, г. Воркута, ул. Дорожная, д. 6, кв. 10
</Content>
<Region Code="11" Name="Республика Коми"/>
<Code_OKATO>
87410000000
</Code_OKATO>
<Code_KLADR>
11000002000004400
</Code_KLADR>
<City Name="Воркута" Type="г"/>
<Street Name="Дорожная" Type="ул"/>
<Level1 Name="6" Type=""/>
<Apartment Name="10" Type=""/>
</Address>
</ObjectDesc>

        ФайлДанных=XMLАнализатор.СоздатьДокумент();
        ФайлДанных.Загрузить(ИмяВыбрФайла);
                              
        
        ВсеУзлы=ФайлДанных.ЭлементДокумента.ПолучитьПодчиненныйПоНомеру(1);

        
        Для х = 1 По ВсеУзлы.КоличествоПодчиненных() Цикл
            Адрес             = ВсеУзлы.ПолучитьПодчиненныйПоНомеру(х);
            
            АдресСтрокой    = Адрес.ПолучитьАтрибут("Address");    
            
            Сообщить("х ="+х);
            Сообщить("Адрес             "+Адрес);
            Сообщить("АдресСтрокой "+АдресСтрокой);
        КонецЦикла;
        
АдресСтрокой - пустая строка
1 КонецЦикла
 
03.08.14
18:58
Поля адрес нет, ваш КО

Насчет другого поля что-то странное... оно открывается хмл-нотепадом?

<Area>
<Area>

47.1

</Area>

На теги не ругается?

Считывать так же как и все остальное...
2 КонецЦикла
 
03.08.14
18:59
А... не весь код открыл

<Address>
<ID_Address>

Тут тоже несоответствие тегов
3 КонецЦикла
 
03.08.14
19:00
А... не, это ветка адрес
В общем открой в виде дерева - поймешь
4 КонецЦикла
 
03.08.14
19:02
Ареа тоже нашел... почему одинаково называется, непонятно
5 КонецЦикла
 
03.08.14
19:04
Адрес - это узел, содержащий кучу всего, а не атрибут
6 vvvadim70
 
03.08.14
19:08
Пытаюсь вытащить Area таким кодом

        ФайлДанных=XMLАнализатор.СоздатьДокумент();
        ФайлДанных.Загрузить(ИмяВыбрФайла);
                              
        
        ВсеУзлы=ФайлДанных.ЭлементДокумента.ПолучитьПодчиненныйПоНомеру(1);

        
        Для х = 1 По ВсеУзлы.КоличествоПодчиненных() Цикл
            Адрес             = ВсеУзлы.ПолучитьПодчиненныйПоНомеру(х);
            
            АдресСтрокой    = Адрес.ПолучитьАтрибут("Address");    
            
            Сообщить("х ="+х);
            Сообщить("Адрес             "+Адрес);
            Сообщить("АдресСтрокой "+АдресСтрокой);
        КонецЦикла;
        
пишет

Файл obj_26a40aec-7ede-47ab-825a-45f3b71fa807.xml
х =1
Адрес             OLE
АдресСтрокой
х =2
Адрес             OLE
АдресСтрокой
7 vvvadim70
 
03.08.14
19:11
а как считать значение адреса?

Address>
<ID_Address>
0
</ID_Address>
<Content>
Республика Коми, г. Воркута, ул. Дорожная, д. 6, кв. 10
</Content>

Адрес - это переменная Content?
8 КонецЦикла
 
03.08.14
20:38
(7) Получить атрибут Контент
9 vvvadim70
 
04.08.14
12:17
Пытаюсь получить атрибут Контент
        
        ВсеУзлы=ФайлДанных.ЭлементДокумента.ПолучитьПодчиненныйПоНомеру(1);

        
        Для х = 1 По ВсеУзлы.КоличествоПодчиненных() Цикл
            Адрес             = ВсеУзлы.ПолучитьПодчиненныйПоНомеру(х);
            
            АдресСтрокой    = Адрес.ПолучитьАтрибут("Address");    
            
            АдресContent    = Адрес.ПолучитьАтрибут("Content");    
        // ТАК ПОЛУЧИТЬ ???    
            
            
            Сообщить("х ="+х);
            Сообщить("Адрес             "+Адрес);
            Сообщить("АдресСтрокой "+АдресСтрокой);    
            Сообщить("АдресContent    "+АдресContent);    
            
            
            
        КонецЦикла;

Все равно выдает

х =1
Адрес             OLE
АдресСтрокой
АдресContent    
х =2
Адрес             OLE
АдресСтрокой
АдресContent
Ошибка? Это не ошибка, это системная функция.