|
Загрузка ТЧ xml документа в ТЗ | ☑ | ||
---|---|---|---|---|
0
1C2SS
05.06.13
✎
10:40
|
Подскажите есть ли готовые обработки/куски кода для загрузки табличной части документа, представленного в виде xml файла, в таблицу значений.
Для семерки видел код а для 8 не нашел. |
|||
1
hyperfocusin
05.06.13
✎
10:45
|
справа над темой букву Я видишь? там все есть
подсказка: 2я ссылка сверху |
|||
2
1C2SS
05.06.13
✎
11:50
|
Спасибо.
Перебираю xml вот так: Для Каждого Товар из nod.childNodes Цикл Для каждого nod из Товар.childNodes Цикл <Товары> <Товар> <Ид>048aae51-7b2e-11e3-975d-001517c5707d#656c42ff-81b6-11e2-93bf-001517c5701d</Ид> <Штрихкод>2000000207873</Штрихкод> Каким методом по красивому можно красиво вытащить штрихкод ? |
|||
3
1C2SS
05.06.13
✎
13:16
|
Вот что получилось:
&НаСервере Процедура ЧтениеДанных(Команда) ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Штрихкод"); ТЗ.Колонки.Добавить("Наименование"); ТЗ.Колонки.Добавить("ВидНоменклатуры"); ТЗ.Колонки.Добавить("ТипНоменклатуры"); ТЗ.Колонки.Добавить("НаименованиеКраткое"); ТЗ.Колонки.Добавить("НаименованиеПолное"); ТЗ.Колонки.Добавить("ЦенаЗаЕдиницу"); ТЗ.Колонки.Добавить("Количество"); ТЗ.Колонки.Добавить("Сумма"); ТЗ.Колонки.Добавить("Единица"); ТЗ.Колонки.Добавить("Коэффициент"); xmlDoc = Новый COMОбъект("MSXML2.DOMDocument"); xmlDoc.load("C:\document.xml"); nodeRoot = xmlDoc.documentElement; Товары=nodeRoot.selectSingleNode("//Документ/Товары"); Для Каждого Товар из Товары.childNodes Цикл Строка = ТЗ.Добавить(); Строка.Штрихкод = Товар.selectSingleNode("Штрихкод").nodeTypedValue; Строка.Наименование = Товар.selectSingleNode("Наименование").nodeTypedValue; Строка.ЦенаЗаЕдиницу = Товар.selectSingleNode("ЦенаЗаЕдиницу").nodeTypedValue; Строка.Количество = Товар.selectSingleNode("Количество").nodeTypedValue; Строка.Сумма = Товар.selectSingleNode("Сумма").nodeTypedValue; Строка.Единица = Товар.selectSingleNode("Единица").nodeTypedValue; Строка.Коэффициент = Товар.selectSingleNode("Коэффициент").nodeTypedValue; Реквизиты = Товар.selectSingleNode("ЗначенияРеквизитов"); Для Каждого Реквизит из Реквизиты.childNodes Цикл Если Реквизит.selectSingleNode("Наименование").nodeTypedValue = "ВидНоменклатуры" Тогда Строка.ВидНоменклатуры = Реквизит.selectSingleNode("Значение").nodeTypedValue; ИначеЕсли Реквизит.selectSingleNode("Наименование").nodeTypedValue = "ТипНоменклатуры" Тогда Строка.ТипНоменклатуры = Реквизит.selectSingleNode("Значение").nodeTypedValue; ИначеЕсли Реквизит.selectSingleNode("Наименование").nodeTypedValue = "НаименованиеКраткое" Тогда Строка.НаименованиеКраткое = Реквизит.selectSingleNode("Значение").nodeTypedValue; ИначеЕсли Реквизит.selectSingleNode("Наименование").nodeTypedValue = "НаименованиеПолное" Тогда Строка.НаименованиеПолное = Реквизит.selectSingleNode("Значение").nodeTypedValue; КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры Буду признателен за конструктивную критику. |
|||
4
Ёпрст
05.06.13
✎
13:18
|
взять готовые штатные поделки для выгрузки/загрузки документов и не ... писать своих,
а так - ну получил ты таз со строками, и че ? Дальше искать по наименованию будешь всё? удачи. |
|||
5
1C2SS
05.06.13
✎
13:25
|
Штатные не подходят. Разные конфигурации.
Искать по наименованию. А куда деваться ? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |