Подскажите как обойти ошибку при загрузке XML

Проблеми зв'язані з експортом\імпортом звітів, довідників.
Відповісти
vmen10
Повідомлень: 175
З нами з: 16 січня 2012, 18:28
Звідки: Николаев

Подскажите как обойти ошибку при загрузке XML

Повідомлення vmen10 » 27 серпня 2019, 12:04

Приветствую.
Подскажите, кто знает как обойти ошибку при загрузке чистой XML через команды V7plus.dll в 1С77 на ОС Win7/XP.
Я на ПК с ОС Win10 написал загрузку данных из документов декларации НДС в 1С77 , данные считываю командами V7Plus.dll, из xml выгруженой из декларации Медка (текстовая,несжатая,формата ГФС).
Попытался воспользоваться написанной обработкой загрузки данных из xml на ПК с другой ОС Win7 и WinXP, где при загрузке возникает ошибка в команде "Загрузить(х)" , при загрузке "тела" появляются ошибки типа: xsi:nil attribute on element 'HZYP' is invalid. [ <HZYP xsi:nil="true" /> (error position = 29)]
Выяснил:
1. в хмл приложений 1 и 5 декларации НДС имеет наборы с пустыми атрибутами-элементами, в окончании нет красивой за концовки атрибута тега с именем, там только "xsi:nil="true" />", данные атрибуты тегов их плохо обрабатывает загрузчик где базовый анализатор парсера-хмл 4.0.
2. На ПК где у меня работают рабочие 1С77 под Win7_64 загрузка через V7plus.dll показывает что стоит базовый анализатор XML версии 4.0!
3. На ПК под Win10 в локальных 1С77 загружаю xml без ошибок, V7plus.dll сообщает что базовый анализатор XML версии 3.0, где все прекрасно работает!
4. ПК имеют установленные библиотеки msxml свежайших версий 6.0/6.20/6.30 но перебор тегов ведется на младших версиях.

Может мне переписать загрузку данных из хмл через другой парсер OpenXML.dll, или другим методом:[[Файл = Анализатор.СоздатьПоследовательноСчитываемыйДокумент();Файл.СвязатьСФайлом(ФайлЗагрузки);Тег = Файл.Спустится(); ...]]
Кто сталкивался и писал загрузки из хмл, подскажите пожалуйста как красиво обойти ошибку загрузки строк "xsi:nil="true" />" на ПК где парсерХМЛ=4.0!

PS.Благодаря интернету нашел другую команду загрузки, скрестил варианты, за несколько часов проб с отладкой, я поменял схему загрузки XML-файла.
Переделал загрузку на другую альтернативную команду загрузки xml-фала, которая загружает xml без проверки правильности тегов.
Команду Загрузить(ФайлЗагрузки) заменил на серию других команд СоздатьПоследовательноСчитываемыйДокумент()+.....),
после которых работают команды V7Plus.dll чтения данных.

Код: Виділити все

	Рабочий пример загрузки xml файла без ошибок на пустые реквизиты в структуре,работает на разных ОС и разных версиях базового парсера xml:
	Анализатор=СоздатьОбъект("AddIn.XMLParser");
	Файл=Анализатор.СоздатьДокумент();    
	Файл = Анализатор.СоздатьПоследовательноСчитываемыйДокумент();
	Файл.СвязатьСФайлом(ФайлЗагрузки); 
	ТипТега = Файл.Спуститься(); 
	ДФайл_=Файл.ТекущийЭлементВВидеОбъекта(); 
	Р1=ДФайл_.ВыбратьУзлы("DECLARHEAD"); 
	Р2=ДФайл_.ВыбратьУзлы("DECLARBODY"); 
	Кол_Р2=Р2.КоличествоУзлов();
	Для i=1 По Кол_Р2 Цикл 
		ТекУзел=Р2.ПолучитьУзел(i-1);
		пар_мес_отч=ТекУзел.ВыбратьУзел("HZM-параметр!").Значение;
                [....тут считываем параметры]
	КонецЕсли;

Відповісти

Повернутись до “Експорт\імпорт”