8.х ОБМЕН Загрузка из XML-файла.

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем Korovay, 21 июн 2012.

  1. TopicStarter Overlay
    Korovay
    Offline

    Korovay Опытный в 1С

    Регистрация:
    3 авг 2009
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Пытаюсь разобрать вот такой кусок XML-файла. Из него нужны данные ЗаписьПериодБезДок.

    HTML:
    - <Объект Нпп="2" Тип="СправочникСсылка.СотрудникиОрганизаций" ИмяПравила="ДополнительныеДанныеСотрудника" НеЗамещать="true">
    - <Ссылка Нпп="2" НеСоздаватьЕслиНеНайден="true">
    - <Свойство Имя="Код" Тип="Строка">
    <Значение>Е0000899</Значение>
    </Свойство>
    </Ссылка>
    <МестаРаботы Имя="МестаРаботы" />
    - <Местный Имя="Местный">
    <ЗаписьМестный Дата="20100901" ПризнакМестный="1" />
    </Местный>
    - <ПериодБезДок Имя="ПериодБезДок">
    <ЗаписьПериодБезДок Дата="20120501" Оклад="00011" Подразделение="5844" Должность="21499" Ставка="1" График="" ФормаТруда="Повременно-премиальная по тарифу согласно табеля (по часам)" />
    <ЗаписьПериодБезДок Дата="20120621" Оклад="40" Подразделение="5844" Должность="21499" Ставка="1" График="" ФормаТруда="Повременно-премиальная по тарифу согласно табеля (по часам)" />
    </ПериодБезДок>
    </Объект>
    Листинг того чем я пытаюсь его разложить и получить данные ФайлОбмена.ЛокальноеИмя = "ЗаписьПериодБезДок" прилагается.
    У меня получается получить только одну строку, последующую ни как.
    Подскажите плз, каким образом мне достать атрибуты двух строк.


    Код:
       Если ФайлОбмена.Прочитать() Тогда
    Если ФайлОбмена.ТипУзла <> одТипУзлаXML_КонецЭлемента Тогда
    Если ФайлОбмена.ТипУзла = одТипУзлаXML_НачалоЭлемента И ФайлОбмена.ЛокальноеИмя = "ПериодБезДок" Тогда
    ФайлОбмена.Прочитать();
    Если ФайлОбмена.ЛокальноеИмя = "ЗаписьПериодБезДок" Тогда
    Сообщить("1 - " + Строка(ФайлОбмена.ЛокальноеИмя)+" тип: "+СТрока(ФайлОбмена.ТипУзла));
    ФайлОбмена.ПрочитатьАтрибут();
    ДатаЗнач = Дата(ФайлОбмена.Значение);
    ФайлОбмена.ПрочитатьАтрибут();
    Оклад = ФайлОбмена.Значение;
    ФайлОбмена.ПрочитатьАтрибут();
    Подразделение = ФайлОбмена.Значение;
    Сообщить(Объект.Код + " = " + ДатаЗнач+ " - " + Оклад + " - " + Подразделение );
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
  2. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.174
    Симпатии:
    13
    Баллы:
    29
    вроде как так :
    Пока ФайлОбмена.Прочитать() Цикл
    ....

    КонецЦикла;
  3. TopicStarter Overlay
    Korovay
    Offline

    Korovay Опытный в 1С

    Регистрация:
    3 авг 2009
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Просто полностью XML состоит из множество кусочков, который я представил выше ( порядка 100), отличаются только значения.
    Если я меняю "ФайлОбмена.Прочитать()" на "Пока ФайлОбмена.Прочитать() Цикл", то он считывает все "ЗаписьПериодБезДок", но "Объект.Код" не меняется, он равен первому значению в первом куске..
  4. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.174
    Симпатии:
    13
    Баллы:
    29
    в твоем куске кода я вообще не вижу где Объект.КОд меняется...
    по нему вижу только 1 строчку : Сообщить(Объект.Код + " = " + ДатаЗнач+ " - " + Оклад + " - " + Подразделение );

Поделиться этой страницей