Имя: Пароль:
1C
 
Загрузка из XML в 7.7
0 Маркусс
 
21.10.15
08:02
Добрый день

Пытаюсь выполнить загрузку из файла XML в 1С 7.7
Вылетает ошибка: гФайл.Спуститься(); - Попытка смены источника в процессе разбора документа

код:

    гXMLАнализатор = СоздатьОбъект("AddIn.XMLParser");
    
    гФайл =    гXMLАнализатор.СоздатьПоследовательноСчитываемыйДокумент();
    гФайл.СвязатьСФайлом(ИмяФайла);
    гФайл.Спуститься();
    
    СвойстваТекущегоУзла    =    гФайл.СвойстваТекущегоУзла;
    ИмяТега                    =    СвойстваТекущегоУзла.Имя;

Подскажите, плиз, где ошибка?

Спасибо
1 vladmenleo
 
21.10.15
08:07
Продам СП недорого
Спуститься(<?>)
Синтаксис:
Спуститься()
Назначение:
Перейти на следующий уровень вниз.
Возвращаемое значение:
(Число)  
1 - начало нового элемента
2 - инструкция обработки
3 - конец уровня
4 - конец документа
Пример:

Процедура ЗагрузитьДанные()
    
    гXMLАнализатор = СоздатьОбъект("AddIn.XMLParser");
    гФайл = гXMLАнализатор.СоздатьПоследовательноСчитываемыйДокумент();
    гФайл.СвязатьСФайлом(ФормИмяФайлаДанных);
    ТипТега = гФайл.Спуститься();
    Пока ТипТега <> 4 Цикл        //    пока не достигнут конец файла
        Если ТипТега <> 1 Тогда
            ТипТега = гФайл.Следующий();
            Продолжить;
        КонецЕсли;                //    пропускаем концы уровней и инструкции
        
        ИмяТега = гФайл.СвойстваТекущегоУзла.Имя;
        
        Если            ИмяТега = "ОбъектСправочника"        Тогда ЗагрузитьОбъектСправочника();
        ИначеЕсли ИмяТега = "Документ"            Тогда ЗагрузитьДокумент();
                                //..........................................................
        Иначе
            ТипТега = гФайл.Спуститься();
            Продолжить;
        КонецЕсли;
          
        ТипТега = гФайл.Следующий();
    КонецЦикла;
    
КонецПроцедуры
2 dk
 
21.10.15
08:10
вроде баян
это версия виндового xml парсера новее чем v7plus.dll
обнови v7plus.dll до 11-й версии
3 Маркусс
 
21.10.15
08:17
(2) версия 7.70.011
4 Маркусс
 
21.10.15
08:17
(1) у меня также
5 dk
 
21.10.15
08:20
11 тоже только до 6 версии вроде
xml парсер какой версии?
6 Маркусс
 
21.10.15
08:29
(5) как это увидеть?
7 vladmenleo
 
21.10.15
08:38
ради спортивного интереса написал внешнюю обработку с кодом из СП. подсунул какие-то xml файлы, все отрабатывает без ошибок. Может сама структура xml файла не такая как надо?
8 Маркусс
 
21.10.15
08:42
<ns:Documents xmlns:wbr="http://fsrar.ru/WEGAIS/TTNInformBReg"; xmlns:pref="http://fsrar.ru/WEGAIS/ProductRef"; xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef"; xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;
- <ns:Owner>
  <ns:FSRAR_ID>3463047</ns:FSRAR_ID>
  </ns:Owner>
- <ns:Document>
- <ns:TTNInformBReg>
- <wbr:Header xmlns:wbr="http://fsrar.ru/WEGAIS/TTNInformBReg"; xmlns:pref="http://fsrar.ru/WEGAIS/ProductRef"; xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef"; xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;
  <wbr:Identity>30239000001261928</wbr:Identity>
  <wbr:WBRegId>0000033721</wbr:WBRegId>
  <wbr:EGAISFixNumber>97000008419170</wbr:EGAISFixNumber>
  <wbr:EGAISFixDate>2015-09-28</wbr:EGAISFixDate>
  <wbr:WBNUMBER>6100256719_1</wbr:WBNUMBER>
  <wbr:WBDate>2015-09-28</wbr:WBDate>
- <wbr:Shipper>
  <oref:ClientRegId>030000000023</oref:ClientRegId>
  <oref:INN></oref:INN>
  <oref:KPP></oref:KPP>
  <oref:FullName>ЗАО "ТТТ" </oref:FullName>
  <oref:ShortName>ЗАО "ТТТ"</oref:ShortName>
- <oref:address>
  <oref:Country></oref:Country>
  <oref:RegionCode>07</oref:RegionCode>
  <oref:description>643,450027,02</oref:description>
  </oref:address>
  </wbr:Shipper>
- <wbr:Consignee>
9 Маркусс
 
21.10.15
08:45
(7) подсунул другой файл правил обмена - сработало. В чём проблема с текущим?
10 vladmenleo
 
21.10.15
08:47
на том примеры, что ты привел выходит по ошибке:
ТипТега = гФайл.Спуститься();
{C:\TUNE\ТОРГОВАЯ КОМПАНИЯCOPY\EXTFORMS\IT\ЗАГРУЗКАХМЛ.ERT(20)}: : Ошибка исполнения метода

по внешнему виду чисто визуально какой-то документ незаконченный
11 Маркусс
 
21.10.15
08:50
Спасибо всем за помощь. Длинное имя файла было. Перенёс файл в корень диска - всё заработало.
12 Маркусс
 
21.10.15
14:12
Коллеги, чёт в толк не могу взять. Перебираю узлы нормально, но когда пытаюсь достать значение всё валится.
Вот так работает:
Пока ИмяТега<>"tovar" Цикл ///грузим шапку
        
        Если ТипТега =1 Тогда
            Сообщить(гФайл.СвойстваТекущегоУзла.Имя);
        КонецЕсли;
        
        
        ТипТега = гФайл.Спуститься();
        ИмяТега = гФайл.СвойстваТекущегоУзла.Имя;
    КонецЦикла;

Так нет:

    Пока ИмяТега<>"tovar" Цикл ///грузим шапку
        
        Если ТипТега =1 Тогда
            Сообщить(гФайл.СвойстваТекущегоУзла.Имя);
            Объект        = гФайл.ТекущийЭлементВВидеОбъекта();
            ИмяУзла        = Объект.Наименование;
            Значение    = Объект.Значение;
        КонецЕсли;
        
        
        ТипТега = гФайл.Спуститься();
        ИмяТега = гФайл.СвойстваТекущегоУзла.Имя;
    КонецЦикла;