skillful
16.12.2018, 21:33
В сокращенном файле 1.xml
<?xml version="1.0" encoding="UTF-8"?>
<ПриходнаяНакладная>
<Документ Num="1" Номер="000827" Дата="01.11.2018 19:00:00">
<Запасы Количество="600" ЕдиницаИзмерения="шт" Цена="18,05" Сумма="10 830"/>
<Запасы Количество="2" ЕдиницаИзмерения="шт" Цена="2 707,5" Сумма="5 415"/>
//2 строки - работает нормально
</Документ>
<Документ Num="2" Номер="000831" Дата="01.11.2018 19:00:00">
<Запасы Количество="6" ЕдиницаИзмерения="шт" Цена="229" Сумма="1 374"/>
//1 строка - Итератор для значения не определен
</Документ>
</ПриходнаяНакладная>
Обрабатывается кодом
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(1.xml);
Фабрика = Новый ФабрикаXDTO;
ОбXDTO = Фабрика.ПрочитатьXML(Чтение) ;
Для Каждого Документ из ОбXDTO.Документ Цикл
Для Каждого Запасы из Документ.Запасы Цикл
//Количество = Количество + Запасы.Количество;
Сообщить("");
КонецЦикла;
КонецЦикла;
Чтение.Закрыть();
Нормально работает, только когда строк <Запасы> больше одной в цикле <Документ>. Когда строка одна, то ошибка: Итератор для значения не определен. Как можно победить сей недуг???
<?xml version="1.0" encoding="UTF-8"?>
<ПриходнаяНакладная>
<Документ Num="1" Номер="000827" Дата="01.11.2018 19:00:00">
<Запасы Количество="600" ЕдиницаИзмерения="шт" Цена="18,05" Сумма="10 830"/>
<Запасы Количество="2" ЕдиницаИзмерения="шт" Цена="2 707,5" Сумма="5 415"/>
//2 строки - работает нормально
</Документ>
<Документ Num="2" Номер="000831" Дата="01.11.2018 19:00:00">
<Запасы Количество="6" ЕдиницаИзмерения="шт" Цена="229" Сумма="1 374"/>
//1 строка - Итератор для значения не определен
</Документ>
</ПриходнаяНакладная>
Обрабатывается кодом
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(1.xml);
Фабрика = Новый ФабрикаXDTO;
ОбXDTO = Фабрика.ПрочитатьXML(Чтение) ;
Для Каждого Документ из ОбXDTO.Документ Цикл
Для Каждого Запасы из Документ.Запасы Цикл
//Количество = Количество + Запасы.Количество;
Сообщить("");
КонецЦикла;
КонецЦикла;
Чтение.Закрыть();
Нормально работает, только когда строк <Запасы> больше одной в цикле <Документ>. Когда строка одна, то ошибка: Итератор для значения не определен. Как можно победить сей недуг???