0
roshyroshy
08.09.17
✎
09:48
|
есть xml примерно след содержания:
<yml_catalog date="2017-09-08 00:00">
<shop>
<name>magazin</name>
<url>;
<platform>Shop-Script</platform>
<currencies>
<currency id="RUB" rate="1"/>
<currency id="USD" rate="59.25"/>
<currency id="EUR" rate="69.650000000000006"/>
</currencies>
</shop>
</yml_catalog>
в 1с создала обработку, в ней табличную часть - валюты с реквизитами id и rate. плюс - сделала форму, куда прописала кнопку на чтение xml:
&НаКлиенте
Процедура выборфайла(Команда)
режим = режимдиалогавыборафайла.Открытие;
диалоготкрытияфайла = новый диалогвыборафайла(режим);
фильтр = "xml|*.xml";
диалоготкрытияфайла.фильтр = фильтр;
если диалоготкрытияфайла.выбрать() тогда
файлхмл = диалоготкрытияфайла.выбранныефайлы;
для каждого фхмл из файлхмл цикл
выборфайлаНаСервере(фхмл);
конеццикла;
конецесли;
обновитьинтерфейс();
КонецПроцедуры
далее - нужно значения из currencies перенести в созданную табличку, но там фича с уровнем вложенности, определение куда и что писать вкупе с моим тотальным непониманием как это делать.
методом гугления набрала куски кода, что суммарно стало выглядеть так:
&НаСервере
Процедура выборфайланасервере(файлхмл)
Парсер = Новый ЧтениеXML;
Парсер.открытьфайл(файлхмл);
Построитель = Новый ПостроительDOM;
Документ = Построитель.Прочитать(Парсер);
Для Каждого Элемент0 Из Документ.ЭлементДокумента.ДочерниеУзлы Цикл
Если Элемент0.ИмяУзла = "shop" Тогда
shop = Элемент0;
Для Каждого Элемент1 Из shop.ДочерниеУзлы Цикл
Если Элемент1.ИмяУзла = "currencies" Тогда
currencies = Элемент1;
Сообщить("currencies:");
Для Каждого Элемент2 Из currencies.ДочерниеУзлы Цикл
Если Элемент2.ИмяУзла = "currency" Тогда
currency = Элемент2;
id = currency.Атрибуты.ПолучитьИменованныйЭлемент("id");
Если id <> Неопределено Тогда
Сообщить(" " + id.Значение);
rate = currency.Атрибуты.ПолучитьИменованныйЭлемент("rate");
Если rate <> Неопределено Тогда
Сообщить(" " + rate.Значение);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Парсер.Закрыть();
КонецПроцедуры
крч, нужна помощь (а это и так видно из кода и общей атмосферы отчаяния).
|
|