Загрузка XML, 7.7. компонента V7Plus, первые шаги

Новая тема
"Доброго дня! Изучаю загрузку в 7.7 из XML файла.
Написал обработку загрузки.
Вот фрагмент файла

-
 956268
 Карта мира физ.+полит.2стор А2
 Физическая карта мира. Политическая карта мира
 95 5000
 2
 2024
 357992
 1
 10132
 

................
-
 10001
 Общественные науки. Право. Экономика.
 

-
 10002
 Философские науки. Социология. Психология.
 10001
 

-
................
-
 21615546
 1
 987318
 2
 119.0000
 76.0000
 9785170653867
 




Фот текст обработки

Корень = XML_Документ.ВыбратьУзел("NewDataSet");

////загружаем товары
Товары = Корень.ВыбратьУзлы("R_Names");
Для ш=1 По Товары.КоличествоУзлов() Цикл
тектовар = Товары.Получитьузел(ш-1);//ВОТ ТУТ И ВЫДАЕТ ОШИБКУ
   ТаблицаТоваров.НоваяСтрока();
ТаблицаТоваров.Артикул = тектовар.ВыбратьУзел("idarticul").Значение;
ТаблицаТоваров.Наименование = тектовар.ВыбратьУзел("c_name").Значение;
ТаблицаТоваров.ПолнНаименование = тектовар.ВыбратьУзел("cfullname").Значение;
ТаблицаТоваров.КодРодителя = тектовар.ВыбратьУзел("idNode").Значение;
КонецЦикла;
   
Группы = Корень.ВыбратьУзлы("R_Nodes");

//загружаем всю иерархию в таблицу значений
Для ш=1 По Группы.КоличествоУзлов() Цикл
ТекГруппа = Группы.ПолучитьУзел(ш-1);
ТаблицаГрупп.НоваяСтрока();                          
ТаблицаГрупп.КодГруппы = ТекГруппа.ВыбратьУзел("idNode").Значение;
ТаблицаГрупп.НаименованиеГруппы = ТекГруппа.ВыбратьУзел("cNode").Значение;
Попытка
ТаблицаГрупп.КодРодителя        = ТекГруппа.ВыбратьУзел("idParentNode").Значение;
Исключение
КонецПопытки;
КонецЦикла;


СтрокиДокумента = Корень.ВыбратьУзлы("O_Incom_Det");
Для ш=1 По СтрокиДокумента.КоличествоУзлов() Цикл  
ТекСтрока = СтрокиДокумента.ПолучитьУзел(ш-1);
ТаблицаДокумента.НоваяСтрока();
ТаблицаДокумента.КодТовара = ТекСтрока.ВыбратьУзел("id_name").Значение;
ТаблицаДокумента.Количество        = ТекСтрока.ВыбратьУзел("iquant").Значение;
ТаблицаДокумента.Цена = ТекСтрока.ВыбратьУзел("yprice").Значение;
ТаблицаДокумента.Штрихкод = ТекСтрока.ВыбратьУзел("cean").Значение;
ТаблицаДокумента.ЦенаРозничная        = ТекСтрока.ВыбратьУзел("ysupplprice").Значение;
КонецЦикла;



Вопрос: При загрузке узлов "R_Names" выскакивает ошибка на методе "Товары.Получитьузел()" - Поле агрегатного объекта не обнаружено (Получитьузел). В других же частях с другими узлами на этом методе все ок! Что ему не нравится?"
Боюсь, что по фрагменту файла не увидеть причину проблемы, залейте куда нибудь его целиком, а сюда ссылку
http://slil.ru/29605219 -файл
http://slil.ru/29605226 - обработка
Мда, причина веселая.
Надо писать: "ПолучитьУзел" вместо "Получитьузел", то есть, регистрозависимое написание.
НУ СПАСИБО!!!!!!!)))))))))))
Я второй день мучаюсь)))))Не ожидал такого
А нет случайно ссылки, гда можно прочитать про XML и его структуру, а именно что такое подчиненные узлы, просто узлы и атрибуты и их различие
Нет, ссылки нет. В двух словах: выделяются понятия:
- Документ
- Схема
- Узел
- Элемент
- Атрибут

Документ: структура из узлов, элементов, атрибутов. Не обязательно вся структура xml файла целиком. Любая подветка с вложенными объектами называется документом. Документ - не обязательно файл, так как документ может быть вирутальным и полностью описан в памяти. Лишь при необходимости документ сбрасывается в файл.

Схема: грубо, описание типов данных, размещенных в xml документе и их структуры. Очень похоже на технологию прототипов функций С++. 1С в типовых решениях по обмену (по крайней мере в 7.7) "упразднила" это понятие, вписывая в xml файл отдельным узлом правила переноса данных, которые по сути и есть схема, в которой написано, что, например, реквизит "Код" является текстовым с длиной такой то.

Узел: почти полная аналогия с каталогом в файловой системе на диске. То есть, это некий объект, который может являться родителем для других узлов и элементов. Соответственно, узлы, которые ссылаются на текущий как на родитель, являются подчиненными ему.

Элемент: аналог файла в файловой системе на диске. Он не может являться родителем для каких то других объектов, то есть, не может являться узлом.

Атрибут: некий произвольный дополнительный признак, который может быть задан хоть для узла, хоть для элемента. Например, в файловой системе это "Архивный", "Только чтение" и т.п.

Пример xml документа:
Корневой элемент -
                 - узел: Автобаза, атрибуты: "адрес=...", "год создания=..."
                   - узел: Гараж, атрибуты: тип="грузовые авто", "размер=...", "главный механик=..."
                     - элемент: Автомобиль, атрибуты: "модель=...", "госномер=..."
                     - элемент: Автомобиль, атрибуты: "модель=...", "госномер=..."
                     - ...
                   - узел: Гараж, атрибуты: тип="легковые авто", "размер=...", "главный механик=..."
                     - элемент: Автомобиль, атрибуты: "модель=...", "госномер=..."
                     - элемент: Автомобиль, атрибуты: "модель=...", "госномер=..."
                 - узел: Автобаза, атрибуты: "адрес=...", "год создания=..."
....

Соответственно, узлы "Гараж" являются подчиненными для конкретного узла "Автобаза".
В общем, что то в таком духе.
Читают тему
(гостей: 1)

Быстрый переход