Имя: Пароль:
1C
1С v8
Один и тот же код отрабатывает по разному на 8.1 и 8.2
0 sinisterfrag
 
07.12.12
12:20
Проблема такая по разному отрабатывает код на 8.1 и 8.2, думаю проблема в ЧтениеXML, он считывает по разному один и тот же XML файлик.

Собсвенно вот код он типовой для загрузки валюты УПП
   Попытка
       
       Чтение = Новый ЧтениеXML;
       Чтение.ОткрытьФайл(ИмяВходящегоФайла);
       
       КурсыВалютДляОбновления.Очистить();
       
       Пока Чтение.Прочитать() Цикл
           
           // Прочитать "структурные части" элементов.
           // Проверить, какая часть элемента - текущая.
           Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
               ИмяУзла = Чтение.Имя;
               
               // Атрибуты элементов можно читать только если текущая часть -
               // начало элемента
               Пока Чтение.ПрочитатьАтрибут() Цикл
                   
                   // Прочитать данные узла атрибута.
                   ТипУзла = Чтение.ТипУзла;
                   Имя = Чтение.Имя;
                   Значение = Чтение.Значение;
                   
                   // Обработать полученные значения.
                   
               КонецЦикла;
               
           ИначеЕсли ИмяУзла = "title" И Чтение.ТипУзла = ТипУзлаXML.Текст И Чтение.КонтекстПространствИмен.Глубина = 3 Тогда
               Загрузить = Ложь;
               
               Для каждого СтрокаСпВалют из ТаблицаЗначенийКурсов Цикл
                   
                   Если СтрокаСпВалют.Валюта.БуквенныйКод = Чтение.Значение Тогда
                       ВалютаСправочник = СтрокаСпВалют.Валюта;
                       Загрузить = СтрокаСпВалют.Загружать;
                   КонецЕсли;
                   
               КонецЦикла;
               
               Если НЕ Загрузить Тогда
                   Продолжить;
               КонецЕсли;
               
               КурсыВалют = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
               КурсыВалют.Валюта = ВалютаСправочник;
               КурсыВалют.Период = ДатаПериодаЗагрузкиКурса;
               
           ИначеЕсли ИмяУзла = "description" И Чтение.ТипУзла = ТипУзлаXML.Текст И Чтение.КонтекстПространствИмен.Глубина = 3 Тогда
               Если НЕ Загрузить Тогда
                   Продолжить;
               КонецЕсли;
               КурсыВалют.Курс = Чтение.Значение;
               
               
           ИначеЕсли ИмяУзла = "quant" И Чтение.ТипУзла = ТипУзлаXML.Текст И Чтение.КонтекстПространствИмен.Глубина = 3 Тогда
               Если НЕ Загрузить Тогда
                   Продолжить;
               КонецЕсли;
               КурсыВалют.Кратность = Чтение.Значение;
               КурсыВалют.Записать();
               
               Сообщить("Курс для валюты "+КурсыВалют.Валюта.БуквенныйКод+" загружен!",СтатусСообщения.Обычное);
               
           КонецЕсли;
           
       КонецЦикла;
       
       Чтение.Закрыть();
       УдалитьФайлы(ВремКаталог,"*.*");
   Исключение
       Сообщить("Не возможно прочитать файл с курсами валют.");
       Возврат;
   КонецПопытки;


Кусок XML (использовал для отладки)

-<item>
<fullname>АВСТРАЛИЙСКИЙ ДОЛЛАР</fullname>
<title>AUD</title>
<description>157.37</description>
<quant>1</quant>
</item>

При позиционировании на начале элемента, глубина = 3 (т.е. одинакова),

8.1
Чтение.ТипУзла = Начало Элемента
Чтение.Имя     = "title"
Чтение.Значение=""
Чтение.КонтекстПространствИмен.Глубина = 3

8.2
Чтение.ТипУзла = Начало Элемента
Чтение.Имя     = "title"
Чтение.Значение=""
Чтение.КонтекстПространствИмен.Глубина = 3

НО стоит переместить к Типу узлу текст как выходит такая фигня

8.1
Чтение.ТипУзла = Текст
Чтение.Имя     = ""
Чтение.Значение="USD"
Чтение.КонтекстПространствИмен.Глубина = 3

8.2
Чтение.ТипУзла = Текст
Чтение.Имя     = "#text"
Чтение.Значение="USD"
Чтение.КонтекстПространствИмен.Глубина = 4
1 sinisterfrag
 
07.12.12
12:22
Т.е. Чтение.КонтекстПространствИмен.Глубина по разному отрабатывает в зависимости от платформы 8.1 или 8.2, хотя повторяюсь использовал один и тот же XML файл
2 sinisterfrag
 
07.12.12
13:09
UP
3 sinisterfrag
 
07.12.12
13:09
Народ HELP
4 sinisterfrag
 
07.12.12
13:10
валюты не грузятся бухгалтер в бешенстве, требует кровь
5 Нуф-Нуф
 
07.12.12
13:16
продолжайте наблюдения
6 shuhard
 
07.12.12
13:20
(4)на смену тебя придут новые бойцы
7 hhhh
 
07.12.12
13:41
(3) а чего хелп? ну подправь, чтобы работало. Понятно, что 8.1 и 8.2 различаются. Это мы знаем.
Независимо от того, куда вы едете — это в гору и против ветра!