![]() |
|
V7PLUS.dll и XMLParser | ☑ | ||
---|---|---|---|---|
0
nv24
07.01.10
✎
01:21
|
Доброго часа.
Столкнулся с проблемой в V7 суть в следующем: файл выгрузки в V8.1 созданый стандартной обработкой имеет вид: <?xml version="1.0" encoding="UTF-8"?> <V8Exch:_1CV8DtUD xmlns:V8Exch="http://www.1c.ru/V8/1CV8DtUD/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v8="http://v8.1c.ru/data"> <V8Exch:Data> ... и так далее пробую создать элемент Парсер=СоздатьОбъект("AddIn.XMLParser"); Корень=Парсер.СоздатьДокумент(); Корень.Кодировка="UTF-8"; Узел=Корень.СоздатьПодчиненныйЭлемент("V8Exch:_1CV8DtUD"); Возникает ошибка... TestXml.ERT(53)}: : Ошибка создания нового узла ругается именно на двоеточие Создаю тогда узел без двоеточий Узел=Корень.СоздатьПодчиненныйЭлемент("V8Exch"); и пробую в него записать элемент справочнтка ДоговорыКонтрагентов с указанием владельца <Owner> в Файле созданом стандартной выгрузкой в 8.1 узел имеет вид <Owner xsi:type="CatalogRef.Контрагенты">eb506acd-36b8-11dd-ae29-0017315d547b</Owner> создаю его так: Owner= Узел.СоздатьПодчинненыйЭлемент("Owner"); Owner.УстановитьАтрибут("xsi:type","CatalogRef.Контрагенты); Owner.Значение=UID; В данном случае при записи файла возникает ошибка: Type 'CatalogRef.Контрагенты' is not found in Schema. Посмотрел описание работы c V7plus но на свои вопросы ответа не нашел Можно ли создать элемент с двоеточием в названии и почему возникает ошибка "...is not found in Schema." ? Что я делаю не так? Возможно ли в 7.7 с помощью V7Plus создать XML документ чтоб загружался типовой загрузкой? Спасибо. |
|||
1
syktyk
07.01.10
✎
01:22
|
xml3 твоя проблема.
|
|||
2
nv24
07.01.10
✎
01:25
|
(1) а по подробнее можно?
|
|||
3
syktyk
07.01.10
✎
01:30
|
Парсер msxml4.dll разрегь, и зарегь msxm3.dll. Имхается, что поможет.
|
|||
4
syktyk
07.01.10
✎
01:34
|
regsvr32 /?
|
|||
5
nv24
07.01.10
✎
01:43
|
(3) не помогло элемент с двоеточием в имени не пишет.
Может ещё какие варианты - ПространствоИмен ... -( |
|||
6
syktyk
07.01.10
✎
01:47
|
(5)Ты посмотри, какие еще парсеры типа msxml стоят на машине с 7.7. Разрегивай все, а потом регь только 3-й. такая хрень еще на 8-ке была. Решилась тупо. Даже не вникали.
|
|||
7
syktyk
07.01.10
✎
01:47
|
Выгрузка прошла нормально только с 3-им
|
|||
8
nv24
07.01.10
✎
01:49
|
(6) а как посмотреть какие парсеры зарегены?
|
|||
9
nv24
07.01.10
✎
01:52
|
разрегил msxml4 через ключ /u какие остались - как узнать?
|
|||
10
milan
07.01.10
✎
02:08
|
(5) я бы на твоем месте почитал что такое хмл схема и как оно связяно с пространством имен.
вот в этом пространстве имен xmlns:V8Exch="http://www.1c.ru/V8/1CV8DtUD/" наверное описан тип xsi:type="CatalogRef.Контрагенты"> а создав голый хмл ты можешь выгружать только типы из пространства имен xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance", это string,date,int и там нет никаких CatalogRef.Контрагенты. |
|||
11
nv24
07.01.10
✎
02:21
|
(10) с пространством имен вроде разобрался - получается так
ОБМЕН =Корень.СоздатьПодчиненныйЭлемент("V8Exch"); //:_1CV8DtUD ОБМЕН.УстановитьПространствоИмен("http://www.1c.ru/V8/1CV8DtUD/","V8Exch" ); ОБМЕН.УстановитьПространствоИмен("http://www.w3.org/2001/XMLSchema-instance","xsi" ); но дело в том что узел сам выглядит вот так <V8Exch:_1CV8DtUD xmlns:V8Exch="http://www.1c.ru/V8/1CV8DtUD/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v8="http://v8.1c.ru/data"> тоесть как я понял V8Exch:_1CV8DtUD - имя узла а xmlns:V8Exch,xmlns:xsi,xmlns:v8 это пространства имен либо я не до конца понял, либо не пойму как записать имя узла с двоеточием в 7.7 может ошибаюсь - поправьте если так. |
|||
12
nv24
07.01.10
✎
11:27
|
вверх
|
|||
13
nv24
07.01.10
✎
11:45
|
Народ, кто пользуется XML для обмена как создать из 7.7 такой элемент в файле
<V8Exch:_1CV8DtUD> Помогите |
|||
15
nv24
07.01.10
✎
14:05
|
ап
|
|||
16
Jaap Vduul
07.01.10
✎
15:31
|
(13)
СоздатьПодчиненныйЭлемент(<?>, ,) createChildElement(<?>, , ) Синтаксис: СоздатьПодчиненныйЭлемент(<НаимЭлемента>, <ВставитьПеред>, <ПространствоИмен>) Назначение Предназначением метода является облегчение часто встречающейся операции - процесса создания подчиненного элемента. Если параметр ВставитьПеред не используется, элемент будет вставлен в конец списка. Возвращаемое значение: Объект созданного элемента Параметры: <НаимЭлемента> - Строковое выражение, содержащее наименование создаваемого элемента. <ВставитьПеред> - Необязательный параметр. Узел, перед которым следует вставить создаваемый узел элемента. <ПространствоИмен> - Необязательный параметр, строковое выражение, указывающее пространство имен, в контексте которого создается новый элемент. Если не указан, анализатор предпринимает попытку создать элемент в контексте пространства имен, определенного у стоящих выше по иерархии узлов документа с учетом префикса, указанного в параметре НаимЭлемента. |
|||
17
Jaap Vduul
07.01.10
✎
15:34
|
+16
Узел = Корень.СоздатьПодчиненныйЭлемент("V8Exch:_1CV8DtUD", , "http://www.1c.ru/V8/1CV8DtUD/"); |
|||
18
nv24
07.01.10
✎
15:56
|
(16)и(17)спаибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |