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

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

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

СМОТРЕТЬ >>


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
95 Сообщений
wise wise
76 Сообщений
MuI_I_Ika MuI_I_Ika
56 Сообщений
alex0402
49 Сообщений
Dethmontt Dethmontt
48 Сообщений
ilyay ilyay
29 Сообщений
Сергей Федоров Сергей Федоров
29 Сообщений
ilnur75
25 Сообщений
Дмитрий Медведков Дмитрий Медведков
19 Сообщений
DmitriyF DmitriyF
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal