Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
22 Янв 2017, 23:18
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: разбор XML файла, ошибка "Попытка смены источника в процессе разбора документа"  (Прочитано 694 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Target25

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-01-18
  • Сайт: 
  • Профессия: Программист 1С
Пытаясь загрузить xml-файл правил из ЗуП в ЗиК, столкнулся с этой ошибкой. Копая, выяснил, что "сыпется" в момент разбора узлов типа "параметр". В двух словах: при выполнении метода "Следующий()" AddIn.XMLParser всегда возвращает тип тега "1" (начало нового элемента), и не возвращает в нужном месте тип тега "3" (конец уровня).

Я вырезал все лишнее из файла правил и написал небольшую программу, которая моделирует ситуацию и падает с ошибкой. Текст программы:
Процедура ОбработатьПараметры(мЧтениеXML)
    ТипТега = мЧтениеXML.Спуститься();
    Пока ТипТега = 1 Цикл                                 
        имяУзла = мЧтениеXML.СвойстваТекущегоУзла.Имя;
        Сообщить("Параметры:ТипТега " + ТипТега + "; имя узла " + имяУзла);
        ТипТега = мЧтениеXML.Следующий();// как только кончаются параметры, он должен дать тип тега =3

    КонецЦикла;
    мЧтениеXML.Подняться();
КонецПроцедуры         
//----

Процедура ОбработатьПравилаОбмена(мЧтениеXML)
    ТипТега = мЧтениеXML.Спуститься();
    Пока ТипТега = 1 Цикл                                 
        имяУзла = мЧтениеXML.СвойстваТекущегоУзла.Имя;
        Сообщить("Правила обмена:ТипТега " + ТипТега + "; имя узла " + имяУзла);
        Если имяУзла = "Параметры" тогда
            ОбработатьПараметры(мЧтениеXML);
        КонецЕсли;   
        ТипТега = мЧтениеXML.Следующий();
    КонецЦикла;   
    мЧтениеXML.Подняться();
КонецПроцедуры
//----

Процедура Сформировать()   
    ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + "v7plus.dll");
    мXMLАнализатор = СоздатьОбъект("AddIn.XMLParser");
   
    мЧтениеXML = мXMLАнализатор.СоздатьПоследовательноСчитываемыйДокумент();
    мЧтениеXML.СвязатьСФайлом("C:\ЗИК_ЗУП30.xml");
    типТега = мЧтениеXML.Спуститься();
    Если мЧтениеXML.СвойстваТекущегоУзла.Имя =  "ПравилаОбмена" тогда
        ОбработатьПравилаОбмена(мЧтениеXML);
    КонецЕсли;   
КонецПроцедуры

Файл правил обмена ЗиК_ЗУП80.xml:
<ПравилаОбмена>
    <ВерсияФормата РежимСовместимости="РежимСовместимостиСБСП21">2.01</ВерсияФормата>
    <Ид>1c87001b-6b3a-4277-a36d-1e6d1a6c9793    </Ид>
    <Наименование>ЗиК --&gt; ЗУП 3.0</Наименование>
    <ДатаВремяСоздания>2015-12-23T17:51:28</ДатаВремяСоздания>
    <Источник></Источник>
    <Приемник>БЗКР</Приемник>
    <ПередВыгрузкойДанных></ПередВыгрузкойДанных>
    <ПередЗагрузкойДанных></ПередЗагрузкойДанных>
    <ПослеЗагрузкиДанных></ПослеЗагрузкиДанных>
    <Параметры>
        <Параметр/>
        <Параметр/>
        <Параметр/>
        <Параметр/>
        <Параметр/>
        <Параметр/>
    </Параметры>
    <Обработки/>
    <ПравилаКонвертацииОбъектов/>
    <Запросы/>
</ПравилаОбмена>
Скриншот ошибки:
http://i.imgur.com/eoyLbxq.png

Буду рад, если проверите этот пример у себя, и, если все будет нормально работать, м.б. найдем как заставить работать у меня.

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
171 Сообщений
alex0402
65 Сообщений
MuI_I_Ika MuI_I_Ika
47 Сообщений
crow1983
35 Сообщений
alexandr_ll
33 Сообщений
LexaK
32 Сообщений
sertak sertak
25 Сообщений
Vzonder
22 Сообщений
BuhRust
17 Сообщений
дфтын дфтын
17 Сообщений

* Кто онлайн

  • Точка Гостей: 270
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal