Имя: Пароль:
1C
1С v8
Чтение XML
0 Mad88
 
08.06.15
11:33
Добрый день.
1С:Предприятие 8.3 (8.3.5.1517)
Бухгалтерия предприятия, редакция 3.0 (3.0.39.62)
Пишу обработку по загрузке XML файла вида
Документ Вид="ОказаниеУслуг" НомерДок="010787" ДатаДок="2015-05-13" ЧЧ="9" ММ="24" СС="51" Комментарий="" Договор="Основной договор" Проведен="1" СчфНомер="010787" СчфДата="2015-05-13">
  <Контрагент Наименование="ИНТЕРПРОМТЕХ" Родитель="" ПолнНаименование="ООО "ИНТЕРПРОМТЕХ"" ЮридическийАдрес="129366, г. Москва, Ракетный бульвар, д. 11, корп. 1, кв. 21" ПочтовыйАдрес="127287, г. Москва, ул. 2-я Хуторская д. 38 А, стр. 1" Телефоны="(495) 772-96-76" ИНН="7708196201/771701001" />
  <ТабЧасть Номенклатура="Транспортно-экспедиционные услуги (Москва-Екатеринбург)" Количество="0.2" Цена="2966.1" Сумма="593.22" НДС="106.78" Всего="700" />
  <ТабЧасть Номенклатура="Транспортно-экспедиционные услуги (Москва-Екатеринбург)" Количество="0.2" Цена="2966.1" Сумма="593.22" НДС="106.78" Всего="700" />


Вот мой код
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(Объект.ВыборФайла);
Пока ЧтениеXML.Прочитать() Цикл
        Если ЧтениеXML.Имя = "Документ" Тогда
                КонецЕсли;
Если ЧтениеXML.Имя = "Контрагент" Тогда
КонецЕсли;
Если ЧтениеXML.Имя = "ТабЧать"
КонецЕсли;

Суть проблемы в том что при чтении конкретного примера код в цикле 2 раза проходит по контрагенту и 4 раза по ТаблЧати, почему так? Подскажите пожалуйста.
1 Легат
 
08.06.15
11:37
Начало узла - конец, не? А DOM не лучше ли подойдёт?
2 Ёпрст
 
08.06.15
11:37
2 документа
© Капитан очевидность
3 RomaH
 
naïve
08.06.15
11:42
(1) лучше
4 RomaH
 
naïve
08.06.15
11:43
(0)
    Данные = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
5 Jokero
 
08.06.15
12:08
Если ЧтениеXML.Имя = "Документ" И ЧтениеXML..ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
  Пока ЧтениеXML.ПрочитатьАтрибут() цикл
    ....
  КонецЦикла;
КонецЕсли;