Имя: Пароль:
1C
1С v8
Чтение из XML
0 ВежливаяТварь
 
24.01.13
18:35
Добрый день есть некий xml файл

Вот он

- <Root>
- <CatalogObject.Контрагенты>
 <Ref>f59345f4-6604-11e2-99ee-080039002fc6</Ref>
 <IsFolder>false</IsFolder>
 <DeletionMark>false</DeletionMark>
 <Parent>00000000-0000-0000-0000-000000000000</Parent>
 <Code>000000001</Code>
 <Description>Иванов</Description>
 </CatalogObject.Контрагенты>
- <CatalogObject.Склады>
 <Ref>f59345fa-6604-11e2-99ee-080039002fc6</Ref>
 <DeletionMark>false</DeletionMark>
 <Code>000000001</Code>
 <Description>Основной</Description>
 </CatalogObject.Склады>
- <CatalogObject.Номенклатура>
 <Ref>f59345f9-6604-11e2-99ee-080039002fc6</Ref>
 <IsFolder>false</IsFolder>
 <DeletionMark>false</DeletionMark>
 <Parent>00000000-0000-0000-0000-000000000000</Parent>
 <Code>000000003</Code>
 <Description>Блокнот</Description>
 </CatalogObject.Номенклатура>
- <DocumentObject.ПриходнаяНакладная>
 <Ref>f59345fb-6604-11e2-99ee-080039002fc6</Ref>
 <DeletionMark>false</DeletionMark>
 <Date>2013-01-24T11:09:01</Date>
 <Number>000000001</Number>
 <Posted>true</Posted>
 <Контрагент>f59345f4-6604-11e2-99ee-080039002fc6</Контрагент>
 <Склад>f59345fa-6604-11e2-99ee-080039002fc6</Склад>
- <Товары>
- <Row>
 <Номенклатура>f59345f9-6604-11e2-99ee-080039002fc6</Номенклатура>
 <Количество>2</Количество>
 <Цена>2</Цена>
 <Сумма>4</Сумма>
 </Row>
 </Товары>
 </DocumentObject.ПриходнаяНакладная>
- <CatalogObject.БанковскиеСчета>
 <Ref>bffe24ea-6606-11e2-99ee-080039002fc6</Ref>
 <DeletionMark>false</DeletionMark>
 <Code>000000001</Code>
 <Description>Основной банковский счет</Description>
 </CatalogObject.БанковскиеСчета>
- <DocumentObject.ПлатежноеПоручение>
 <Ref>05b76db9-6607-11e2-99ee-080039002fc6</Ref>
 <DeletionMark>false</DeletionMark>
 <Date>2013-01-24T11:18:33</Date>
 <Number>000000001</Number>
 <Posted>true</Posted>
 <Счет>bffe24ea-6606-11e2-99ee-080039002fc6</Счет>
 <ДокументРасчетов>f59345fb-6604-11e2-99ee-080039002fc6</ДокументРасчетов>
 </DocumentObject.ПлатежноеПоручение>
 </Root>


И есть код который его считывает так вот считывает он его почему то через элемент. Код:

ЧтениеXML=Новый ЧтениеXML();
   ЧтениеXML.ОткрытьФайл(ПутьКФайлу);
   
   Пока ЧтениеXML.Прочитать()  Цикл
       Если ВозможностьЧтенияXML(ЧтениеXML) Тогда
           ЗагружаемыйОбъект=ПрочитатьXML(ЧтениеXML);
           ТипЗначения=ТипЗнч(ЗагружаемыйОбъект);
           ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗначения);
           Если Метаданные.Справочники.Содержит(ОбъектМетаданных) Тогда
               Имя=Метаданные.НайтиПоТипу(ТипЗначения).Имя;
               СсылкаНаСправочник=Справочники[Имя].НайтиПоНаименованию(ЗагружаемыйОбъект.Наименование,Истина);
               Если НЕ ЗначениеЗаполнено(СсылкаНаСправочник) Тогда
                   ЗагружаемыйОбъект.Записать();    
               КонецЕсли;
           Иначе    
               ЗагружаемыйОбъект.Записать();    
           КонецЕсли;            
       КонецЕсли;
   КонецЦикла;
   
   ЧтениеXML.Закрыть();

Где я допустил ошибку?
1 Wobland
 
24.01.13
18:37
сравни с моим, не хочу думать ;)
Процедура ЗагрузитьОбъектыНажатие(Элемент)
   
   Чтение = Новый ЧтениеXML;
   Чтение.ОткрытьФайл(ИмяфайлаЗагрузки);
   Чтение.Прочитать();
   Чтение.Прочитать();
   мСчетчик = 0;
   Пока Истина Цикл
       Попытка
           мОбъект = ПрочитатьXML(Чтение);
       Исключение
           Возврат;
       КонецПопытки;
       мОбъект.ОбменДанными.Загрузка = Истина;
       мОбъект.Записать();
       мСчетчик = мСчетчик + 1;
   КонецЦикла;
   Сообщить(Строка(мСчетчик));
   
КонецПроцедуры
2 ВежливаяТварь
 
24.01.13
18:43
Спасибо очень помогло.
3 rotting
 
24.01.13
18:46
(2) какая вежливая)))
4 Конфигуратор1с
 
24.01.13
19:04
(1) а зачем два раза прочитать?
5 Wobland
 
24.01.13
19:05
(4) не помню. там первый раз вроде как заголовок хмл или что-то в этом духе