Имя: Пароль:
1C
1C 7.7
v7: Загрузка из xml файла
0 KDS
 
29.05.13
08:40
Подскажите пож. что я делаю не так? Пытаюсь написать обработку загрузки xml документа, в ТЗ. Цикл обходит только один круг и всё, дальше не идёт, т.е. УзелТЧ.КоличествоУзлов = 1

...
<ТабличнаяЧасть>
<Номенклатура>
<Наименование>
Гипс
</Наименование>
<Код>
000000487
</Код>
<ЕдиницаИзмерения>
шт
</ЕдиницаИзмерения>
<Родитель>
<РодительКод>
000000007
</РодительКод>
<РодительНаименование>
Строительные материалы
</РодительНаименование>
</Родитель>
</Номенклатура>
<Количество>
3
</Количество>
<Цена>
161.59
</Цена>
<Сумма>
484.77
</Сумма>
<НДС>
87.26
</НДС>
<Всего>
572.03
</Всего>
<Номенклатура>
<Наименование>
Гипсокартон 1,2мх2,5мх12,5мм
</Наименование>
<Код>
000000711
</Код>
<ЕдиницаИзмерения>
м2
</ЕдиницаИзмерения>
<Родитель>
<РодительКод>
000000007
</РодительКод>
<РодительНаименование>
Строительные материалы
</РодительНаименование>
</Родитель>
</Номенклатура>
<Количество>
944.6
</Количество>
<Цена>
54.23
</Цена>
<Сумма>
51228.18
</Сумма>
<НДС>
9221.07
</НДС>
<Всего>
60449.25
</Всего>
...

  Данные=Документ.ПолучитьПодчиненныйПоНомеру(2);
  Для Сч=1 По Данные.КоличествоПодчиненных() Цикл
   Элем=Данные.ПолучитьПодчиненныйПоНомеру(Сч);
   УзелТЧ=Элем.ВыбратьУзлы("ТабличнаяЧасть");
  Для Сч3=0 По УзелТЧ.КоличествоУзлов-1 Цикл
     таб.НоваяСтрока();
     Наименование = УзелТЧ.ПолучитьУзел(Сч3).ПолучитьПодчиненныйПоНомеру(1);
     таб.Наименование = Наименование.ПолучитьПодчиненныйПоНомеру(1).Значение;
     таб.ЕдиницаИзмерения = Наименование.ПолучитьПодчиненныйПоНомеру(3).Значение;
     Количество = УзелТЧ.ПолучитьУзел(Сч3).ПолучитьПодчиненныйПоНомеру(2);
     таб.Количество=Количество.ПолучитьПодчиненныйПоНомеру(1).Значение;
     Цена = УзелТЧ.ПолучитьУзел(Сч3).ПолучитьПодчиненныйПоНомеру(3);
     таб.Цена=Цена.ПолучитьПодчиненныйПоНомеру(1).Значение;
     Сумма = УзелТЧ.ПолучитьУзел(Сч3).ПолучитьПодчиненныйПоНомеру(4);
     таб.Сумма=Сумма.ПолучитьПодчиненныйПоНомеру(1).Значение;
     НДС = УзелТЧ.ПолучитьУзел(Сч3).ПолучитьПодчиненныйПоНомеру(5);
     таб.НДС=НДС.ПолучитьПодчиненныйПоНомеру(1).Значение;
     Всего = УзелТЧ.ПолучитьУзел(Сч3).ПолучитьПодчиненныйПоНомеру(6);
     таб.Всего=Всего.ПолучитьПодчиненныйПоНомеру(1).Значение;
  КонецЦикла;
  КонецЦикла;
1 пипец
 
29.05.13
09:27
УзелТЧ=Элем.ВыбратьУзлы("ТабличнаяЧасть");

и ??
2 KDS
 
29.05.13
09:39
(1)что и?
3 пипец
 
29.05.13
09:57
4 KDS
 
29.05.13
10:11
(3) спасибо конечно, но как раз по этому примеру я и делал )))
5 пипец
 
29.05.13
10:25
гФайл =    гXMLАнализатор.СоздатьПоследовательноСчитываемыйДокумент();
   гФайл.СвязатьСФайлом(Файл);
   
   // Начинаем обход файла
   ТипТега = гФайл.Спуститься();
   ИмяТега    =    гФайл.СвойстваТекущегоУзла.Имя;
   
   
   //Становимся на самый верхний уровень
   Если ИмяТега="ORDRSP" Тогда
       ТипТега = гФайл.Спуститься();
       
       //Спускаемся на уровень ниже и в цикле обходим все объекты уровня
       Пока НЕ (ТипТега=3) Цикл
           ИмяТега    = гФайл.СвойстваТекущегоУзла.Имя;
           
   // Номер документа(обязательное поле)
           Если ИмяТега="NUMBER" Тогда  


--- из типового файла EDI
6 KDS
 
29.05.13
10:30
(5) спасибо, сейчас попробую
7 пипец
 
29.05.13
10:38
https://edi.su/docs/EXITE_INTEGRATION/
-
кстати вот их стандартные обработки в свободном доступе
-
может чем поможет
8 пипец
 
29.05.13
10:41
9 mikecool
 
29.05.13
10:44
иногда хмл файлы не совсем хмл бывают )
10 пипец
 
29.05.13
10:48
(9) таки да ;)))
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн