|
Загрузка из XML | ☑ | ||
---|---|---|---|---|
0
Evitaro
29.07.14
✎
16:47
|
никак не получается загрузить этот файл XML в ТЗ для дальнейшей обработки
файл типа: <Orders> <Order id="9057"> <Date>2014-07-24 10:47:58</Date> <Cost>455.00</Cost> <Cash>0.00</Cash> <State_id>4</State_id> <State_name>Оплачен</State_name> <Courier_id>24</Courier_id> <Courier_name>Аверьянов Руслан</Courier_name> <Oper_id>11</Oper_id> <Oper_name>Маргарита</Oper_name> <Description/> <Products> <Product id="152"> <Name>Американ экспресс большая</Name> <Cost>415.00</Cost> <Count>1</Count> </Product> <Product id="212"> <Name>Соус чесночный</Name> <Cost>40.00</Cost> <Count>1</Count> </Product> <Client id="7156"> <Name>Лиза</Name> <Address>ул.Угловая 17 первый подъезд позвонить</Address> <Phone>89632927914</Phone> </Client> <States> <State id="2"> <Name>Готовится</Name> <Date>2014-07-24 10:59:40</Date> </State> <State id="4"> <Name>Оплачен</Name> <Date>2014-07-24 11:13:43</Date> </State> </States> </Products> </Order> <Order id="9058"> <Date>2014-07-24 11:10:20</Date> <Cost>812.00</Cost> <Cash>0.00</Cash> <State_id>4</State_id> <State_name>Оплачен</State_name> <Courier_id>1</Courier_id> <Courier_name>Черноусько Михаил</Courier_name> <Oper_id>12</Oper_id> <Oper_name>Анастасия</Oper_name> <Description/> <Products> <Product id="190"> <Name>Мясная</Name> <Cost>445.00</Cost> <Count>1</Count> </Product> <Product id="196"> <Name>Чикаго</Name> <Cost>445.00</Cost> <Count>1</Count> </Product> <Product id="214"> <Name>Соус сырный</Name> <Cost>50.00</Cost> <Count>1</Count> </Product> <Product id="215"> <Name>Соус барбекю</Name> <Cost>50.00</Cost> <Count>1</Count> </Product> <Client id="200"> <Name>Зал</Name> <Address>Зал</Address> <Phone>0000</Phone> </Client> <States> <State id="4"> <Name>Оплачен</Name> <Date>2014-07-24 11:12:02</Date> </State> </States> </Products> </Order> |
|||
1
Wobland
29.07.14
✎
16:48
|
и что?
|
|||
2
Evitaro
29.07.14
✎
16:49
|
||||
3
Maxus43
29.07.14
✎
16:50
|
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ПутьКФайлу); Пока Чтение.Прочитать() Цикл // Прочитать «структурные части» элементов. // Проверить, какая часть элемента – текущая. Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда ИмяУзла = Чтение.Имя; Сообщить("--" + ИмяУзла); // Атрибуты элементов можно читать только если текущая часть – начало элемента Пока Чтение.ПрочитатьАтрибут() Цикл // Прочитать данные узла атрибута. ТипУзла = Чтение.ТипУзла; Имя = Чтение.Имя; Значение = Чтение.Значение; // Обработать полученные значения. // ... КонецЦикла; ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда // В примере просто выводим текст в окно сообщений. Сообщить("Текст:" + Чтение.Значение); ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда // В примере просто выводим признак конца элемента // в окно сообщений Сообщить("--Конец:" + Чтение.Имя); КонецЕсли; КонецЦикла (с) простые примеры разработки |
|||
4
Wobland
29.07.14
✎
16:50
|
а где </Orders>, кстати?
|
|||
5
Evitaro
29.07.14
✎
16:50
|
может поможет кто с кодом?
|
|||
6
ДенисЧ
29.07.14
✎
16:50
|
Ну рассказывай, как обгнял, как подрезал, что делал, что не получилось...
|
|||
7
Wobland
29.07.14
✎
16:50
|
(2) чего с этим делать?
|
|||
8
Evitaro
29.07.14
✎
16:52
|
загрузить в ТЗ
|
|||
9
Лефмихалыч
29.07.14
✎
16:52
|
(5) Maxus43 помог. Помогло?
|
|||
10
Wobland
29.07.14
✎
16:53
|
(8) это обязательно? у меня 1Ска не запущена
|
|||
11
Фокусник
29.07.14
✎
16:53
|
(8) Забыл добавить: "быстро, нах!" ;)
|
|||
12
Timon1405
29.07.14
✎
16:58
|
ТаблицаЗначений.ЗагрузитьИзXML (ValueTable.LoadFromXML)
ТаблицаЗначений (ValueTable) ЗагрузитьИзXML (LoadFromXML) Синтаксис: ЗагрузитьИзXML (<ЛюбыеДанные>, <ЛюбыеКолонки>) Параметры: <ЛюбыеДанные> (обязательный) Тип: Произвольный. Любые данные, которые необходимо загрузить в таблицу. <ЛюбыеКолонки> (необязательный) Тип: Строка. Список имен колонок, разделенных запятыми, по которым производится заполнение строк таблицы значений. Если параметр не указан или передана пустая строка, будет заполнена вся таблица значений. Описание: Заполняет таблицы значений данными из XML. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Пример: ТаблицаЗаказов.ЗагрузитьИзXML (ФайлXML, "Пицца,Соус"); |
|||
13
Evitaro
29.07.14
✎
16:59
|
Есть что-то типо этого, но не фурычит так
Процедура ЗагрузитьЗаказXML(ИмяФайла) Чтение = Новый ЧтениеXML; Чтение.ОткрытьФайл(ИмяФайла); ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("id"); ТЗ.Колонки.Добавить("Date"); ТЗ.Колонки.Добавить("Cost"); ТЗ.Колонки.Добавить("Cash"); ТЗ.Колонки.Добавить("State_id"); ТЗ.Колонки.Добавить("State_name"); ТЗ.Колонки.Добавить("Courier_id"); ТЗ.Колонки.Добавить("Courier_name"); ТЗ.Колонки.Добавить("Oper_id"); ТЗ.Колонки.Добавить("Oper_name"); ТЗ.Колонки.Добавить("Description"); ТЗ.Колонки.Добавить("id2"); ТЗ.Колонки.Добавить("Name"); ТЗ.Колонки.Добавить("Cost3"); ТЗ.Колонки.Добавить("Count"); ТЗ.Колонки.Добавить("id4"); ТЗ.Колонки.Добавить("Name5"); ТЗ.Колонки.Добавить("Address"); ТЗ.Колонки.Добавить("Phone"); ТЗ.Колонки.Добавить("id6"); ТЗ.Колонки.Добавить("Name7"); ТЗ.Колонки.Добавить("Date8"); Стр = ТЗ.Добавить(); Пока Чтение.Прочитать() Цикл Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента тогда Чтение.ПрочитатьАтрибут(); Атрибут = Чтение.Имя; КонецЕсли; Если Атрибут = "id" тогда Стр.id = Чтение.Значение; КонецЕсли; Если Атрибут = "Date" и Чтение.Значение <> "" тогда Стр.Date = Чтение.Значение; КонецЕсли; Если Атрибут = "Cost" и Чтение.Значение <> "" тогда Стр.Cost = Чтение.Значение; КонецЕсли; Если Атрибут = "Cash" и Чтение.Значение <> "" тогда Стр.Cash = Чтение.Значение; КонецЕсли; Если Атрибут = "State_id" и Чтение.Значение <> "" тогда Стр.State_id = Чтение.Значение; КонецЕсли; Если Атрибут = "State_name" и Чтение.Значение <> "" тогда Стр.State_name = Чтение.Значение; КонецЕсли; Если Атрибут = "Courier_id" и Чтение.Значение <> "" тогда Стр.Courier_id = Чтение.Значение; КонецЕсли; Если Атрибут = "Courier_name" и Чтение.Значение <> "" тогда Стр.Courier_name = Чтение.Значение; КонецЕсли; Если Атрибут = "Oper_id" и Чтение.Значение <> "" тогда Стр.Oper_id = Чтение.Значение; КонецЕсли; Если Атрибут = "Oper_name" и Чтение.Значение <> "" тогда Стр.Oper_name = Чтение.Значение; КонецЕсли; Если Атрибут = "Description" и Чтение.Значение <> "" тогда Стр.Description = Чтение.Значение; КонецЕсли; Если Атрибут = "id2" и Чтение.Значение <> "" тогда Стр.id2 = Чтение.Значение; КонецЕсли; Если Атрибут = "Name" и Чтение.Значение <> "" тогда Стр.Name = Чтение.Значение; КонецЕсли; Если Атрибут = "Cost3" и Чтение.Значение <> "" тогда Стр.Cost3 = Чтение.Значение; КонецЕсли; Если Атрибут = "Count" и Чтение.Значение <> "" тогда Стр.Count = Чтение.Значение; КонецЕсли; Если Атрибут = "id4" и Чтение.Значение <> "" тогда Стр.id4 = Чтение.Значение; КонецЕсли; Если Атрибут = "Name5" и Чтение.Значение <> "" тогда Стр.Name5 = Чтение.Значение; КонецЕсли; Если Атрибут = "Address" и Чтение.Значение <> "" тогда Стр.Address = Чтение.Значение; КонецЕсли; Если Атрибут = "Phone" и Чтение.Значение <> "" тогда Стр.Phone = Чтение.Значение; КонецЕсли; Если Атрибут = "id6" и Чтение.Значение <> "" тогда Стр.id6 = Чтение.Значение; КонецЕсли; Если Атрибут = "Name7" и Чтение.Значение <> "" тогда Стр.Name7 = Чтение.Значение; КонецЕсли; Если Атрибут = "Date8" и Чтение.Значение <> "" тогда Стр.Date8 = Чтение.Значение; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
14
Wobland
29.07.14
✎
17:01
|
(12) мощно
|
|||
15
Maxus43
29.07.14
✎
17:01
|
Пока Чтение.Прочитать() Цикл
Стр = ТЗ.Добавить(); Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента тогда Пока Чтение.ПрочитатьАтрибут() Цикл Стр[Чтение.Имя] = Чтение.Значение; КонецЦикла; КонецЕсли; типа чего то такого |
|||
16
Wobland
29.07.14
✎
17:01
|
(13) что планируешь делать?
|
|||
17
Evitaro
29.07.14
✎
17:10
|
хочу получить таблицу значений как в этом файлике экселя
https://cloud.mail.ru/public/46823742bcdb/123.xls |
|||
18
Wobland
29.07.14
✎
17:15
|
(17) мы поняли. что ты сделал для этого?
|
|||
19
Evitaro
29.07.14
✎
17:15
|
сделал (13)
|
|||
20
Wobland
29.07.14
✎
17:20
|
(19) почему не фруычит? разбирался?
|
|||
21
Evitaro
29.07.14
✎
17:30
|
(20) вроде бы да... узлы products и client не учёл
|
|||
22
Лефмихалыч
29.07.14
✎
17:30
|
(12) это в какой версии платформы?
|
|||
23
Лефмихалыч
29.07.14
✎
17:30
|
(21) а вот и не угадал
|
|||
24
Evitaro
29.07.14
✎
17:31
|
(23) почему?
|
|||
25
Лефмихалыч
29.07.14
✎
17:33
|
(24) потому, что есть еще ошибка
|
|||
26
Evitaro
29.07.14
✎
17:37
|
(25) Стр = ТЗ.Добавить();
эту ошибку я уже отловил и исправил) перед циклом запихнул |
|||
27
Wobland
29.07.14
✎
17:38
|
глядишь, скоро всё заработает и без нашей помощи
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |