|
v7plus ТекущийЭлементВВидеОбъекта() - закрівается 1с | ☑ | ||
---|---|---|---|---|
0
burrya
28.09.17
✎
15:38
|
при выполнении кода
Если ВложТег>0 Тогда Уровней=КвоУровнейХМЛ(ВложТег,гФайл); штрих="--"; Если ВложТег<3 Тогда //первый полученный элемент Сообщить(""+штрих+"<ИмяТега>="+гФайл.СвойстваТекущегоУзла.Имя+" Уровень="+гФайл.СвойстваТекущегоУзла.Уровень); Объект = гФайл.ТекущийЭлементВВидеОбъекта(); Объект = гФайл.ТекущийЭлементВВидеОбъекта(); - на этой строке 1с зависает и закрывается |
|||
1
DrShad
28.09.17
✎
15:43
|
ну не может она его в объект преобразовать
|
|||
2
burrya
28.09.17
✎
15:47
|
А чем лучше всего читать xml с текстом?
|
|||
3
DrShad
28.09.17
✎
15:50
|
(2) MSXML
|
|||
4
burrya
28.09.17
✎
16:08
|
а есть примеры рабочего кода?
|
|||
5
DrShad
28.09.17
✎
16:10
|
(4) в инете полно
|
|||
6
DrShad
28.09.17
✎
16:11
|
у 1С даже в новых платформах и то не полноценный XML
|
|||
7
wHammer
28.09.17
✎
17:14
|
(4) что-то типа: выгрузка данных в xml в 1С 7.7
|
|||
8
big
29.09.17
✎
04:46
|
Примерно так
Функция глСоздатьDOMDocument() Экспорт DOMDocument=0; Попытка DOMDocument = СоздатьОбъект("Msxml2.DOMDocument.6.0"); Исключение DOMDocument=0; Попытка DOMDocument = СоздатьОбъект("Msxml2.DOMDocument.4.0"); Исключение DOMDocument=0; Попытка DOMDocument = СоздатьОбъект("Msxml2.DOMDocument"); Исключение Сообщить("В системе не установлена ни одна из библиотек XML от Microsoft!"); Возврат 0; КонецПопытки; КонецПопытки; КонецПопытки; DOMDocument.async=0; DOMDocument.validateOnParse=-1; DOMDocument.resolveExternals=-1; Возврат DOMDocument; КонецФункции DOMDocument.load(ТекФайл); Если (DOMDocument.parseError.errorCode<>0) Тогда Сообщить("Ошибка проверки файла "+ТекФайл+"! Ошибка:"+DOMDocument.parseError.errorCode,"!"); Возврат; КонецЕсли; Узел1 = DomDocument.getElementsByTagName("ns:Documents").Item(0); Узел2 = Узел1.getElementsByTagName("ns:Document").Item(0); Узел3 = Узел2.getElementsByTagName("ns:ReplyAP").Item(0); Выборка = Узел3.getElementsByTagName("rap:Products").Item(0); Ном = 0; Для а=0 По Выборка.childNodes.length-1 Цикл Состояние("Обработано "+(а+1)+" строк"); ТекУзел = Выборка.childNodes(а); Объем = 0; Если ТекУзел.getElementsByTagName("pref:Capacity").length > 0 Тогда Объем = СокрЛП(ТекУзел.getElementsByTagName("pref:Capacity").Item(0).Text); Объем = СтрЗаменить(Объем,",","."); Объем = Число(Объем); КонецЕсли; ПолнНаименование = СокрЛП(ТекУзел.getElementsByTagName("pref:FullName").Item(0).Text); Если ТекУзел.getElementsByTagName("pref:ShortName").length > 0 Тогда Наименование = ТекУзел.getElementsByTagName("pref:ShortName").Item(0).Text; Иначе Наименование = ПолнНаименование; КонецЕсли; КодЕГАИС = СокрЛП(ТекУзел.getElementsByTagName("pref:AlcCode").Item(0).Text); КодВидаАП = СокрЛП(ТекУзел.getElementsByTagName("pref:ProductVCode").Item(0).Text); Крепость = СокрЛП(ТекУзел.getElementsByTagName("pref:AlcVolume").Item(0).Text); Крепость = СтрЗаменить(Крепость,",","."); Крепость = Число(Крепость); хмл_Производитель = ТекУзел.getElementsByTagName("pref:Producer").Item(0); ИННПроизводитель = ""; Если хмл_Производитель.getElementsByTagName("oref:INN").length > 0 Тогда ИННПроизводитель = СокрЛП(хмл_Производитель.getElementsByTagName("oref:INN").Item(0).Text); КонецЕсли; КПППроизводитель = ""; Если хмл_Производитель.getElementsByTagName("oref:KPP").length > 0 Тогда КПППроизводитель = СокрЛП(хмл_Производитель.getElementsByTagName("oref:KPP").Item(0).Text); КонецЕсли; ИД_Производитель = СокрЛП(хмл_Производитель.getElementsByTagName("oref:ClientRegId").Item(0).Text); НаимПроизводитель = СокрЛП(хмл_Производитель.getElementsByTagName("oref:ShortName").Item(0).Text); Если ТекУзел.getElementsByTagName("pref:Importer").length > 0 Тогда хмл_Импортер = ТекУзел.getElementsByTagName("pref:Importer").Item(0); ИННИмпортер = ""; Если хмл_Импортер.getElementsByTagName("oref:INN").length > 0 Тогда ИННИмпортер = СокрЛП(хмл_Импортер.getElementsByTagName("oref:INN").Item(0).Text); КонецЕсли; КППИмпортер = ""; Если хмл_Импортер.getElementsByTagName("oref:KPP").length > 0 Тогда КППИмпортер = СокрЛП(хмл_Импортер.getElementsByTagName("oref:KPP").Item(0).Text); КонецЕсли; ИД_Импортер = СокрЛП(хмл_Импортер.getElementsByTagName("oref:ClientRegId").Item(0).Text); НаимИмпортер = СокрЛП(хмл_Импортер.getElementsByTagName("oref:ShortName").Item(0).Text); КонецЕсли; Если СпрАП.НайтиПоКоду(КодВидаАП,0) = 0 Тогда Сообщить("Алкогольная продукция с кодом """+КодВидаАП+""" не найдена в классификаторе АП"); КодВидаАП = КодВидаАП + "(!!!)"; КонецЕсли; Если Реж = 0 Тогда Если Спр.НайтиПоКоду(КодЕГАИС,0)<>0 Тогда // Сообщить("ЕГАИСКонтрагент с ИД "+РегИдЕГАИС+" найден"); // Продолжить; Иначе Спр.Новый(); КонецЕсли; Спр.Код = КодЕГАИС; Спр.Наименование = Наименование; Спр.ПолнНаименование = ПолнНаименование; Спр.Объем = Объем; Спр.Крепость = Крепость; Спр.Производитель = ИД_Производитель; Спр.ПроизводительНаим = НаимПроизводитель; Спр.ПроизводительИНН = ИННПроизводитель; Спр.ПроизводительКПП = КПППроизводитель; Спр.Импортер = ИД_Импортер; Спр.ИмпортерНаим = НаимИмпортер; Спр.КодАП = СпрАП.ТекущийЭлемент(); Спр.Записать(); КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |