8.х ОБМЕН Загрузка ХМЛ

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем ech, 20 авг 2009.

  1. TopicStarter Overlay
    ech
    Offline

    ech

    Регистрация:
    3 авг 2009
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    ИмяФайла="C:\s4et.xml";
    Чтение = Новый ЧтениеXML;
    Чтение.ОткрытьФайл(ИмяФайла);
    Имя = Чтение.Имя;
    Массив = Новый Структура(Имя);
    Пока Чтение.Прочитать() Цикл
    ПолучитьXMLТип(Чтение);
    Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
    Имя = Чтение.Имя;
    Пока Чтение.ПрочитатьАтрибут() Цикл
    Атрибут = Чтение.Значение;
    КонецЦикла;
    КонецЕсли;
    Если Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
    Массив.Вставить(Имя,Чтение.Значение);
    КонецЕсли;
    Если Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента и Чтение.Имя = "Set" Тогда
    ДобавитьЭлемент(Массив);
    КонецЕсли;
    КонецЦикла
    КонецПроцедуры

    Загрузка идет в счет фактуру, загружаеться все кроме Товаров, т.е. тэга "ид".
  2. aipnnov
    Offline

    aipnnov

    Регистрация:
    20 авг 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Даже не стал разбираться с чтением XML, который представлен, посмотри на этот и сделай под себя или переделай под него:

    Процедура ПрочитатьДанныеИзXML(ЧтениеXML,Родитель,СчетчикИтераций,Знач Имя) Экспорт

    Пока ЧтениеXML.Прочитать() Цикл

    Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
    ИмяXML = ЧтениеXML.Имя;
    Стр = Родитель.Строки.Добавить();
    Стр.ИмяОбъекта = ЧтениеXML.Имя;
    Параметры = Новый Соответствие;

    Пока ЧтениеXML.ПрочитатьАтрибут() Цикл
    Параметры.Вставить(ЧтениеXML.Имя,ЧтениеXML.Значение);
    КонецЦикла;

    Стр.СтруктураАтрибутов = Параметры;
    СчетчикИтераций = СчетчикИтераций + 1;
    ПрочитатьДанныеИзXML(ЧтениеXML,Стр,СчетчикИтераций,ЧтениеXML.Имя);
    Иначе
    Возврат;
    КонецЕсли;

    КонецЦикла;

    КонецПроцедуры

    Вызвать эту процедуру можно так:
    ...........................
    Попытка
    ПрочитатьДанныеИзXML(ЧтениеXML,ДревоОбмена,КоличествоЭлементов, "");
    Исключение

    КонецПопытки;

    ЧтениеXML.Закрыть();
    .......................

    ДеревоОбмена = Новый ДеревоЗначений;
    ДеревоОбмена.Колонки.Добавить("Имя");
    ДеревоОбмена.Колонки.Добавить("Данные");
    ДеревоОбмена.Колонки.Добавить("КоличествоЗарегистрированных");
  3. TopicStarter Overlay
    ech
    Offline

    ech

    Регистрация:
    3 авг 2009
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    тему можно закрыть
  4. TopicStarter Overlay
    ech
    Offline

    ech

    Регистрация:
    3 авг 2009
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    тему можно закрывать

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