Имя: Пароль:
1C
1С v8
загрузка справочника из xml
0 r2d24
 
23.12.13
16:03
написал обработку, выгрузил справочник номенклатура в xml- файл. Получилось вот что:
  <?xml version="1.0" encoding="UTF-8" ?>
- <Запись_данных>
- <Запись_справочника_НОМЕНКЛАТУРА>
- <ГРУППЫ>
  <Номенклатура Код="00000000001" Наименование="Музакальные инструменты" />
  <Номенклатура Код="00000000003" Наименование="Электро" />
  <Номенклатура Код="00000000002" Наименование="Электронные" />
  </ГРУППЫ>
- <ЭЛЕМЕНТЫ_СПРАВОЧНИКА>
  <Номенклатура Код="00000000004" Наименование="Бритва" ВидНоменклатуры="Товар" />
  <Номенклатура Код="00000000005" Наименование="Молоток" ВидНоменклатуры="Товар" />
  <Номенклатура Код="00000000006" Наименование="Пианино" ВидНоменклатуры="Материал" />
  <Номенклатура Код="00000000007" Наименование="Суп" ВидНоменклатуры="Полуфабрикат" />
  <Номенклатура Код="00000000008" Наименование="Творог" ВидНоменклатуры="Полуфабрикат" />
  </ЭЛЕМЕНТЫ_СПРАВОЧНИКА>
  </Запись_справочника_НОМЕНКЛАТУРА>
  </Запись_данных>

Выгрузил и группы и элементы справочника. Знаю, что выгрузил не все реквизиты, что бы производить из этого файла загрузку в 1с, но мне пока нужно другое.
Ниже я написал код, который читает xml- файл (doc.xml) и создает группы в справочнике номенклатуре
Вопрос: какое условие надо написать, что бы из xml- файла, читались и загружались только "ГРУППЫ", а "ЭЛЕМЕНТЫ_СПРАВОЧНИКА" не загружались.

ЗагXML = новый ЧтениеXML;
    ЗагXML.ОткрытьФайл("d:\doc.xml");
    Номен = Null;
    Пока ЗагXML.Прочитать() Цикл
        Если ЗагXML.ТипУзла=ТипУзлаXML.НачалоЭлемента Тогда  
            //Если ЗагXML.ПолучитьАтрибут("ГРУППЫ") тогда                
                Если ЗагXML.Имя = "Номенклатура" тогда
                    РезПоиска=Справочники.Номенклатура.НайтиПоКоду(ЗагXML.ПолучитьАтрибут("Номенклатура Код"));
                    Если РезПоиска.Пустая() Тогда
                        Номен = Справочники.Номенклатура.СоздатьГруппу();                 
                        Номен.Наименование = ЗагXML.ПолучитьАтрибут("Наименование");
                        //Номен.ВидНоменклатуры = ЗагXML.ПолучитьАтрибут("ВидНоменклатуры");
                        Номен.Код=ЗагXML.ПолучитьАтрибут("Номенклатура Код");
                        Номен.Записать();
                    КонецЕсли;            
                КонецЕсли;
            //конецесли;
        КонецЕсли;
    КонецЦикла;
    ЗагXML.Закрыть();
    Сообщить("загрузка прошла!");
1 1Сергей
 
23.12.13
16:05
Переменную ФлагСекцияГруппы заведи
2 х86
 
23.12.13
16:09
(0)универсальныйобменданнымиxml.epf
3 r2d24
 
23.12.13
16:11
(2) нет, мне нужно написать самому обработку. И в код этой обработки я заглядывал, ничего не понял
4 r2d24
 
23.12.13
16:12
(1) можешь показать
5 Wobland
 
23.12.13
16:13
(3) всякий пишущий свою выгрузку-загрузку иерархических данных натыкается на разнообразные грабли. не насилуй себя, возьми КД
6 х86
 
23.12.13
16:16
(0)При выгрузке добавь Атр ЭтоГруппа, заполни его по Ссылка.ЭтоГруппа
при загрузке анализируй
7 r2d24
 
23.12.13
16:29
не, все равно не могу понять, что требуется
8 х86
 
23.12.13
16:31
(7)ок,
какое слово в (6) тебе не понятно?
9 r2d24
 
23.12.13
16:33
(8) при выгрузке добавил атрибут ЭтоГруппа, но как писать условие при загрузке?
10 х86
 
23.12.13
16:37
(9)читаешь атрибут если он истина (или что там у тебя) элемент пропускаешь
11 r2d24
 
23.12.13
16:41
(10) я xml начал изучать на прошлой неделе вместе с Excel, так мне просто еще не понятно как работать с этими атрибутами
12 1Сергей
 
23.12.13
16:43
(11) у тебя в (0) исполльзуется все необходимые операторы
13 Wobland
 
23.12.13
16:44
(11) с кодом и наименованием ты справился, но третий атрибут уже переполняет твой мозг?
14 sapphire
 
23.12.13
16:47
(0) Извращенец.
Колесо уже изобрели. Давно.
15 r2d24
 
23.12.13
16:49
Если ЗагXML.ПолучитьАтрибут("ЭтоГруппа")="Да" тогда
Вот оно. Я почему то был уверен, что нужно что то другое.
Ладно, спасибо