|
v7: Не получается прочитать подчиненный узел xml документа | ☑ | ||
---|---|---|---|---|
0
katerinaUniv
07.06.15
✎
17:07
|
Добрый вечер! У меня не получается прочитать подчиненный узел файла xml. Код вот:
ВыборкаДанных = XML_Документ.ВыбратьУзел("DISTR_CONN_ID"); Если ПустоеЗначение(ВыборкаДанных) = 1 Тогда Сообщить("Файл не является файлом выгрузки данных с мобильного устройства!", "!!!"); Возврат; КонецЕсли; ВыборкаДок = ВыборкаДанных.ВыбратьУзлы("ORDER"); Для Сч = 0 По ВыборкаДок.КоличествоУзлов() - 1 Цикл Эл = ВыборкаДок.ПолучитьУзел(Сч); Сообщить("!ID!"+Эл.ПолучитьАтрибут("ID")); Сообщить("!TYPE!"+эл.ПолучитьАтрибут("TYPE")); Сообщить("!SAFARI_ID!"+эл.ВыбратьУзел("SAFARI_ID").Значение); Сообщить("!INV_NO!"+эл.ВыбратьУзел("INV_NO").Значение); Сообщить("!SHIP_TO_ID!"+эл.ВыбратьУзел("SHIP_TO_ID").Значение); Сообщить("!SOLD_TO_ID!"+эл.ВыбратьУзел("SOLD_TO_ID").Значение); Сообщить("!ORDER_DATE!"+эл.ВыбратьУзел("ORDER_DATE").Значение); Сообщить("!DELIVERY_DATE!"+эл.ВыбратьУзел("DELIVERY_DATE").Значение); Сообщить("!COMMENTS!"+эл.ВыбратьУзел("COMMENTS").Значение); Сообщить("!TOTAL_AMOUNT!"+эл.ВыбратьУзел("TOTAL_AMOUNT").Значение); Сообщить("!TAXES!"+эл.ВыбратьУзел("TAXES").Значение); Сообщить("!DISCOUNT!"+эл.ВыбратьУзел("DISCOUNT").Значение); Сообщить("!GROSS!"+эл.ВыбратьУзел("GROSS").Значение); Сообщить("!SALES_AGENT_ID!"+эл.ВыбратьУзел("SALES_AGENT_ID").Значение); Сообщить("!CURRENCY!"+эл.ВыбратьУзел("CURRENCY").Значение); Сообщить("!CASH_COLLECTION!"+эл.ВыбратьУзел("CASH_COLLECTION").Значение); Сообщить("!ABC_CLS!"+эл.ВыбратьУзел("ABC_CLS").Значение); Сообщить("!SALES_AGENT_NAME!"+эл.ВыбратьУзел("SALES_AGENT_NAME").Значение); ВыборкаПродукт = ВыборкаДок.ВыбратьУзлы("PRODUCT"); Для сч1 = 0 По выборкаПродукт.КоличествоУзлов() - 1 Цикл элПрод = ВыборкаПродукт.ПолучитьУзел(Сч); Сообщить("!PRODUCT_ID!"+элПрод.ВыбратьУзел("PRODUCT_ID").Значение);//элПрод.ВыбратьУзел("PRODUCT_ID").Значение); Сообщить("!QTY!"+элПрод.ВыбратьУзел("QTY").Значение); Сообщить("!LIST_PRICE!"+элПрод.ВыбратьУзел("LIST_PRICE").Значение); Сообщить("!UOM!"+элПрод.ВыбратьУзел("UOM").Значение); Сообщить("!TAXES!"+элПрод.ВыбратьУзел("TAXES").Значение); Сообщить("!DISCOUNT!"+элПрод.ВыбратьУзел("DISCOUNT").Значение); Сообщить("!GROSS!"+элПрод.ВыбратьУзел("GROSS").Значение); Сообщить("!CURRENCY!"+элПрод.ВыбратьУзел("CURRENCY").Значение); Сообщить("!DESCRIPTION!"+элПрод.ВыбратьУзел("DESCRIPTION").Значение); КонецЦикла; КонецЦикла; |
|||
1
katerinaUniv
07.06.15
✎
17:07
|
Пока идет только метод "Сообщить", чтобы проверить, правильно ли читается файл. Дальше пойдет его обработка.
|
|||
2
katerinaUniv
07.06.15
✎
17:08
|
структура файла вот:
Сегмент Сегмент Сегмент Узел Атрибуты Описание Пример значения Тип данных DISTR_CONN_ID ID ID подключения дистрибьютора nvarchar-20 ORDER TYPE S,R char-1 ID ID заказа в системе SAFARI nvarchar-20 SAFARI_ID Код ТТ в системе DMS nvarchar-20 INV_NO Ссылка на накладную (для возратов, TYPE=R) nvarchar-30 SHIP_TO_ID Код адреса доставки в системе дистрибьютора nvarchar-20 SOLD_TO_ID Код ЮЛ в системе дистрибьютора nvarchar-20 ORDER_DATE Дата заказа 2013.07.22 00:00:00 datetime DELIVERY_DATE Ожидаемая дата доставки 2013.07.23 00:00:00 datetime COMMENTS Комментарий - Доставка до 14:00 nvarchar-100 TOTAL_AMOUNT Общая сумма заказа с учетом всех скидок и налогов 21240.09870 (5 знаков после запятой, в качестве разделителя используется точка) numeric 26,5 TAXES Сумма всех налогов по заказу 3240.67800 (пять знаков после запятой, в качестве разделителя используется точка) numeric 26,5 DISCOUNT Сумма всех скидок по продукту 2000.34897 (пять знаков после запятой, в качестве разделителя используется точка) numeric 26,5 GROSS Сумма без учета налогов и скидок 20000.00000 (пять знаков после запятой, в качестве разделителя используется точка) numeric 26,5 SALES_AGENT_ID Код ТП nvarchar-20 CURRENCY Валюта RUB nvarchar-4 CASH_COLLECTION Оплата осуществляется наличными или нет 1 Bit ABC_CLS Категория заказа A B nvarchar-20 SALES_AGENT_NAME Имя ТП nvarchar-20 PRODUCT PRODUCT_ID Код продукта в системе Ферреро 77084356 nvarchar-20 QTY Количество 54 numeric 26,5 LIST_PRICE Цена по прайс-листу за единицу товара 120.00000 (пять знаков после запятой, в качестве разделителя используется точка) numeric 26,5 UOM Единица измерения (потребительская упаковка ФЕРРЕРО) CU nvarchar-20 TAXES Сумма всех налогов по продукту 3240.76540 (пять знаков после запятой, в качестве разделителя используется точка) numeric 26,5 DISCOUNT Сумма всех скидок по продукту 2000.79000 (пять знаков после запятой, в качестве разделителя используется точка) numeric 26,5 GROSS Сумма без учета налогов и скидок 20000.10000 (пять знаков после запятой, в качестве разделителя используется точка) numeric 26,5 CURRENCY Валюта RUB nvarchar-4 DESCRIPTION Описание продукта nvarchar-100 |
|||
3
katerinaUniv
07.06.15
✎
17:08
|
Есть корень DistrConn_ID, ему подчинен узел Order
|
|||
4
ДенисЧ
07.06.15
✎
17:09
|
Я прочитаю файл за 10 000 рублей!
|
|||
5
katerinaUniv
07.06.15
✎
17:09
|
Order, точнее, сегмент
|
|||
6
katerinaUniv
07.06.15
✎
17:09
|
(4)я сама читаю его намного дешевле...
|
|||
7
katerinaUniv
07.06.15
✎
17:09
|
и ему подчинен сегмент Product
|
|||
8
ДенисЧ
07.06.15
✎
17:10
|
(6) Дешевле ты его не читаешь, а задаёшь вопросы, как прочитать )))
|
|||
9
katerinaUniv
07.06.15
✎
17:27
|
(8)тогда скажу прямо - денег нет(
|
|||
10
katerinaUniv
07.06.15
✎
17:48
|
Волшебный Форум уже не тот...
|
|||
11
katerinaUniv
07.06.15
✎
18:21
|
для тех, кто попадет в аналогичную ситуацию отписываю решение:
выбирать узлы надо у переменной Эл, а не выборкаДок |
|||
12
spectre1978
07.06.15
✎
18:48
|
(10) выходной, вообще народу мало, а семерочников ишшо меньше :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |