Имя: Пароль:
1C
 
Чтение XML в 1С
0 asisdes
 
21.09.18
19:44
Друзья можете подсказать, хоче спарить XML в табличную часть,
когда до хочу до поля filds там атрибуты есть, которые показывают на определенные данные. Но никак не мог до них достучатся,

пример XML

<?xml version="1.0" encoding="UTF-8"?>

-<form name="form_300_07">

<field name="form_300_07_n_j_1">9953626</field>

<field name="form_300_07_n_i_1">9953626</field>

<field name="iin">130740020273</field>

<field name="form_300_07_n_h_1">82945402</field>

<field name="page_number">201</field>

<field name="PaperFormsBarcode1"/>

<field name="period_quarter">2</field>

<field name="period_year">2017</field>


-<row>

<field name="form_300_07_n_d">130940020518</field>

<field name="form_300_07_n_j">997</field>

<field name="form_300_07_n_b"/>

<field name="form_300_07_n_c">600800547674</field>

<field name="form_300_07_n_e">00000001886</field>

<field name="form_300_07_n_g"/>

<field name="form_300_07_n_i">997</field>

<field name="form_300_07_n_h">8308</field>

<field name="form_300_07_n_a">00000002</field>

<field name="form_300_07_n_k"/>

<field name="form_300_07_n_m"/>

<field name="form_300_07_n_f">03.04.2017</field>

<field name="form_300_07_n_l"/>

</row>


-<row>

<field name="form_300_07_n_g"/>

<field name="form_300_07_n_k"/>

<field name="form_300_07_n_b"/>

<field name="form_300_07_n_a">00000003</field>

<field name="form_300_07_n_i">793</field>

<field name="form_300_07_n_h">6607</field>

<field name="form_300_07_n_j">793</field>

<field name="form_300_07_n_e">00000001887</field>

<field name="form_300_07_n_d">130940020518</field>

<field name="form_300_07_n_m"/>

<field name="form_300_07_n_l"/>

<field name="form_300_07_n_f">03.04.2017</field>

<field name="form_300_07_n_c">600800547674</field>

</row>

</form>



CODE

    ПутьКФайлу = "C:\Users\admin\Desktop\Тест\test2.xml";

    Чтение = Новый ЧтениеXML;
    Чтение.ОткрытьФайл(ПутьКФайлу);
    Пока Чтение.Прочитать() Цикл
        Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда

            ИмяУзла = Чтение.Имя;
            Если СокрЛП(ИмяУзла) = "row" Тогда
                Сообщить("Товар Новый");
            КонецЕсли;

        ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
            Если ИмяУзла = "field" Тогда
                    РНН = Чтение.ЗначениеАтрибута(0);
                    Если СокрЛП(РНН) = "form_300_07_n_c" Тогда
                        Сообщить("РНН Есть" + Чтение.Значение)
                    КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
1 asisdes
 
21.09.18
19:46
РНН = Чтение.ЗначениеАтрибута(0);
                    Если СокрЛП(РНН) = "form_300_07_n_c" Тогда
                        Сообщить("РНН Есть" + Чтение.Значение)
                    КонецЕсли;

Эта часть кода не срабатывает, т.е. в зависимости от названия атрибута, я буду помещать их в определенную колонку таблицы значения
2 Cyberhawk
 
21.09.18
19:55
Читай в ДОМ и радуйся обходу коллекции
3 Cool_Profi
 
21.09.18
20:40
А как не срабатывает? Может, там просто такого значения нет?
Отладчиком смотрел?
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.