|
загрузка справочника из 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.ПолучитьАтрибут("ЭтоГруппа")="Да" тогда
Вот оно. Я почему то был уверен, что нужно что то другое. Ладно, спасибо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |