Ошибка при создании com объекта msxml2 domdocument linux

   Худой

22.03.13 — 05:26

База лежит в PostgreSQL на Linux.

Сделал нормальный обмен данными через файл обмена.

Все работает. Но достало все руками делать.

Решил напрямую из базы в базу.

В общем, если база под Windows(MS SQL или файловая), то обмен без промежуточного файла

работает замечательно.

А вот если Linux, то выдается сообщение

«Ошибка при создании COM-объекта Msxml2.DOMDocument»

и затем, при попытке соединения с базой, выдантся сообщение —

«При попытке соединения с COM-сервером произошла следующая ошибка:

{ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(13796)}: Ошибка при вызове конструктора (COMОбъект): COM-объекты поддерживается только в операционных системах Windows»

Есть решение этой проблемы?

   Капитан О

1 — 22.03.13 — 06:10

есть, но «только в операционных системах Windows»

   Худой

2 — 22.03.13 — 06:13

(1) Это я вижу. Остальное не может быть? Например, под 8.3 что-нибудь, изменили?

   hhhh

3 — 22.03.13 — 07:31

(2) Вроде через файл обмена всё автоматом делается. Почему руками?

   Худой

4 — 22.03.13 — 08:34

(3)Ситуация такая.

База 17 гигабайт. Если через файл обмена делать, то полностью не получается. Файл обмена очень огромный и сваливается по ошибке. Если порциями выгружать, то получается ручками по 2-4 дня. А база почти три года.

   Худой

5 — 22.03.13 — 12:45

Интересно, как выглядят в файле выгрузки PDF файлы, которые находятся в базе.

   ДенисЧ

6 — 22.03.13 — 12:50

откуда в линухе КОМ?

   Serginio1

7 — 22.03.13 — 12:57

(5) В виде Base64. Я бы посоветовал обмен через ФабрикуXDTO.

Ссам так делаю. Вообще 1С с этим обменом давно могла генерить схему и выгружать и загружать данные согласно схеме

   Худой

8 — 22.03.13 — 13:04

(6) Конечно, ниоткуда его там нет. Просто, получается, что не универсальная схема обмена «УниверсальныйОбменДаннымиXML».

(7) А много возни по реализации «обмен через ФабрикуXDTO»?

   Serginio1

9 — 22.03.13 — 13:36

(8) Смотря, что переносить. Я в свое время и за 2 дня написал. Если базы близкие, то По сути занимаешься копированием из одного объектаXdto в другой. За исключением реквизитов с множественнвм типом.

   Худой

10 — 22.03.13 — 13:49

(9)Для начала, базы абсолютно одинаковые.

«За исключением реквизитов с множественнвм типом» — и что с ними делать?

   Serginio1

11 — 22.03.13 — 14:31

Если базы одинаковые то там вообще все значительно проще через ЗаписатьXML прочитатьXML

Если ТекОбъект.Owner<>Неопределено Тогда

Тип=СериализаторXDTO.XMLТипЗнч(ТекОбъект.Owner);

Объект.Owner=Фабрика.Создать(Фабрика.Тип(Тип.URIПространстваИмен, Тип.ИмяТипа),XMLСтрока(ТекОбъект.Owner));

Иначе

Объект.Owner=СсылкаNull

КонецЕсли;

ТипNull=ФабрикаДляКомплексной.Тип(«http://www.w3.org/2001/XMLSchema»,»anySimpleType»);

       СсылкаNull=ФабрикаДляКомплексной.Создать(ТипNull);

   Худой

12 — 22.03.13 — 14:48

(11) То есть, это все работает и под Linux?

   sapphire

13 — 22.03.13 — 14:49

(0) Переписать код под встроенные средства 1С работы с XML.

   Худой

14 — 22.03.13 — 14:55

(13) Спасибо, друг.

А что-нибудь, менее категоричное?

   Serginio1

15 — 22.03.13 — 14:57

(12) Вообще посмотри код обмена данными

http://help1c.com/faq82/view/431.html

   Худой

16 — 22.03.13 — 15:00

(15) Мне надо без промежуточных файлов из одной базы в другую

   К_Дач

17 — 22.03.13 — 15:09

Не знаток Линукса… но одно знаю точно, отличие «универсального обмена» через файл от НЕ через файл только в том, что в случае «не через файл» — файл все равно создается, а точнее не файл а ЗаписьXML, и его чтение запускается в базе-приемнике, которую в свою очередь получают по КОМУ… COMConnector

Чтение в приемнике производит аналогичная обработка УниверсальныйОбмен, только в режиме загрузки. Так что тебе нужна dll-ка, которая позволит в Линуксе сделать ComConnect. Если такие есть — подключить ее и немного дописать код обработок в обеих базах…

   Serginio1

18 — 22.03.13 — 15:12

А чем файлы не нравятся?

Я отвечал тебе на (4). Линукс не поддерживает КОМ.

Но можно наваять ВК, которая по TCPIP будет принимать файлы, отвечать на сообщения

Или Если хочешь автоматизации запускай регламентное задание и проверяй наличие файлов.

   Худой

19 — 22.03.13 — 15:17

(17) Ну я примерно, такое и предполагаю. Даже, вроде, видел какую-то разработку для такого рода вещей под линукс. Но тогда просто прошел мимо, не задумываясь

(18)На изучение всех этих вопросов и, тем более, написание  просто не хватает времени.

Может быть, «регламентное задание» спасет. Но, опять же, этим еще не пробовал заниматься.

  

Serginio1

20 — 22.03.13 — 15:25

(19) Век живи и век учись.

  

Худой

22.03.13 — 05:26

База лежит в PostgreSQL на Linux.

Сделал нормальный обмен данными через файл обмена.

Все работает. Но достало все руками делать.

Решил напрямую из базы в базу.

В общем, если база под Windows(MS SQL или файловая), то обмен без промежуточного файла

работает замечательно.

А вот если Linux, то выдается сообщение

«Ошибка при создании COM-объекта Msxml2.DOMDocument»

и затем, при попытке соединения с базой, выдантся сообщение —

«При попытке соединения с COM-сервером произошла следующая ошибка:

{ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(13796)}: Ошибка при вызове конструктора (COMОбъект): COM-объекты поддерживается только в операционных системах Windows»

Есть решение этой проблемы?

  

Капитан О

1 — 22.03.13 — 06:10

есть, но «только в операционных системах Windows»

  

Худой

2 — 22.03.13 — 06:13

(1) Это я вижу. Остальное не может быть? Например, под 8.3 что-нибудь, изменили?

  

hhhh

3 — 22.03.13 — 07:31

(2) Вроде через файл обмена всё автоматом делается. Почему руками?

  

Худой

4 — 22.03.13 — 08:34

(3)Ситуация такая.

База 17 гигабайт. Если через файл обмена делать, то полностью не получается. Файл обмена очень огромный и сваливается по ошибке. Если порциями выгружать, то получается ручками по 2-4 дня. А база почти три года.

  

Худой

5 — 22.03.13 — 12:45

Интересно, как выглядят в файле выгрузки PDF файлы, которые находятся в базе.

  

ДенисЧ

6 — 22.03.13 — 12:50

откуда в линухе КОМ?

  

Serginio1

7 — 22.03.13 — 12:57

(5) В виде Base64. Я бы посоветовал обмен через ФабрикуXDTO.

Ссам так делаю. Вообще 1С с этим обменом давно могла генерить схему и выгружать и загружать данные согласно схеме

  

Худой

8 — 22.03.13 — 13:04

(6) Конечно, ниоткуда его там нет. Просто, получается, что не универсальная схема обмена «УниверсальныйОбменДаннымиXML».

(7) А много возни по реализации «обмен через ФабрикуXDTO»?

  

Serginio1

9 — 22.03.13 — 13:36

(8) Смотря, что переносить. Я в свое время и за 2 дня написал. Если базы близкие, то По сути занимаешься копированием из одного объектаXdto в другой. За исключением реквизитов с множественнвм типом.

  

Худой

10 — 22.03.13 — 13:49

(9)Для начала, базы абсолютно одинаковые.

«За исключением реквизитов с множественнвм типом» — и что с ними делать?

  

Serginio1

11 — 22.03.13 — 14:31

Если базы одинаковые то там вообще все значительно проще через ЗаписатьXML прочитатьXML

Если ТекОбъект.Owner<>Неопределено Тогда

Тип=СериализаторXDTO.XMLТипЗнч(ТекОбъект.Owner);

Объект.Owner=Фабрика.Создать(Фабрика.Тип(Тип.URIПространстваИмен, Тип.ИмяТипа),XMLСтрока(ТекОбъект.Owner));

Иначе

Объект.Owner=СсылкаNull

КонецЕсли;

ТипNull=ФабрикаДляКомплексной.Тип(«http://www.w3.org/2001/XMLSchema»,»anySimpleType»);

       СсылкаNull=ФабрикаДляКомплексной.Создать(ТипNull);

  

Худой

12 — 22.03.13 — 14:48

(11) То есть, это все работает и под Linux?

  

sapphire

13 — 22.03.13 — 14:49

(0) Переписать код под встроенные средства 1С работы с XML.

  

Худой

14 — 22.03.13 — 14:55

(13) Спасибо, друг.

А что-нибудь, менее категоричное?

  

Serginio1

15 — 22.03.13 — 14:57

(12) Вообще посмотри код обмена данными

http://help1c.com/faq82/view/431.html

  

Худой

16 — 22.03.13 — 15:00

(15) Мне надо без промежуточных файлов из одной базы в другую

  

К_Дач

17 — 22.03.13 — 15:09

Не знаток Линукса… но одно знаю точно, отличие «универсального обмена» через файл от НЕ через файл только в том, что в случае «не через файл» — файл все равно создается, а точнее не файл а ЗаписьXML, и его чтение запускается в базе-приемнике, которую в свою очередь получают по КОМУ… COMConnector

Чтение в приемнике производит аналогичная обработка УниверсальныйОбмен, только в режиме загрузки. Так что тебе нужна dll-ка, которая позволит в Линуксе сделать ComConnect. Если такие есть — подключить ее и немного дописать код обработок в обеих базах…

  

Serginio1

18 — 22.03.13 — 15:12

А чем файлы не нравятся?

Я отвечал тебе на (4). Линукс не поддерживает КОМ.

Но можно наваять ВК, которая по TCPIP будет принимать файлы, отвечать на сообщения

Или Если хочешь автоматизации запускай регламентное задание и проверяй наличие файлов.

  

Худой

19 — 22.03.13 — 15:17

(17) Ну я примерно, такое и предполагаю. Даже, вроде, видел какую-то разработку для такого рода вещей под линукс. Но тогда просто прошел мимо, не задумываясь

(18)На изучение всех этих вопросов и, тем более, написание  просто не хватает времени.

Может быть, «регламентное задание» спасет. Но, опять же, этим еще не пробовал заниматься.

  

Serginio1

20 — 22.03.13 — 15:25

(19) Век живи и век учись.

4 / 4 / 0

Регистрация: 06.03.2018

Сообщений: 134

1

17.04.2020, 10:12. Показов 2879. Ответов 4


Не совсем понимаю почему появилась ошибка
Ошибка при создании ком-объекта Msxml2.DOMDocument при выгрузке 1С Бухгалтерия, установил Microsoft Core XML Services (MSXML) 6.0 — все равно ошибка

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

17.04.2020, 13:11

2

наверное нет такого com?

0

Модератор

Эксперт 1С

3697 / 2897 / 569

Регистрация: 10.03.2011

Сообщений: 11,398

Записей в блоге: 1

17.04.2020, 15:59

3

Stavrius, 1С 7.7 ?
Зачем тебе Msxml2.DOMDocument ?

Добавлено через 39 секунд

Цитата
Сообщение от Dethmontt
Посмотреть сообщение

Msxml2.DOMDocument

Полностью повторен в платформе 1С 8.1 и старше в виде родных объектов

0

4 / 4 / 0

Регистрация: 06.03.2018

Сообщений: 134

18.04.2020, 07:02

 [ТС]

4

Dethmontt, для выгрузки данных в Бухгалтерию

Добавлено через 43 секунды
_ЕГОР_, как его можно создать ?

0

Модератор

Эксперт 1С

3697 / 2897 / 569

Регистрация: 10.03.2011

Сообщений: 11,398

Записей в блоге: 1

20.04.2020, 02:41

5

Цитата
Сообщение от Stavrius
Посмотреть сообщение

_ЕГОР_, как его можно создать ?

Новый ЗаписьXML

0

В 1С можно распарсить XML файл с помощью COM объекта «Msxml2.DOMDocument». В зависимости от установленного программного обеспечения, доступны различные версии «Дом документа». Подробно, свойства и методы различных версий DOMDocument описаны в MSDN.

Версии DomDocument
Msxml2.DOMDocument.3.0
Msxml2.DOMDocument.4.0
Msxml2.DOMDocument.5.0
Msxml2.DOMDocument.6.0

Для того чтобы создать или парсить xml, существуют примеры написанные с использованием встроенных объектов (ЗаписьXML, ЧтениеXML) языка программирования 1С. При сложной структуре xml, объём программного кода в таких примерах может быть очень большим. При использовании «Msxml2.DOMDocument» программный код можно сделать более компактным и получить более гибкий механизм обращения к узлам XML документа.

Технология DOMDocument предоставляет удобные методы для работы с данными в виде XML. В данном объекте, структура данных представлена в виде дерева узлов. Все узлы, являются подчиненными к корневому. Благодаря DOMDocument можно перебирать, создавать, удалять, копировать узлы и выполнять многие другие действия.

Создать, записать XML файл

Функция СоздатьXML()Попытка
DomDocument = Новый COMОбъект("MSXML2.DOMDocument.6.0");
Исключение
Сообщить("Ошибка: объект MSXML2.DOMDocument не создан");
Возврат Ложь;
КонецПопытки;//Записать объявление XML
XML = DomDocument.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""");
DomDocument.insertBefore(XML,);//Создать корневой узел
ElementRootTag = DomDocument.createElement("RootTag"); //Создать подчиненный узел
ElementTag = DomDocument.createElement("Tag");
ElementTag.setAttribute("ИмяАтрибута","ЗначениеАтрибута");
ElementText = DomDocument.createTextNode("Текст");
ElementTag.appendChild(ElementText);
CDATA = DomDocument.createCDATASection("Значение");
ElementTag.appendChild(CDATA);//Записать узлы
ElementRootTag.appendChild(ElementTag);
DomDocument.appendChild(ElementRootTag);//Записать файл
DomDocument.Save("C:Test.xml");//Сформированный XML текст
XMLТекст = DomDocument.xml;КонецФункции

Прочитать XML файл

Функция СчитатьXML()Попытка
DomDocument = Новый COMОбъект("MSXML2.DOMDocument.6.0");
Исключение
Сообщить("Ошибка: объект MSXML2.DOMDocument не создан");
Возврат Ложь;
КонецПопытки;//Загрузить XML из строки
DomDocument.loadXML("<?xml version=""1.0"" encoding=""UTF-8""?>
|<RootTag>
|<Tag Имя="
"Значение"">Текст[CDATA[Значение]]</Tag>
|</RootTag>"
);//Загрузить файл XML
DomDocument.load("C:Test.xml");Если DomDocument.parseError.errorCode <> 0 Тогда
Сообщить("Ошибка: XML файл не валидный");
Возврат Ложь;
КонецЕсли;//Выбрать узлы
Nodes = DomDocument.SelectNodes("Tag");Для Индекс = 0 По Nodes.Length - 1 Цикл
ЗначениеАтрибута = Nodes.Item(Индекс).getAttribute("ИмяАтрибута");
Tag = Nodes.Item(Индекс);
КонецЦикла; КонецФункции

Похожие статьи:
ЗаписьXML, ЧтениеXML в 1С:Предприятии
Запись, чтение XML из ДокументDOM

I am trying to create an instance of the object Msxml2.DOMDocument.4.0, but I am getting the following error:
ActiveX component can’t create object: ‘MSXML2.DOMDocument’

The error occures in this line:
Set xmlDoc = CreateObject(«Msxml2.DOMDocument.4.0»)

How can I solve this problem?

Thank you for your helps

asked Apr 23, 2013 at 10:32

Kaja's user avatar

Probably the specific version 4.0 of Msxml2.DOMDocument is not (properly) installed on the computer your script runs on. Try to create the version-independent object:

Set xmlDoc = CreateObject("Msxml2.DOMDocument")

This should give you the version that ‘works’ on your machine. If this fails, try

Set xmlDoc = CreateObject("Msxml2.DOMDocument.6.0")

or experiment with the version number. Use TypeName(xmlDoc) to get a hint wrt the effective version.

P.S. If your problem is caused by 32 vs. 64 bit troubles, this may give you further hints for things to check.

answered Apr 23, 2013 at 11:27

Ekkehard.Horner's user avatar

Ekkehard.HornerEkkehard.Horner

38.2k2 gold badges43 silver badges94 bronze badges

Check if msxml4.dll exists on your system. and (re-)register the library if it does:

cd %SystemRoot%system32
regsvr32 /u msxml4.dll
regsvr32 msxml4.dll

You need admin privileges to do this.

answered Apr 23, 2013 at 14:34

Ansgar Wiechers's user avatar

Ansgar WiechersAnsgar Wiechers

189k23 gold badges240 silver badges313 bronze badges

I am trying to create an instance of the object Msxml2.DOMDocument.4.0, but I am getting the following error:
ActiveX component can’t create object: ‘MSXML2.DOMDocument’

The error occures in this line:
Set xmlDoc = CreateObject(«Msxml2.DOMDocument.4.0»)

How can I solve this problem?

Thank you for your helps

asked Apr 23, 2013 at 10:32

Kaja's user avatar

Probably the specific version 4.0 of Msxml2.DOMDocument is not (properly) installed on the computer your script runs on. Try to create the version-independent object:

Set xmlDoc = CreateObject("Msxml2.DOMDocument")

This should give you the version that ‘works’ on your machine. If this fails, try

Set xmlDoc = CreateObject("Msxml2.DOMDocument.6.0")

or experiment with the version number. Use TypeName(xmlDoc) to get a hint wrt the effective version.

P.S. If your problem is caused by 32 vs. 64 bit troubles, this may give you further hints for things to check.

answered Apr 23, 2013 at 11:27

Ekkehard.Horner's user avatar

Ekkehard.HornerEkkehard.Horner

38.2k2 gold badges43 silver badges94 bronze badges

Check if msxml4.dll exists on your system. and (re-)register the library if it does:

cd %SystemRoot%system32
regsvr32 /u msxml4.dll
regsvr32 msxml4.dll

You need admin privileges to do this.

answered Apr 23, 2013 at 14:34

Ansgar Wiechers's user avatar

Ansgar WiechersAnsgar Wiechers

189k23 gold badges240 silver badges313 bronze badges

Опубликова веб-сервис в Apache 2.2. В методе есть строка создающая объект XML = Новый COMОбъект(«Msxml2.DOMDocument.3.0»);. Так вот почему-то объект не создается. Причем этот же код запущеный из внешней обработки работает хорошо. А так же нормально работает при обращении к сервису через IIS. Может права какие-нить не донастроил?

Упрощаю задачу..кто-нить может расшифровать строку «дать права пользователю, от лица которого запускается apache, на каталог «bin» файлов 1C:Предприятия 8.1 (чтение и выполнение) и каталог информационной базы (чтение и запись).» Как я узнаю от кого запущен apache?

Веб-сервер Apache на Windows работает только от NTLocalSystem (LocalService).

Хмм, я тут посмотрел в Сервисах и нашел там сервис Apache2.2.. Я так понимаю что это его процесс. Так вот в свойства стоит что он запускается с системной учетной записью. Или это не тот процесс. Кстати пробовал давать полные права LocalService на различные папки ничего не помогло..COMОбъект(«Msxml2.DOMDocument.3.0») не создается.

у кого есть сервис на Apache вставьте » XML2 = Новый COMОбъект(«Msxml2.DOMDocument.3.0″);» эту строку может у кого ещё не работает?

Посмотрел ошибку.. «Не был произведен вызов CoInitialize» тут есть описание как люди с этим борятся, но как-то уж очень не доходчиво.. как создать и вызвать метод та??

Тэги:

Комментарии доступны только авторизированным пользователям

Я пытаюсь создать экземпляр объекта Msxml2.DOMDocument.4.0, но я получаю следующую ошибку:
компонент ActiveX не может создать объект: ‘MSXML2.DOMDocument’

ошибка возникает в этой строке:
Набор xmlDoc = функция createobject(«msxml2 описывается.DOMDocument.4.0»)

Как я могу решить эту проблему?

Спасибо за помощь

2 ответов


вероятно, конкретная версия 4.0 Msxml2.DOMDocument не установлен (правильно)на компьютере, на котором выполняется сценарий. Попробуйте создать независимый от версии объект:

Set xmlDoc = CreateObject("Msxml2.DOMDocument")

Это должно дать вам версию, которая «работает» на вашей машине. Если это не удается, попробуйте

Set xmlDoc = CreateObject("Msxml2.DOMDocument.6.0")

или поэкспериментируйте с номером версии. Использовать TypeName(xmlDoc) чтобы получить подсказку wrt эффективной версии.

P. S. Если ваша проблема вызвана 32 и 64 бит проблемы, этой может дать вам дополнительные подсказки для вещей, чтобы проверить.

16

автор: Ekkehard.Horner


проверить, если msxml4.dll существует в вашей системе. и (повторно)зарегистрируйте библиотеку, если она это делает:

cd %SystemRoot%system32
regsvr32 /u msxml4.dll
regsvr32 msxml4.dll

для этого вам нужны права администратора.


Мы переносим огромное приложение с 32-битного на 64-битное. В этом приложении есть несколько внешних библиотек, которые мы либо отключили, либо использовали их 64-битные версии. Мы также обращаемся к базе данных с помощью наших самописных COM-методов. И мы использовали MSXML4, который отлично работал на 32-разрядных версиях.

64-разрядной версии MSXML4 не существует, поэтому мы обновились до MSXML6. Мы просто используем несколько функций MSXML, особенно парсер DOM, поэтому единственное, что мы сделали, это подставили следующие строки:

#import "msxml6.dll"

и

MSXML2::IXMLDOMDocumentPtr pXMLDocPtr;
pXMLDocPtr.CreateInstance( ___uuidof( MSXML2::DOMDocument60 ) );

затем мы пытаемся сделать что-то вроде этого:

pXMLDocPtr->loadXML( _bstr_t( L"<?xml version="1.0" encoding="utf-8"?><abc></abc>" ) );

Это отлично работает под 32-битной. Но в 64-разрядной версии msxml6.dll выдает исключение при вызове функции loadXML. Хотя CreateInstance возвращает действительный указатель и код возврата S_OK. В выводе отладки также отображается сообщение об ошибке:

First-chance exception at 0x000007fef888238e in App.exe: 0xC0000005: Access violation reading location 0xffffffffffffffff.
Unhandled exception at 0x000007fef888238e in App.exe: 0xC0000005: Access violation reading location 0xffffffffffffffff.

Сначала мы думали, что используем библиотеку неправильно, но потом обнаружили следующее. Если мы прочитаем наш XML-файл до того, как инициализируем наши собственные COM-компоненты, это сработает. Так что теперь похоже, что наши собственные COM-компоненты «повреждают» COM-библиотеку. Но как это вообще возможно?

Мы немного поэкспериментировали, и проблема возникает, только если мы пытаемся использовать MSXML. Все остальные COM-объекты работают. За исключением одного раза, когда IFileDialog (который, я думаю, также является классом COM) разбился во время его использования.

Проблема возникает сразу после того, как мы вызываем CoCreateInstance наших COM-компонентов, что в нашем случае мало что делает. И я не вижу явных ошибок на нашем COM-сервере, например, с 64-битными типами данных.

Итак, вопрос:

Глючит ли 64-битная версия MSXML?

Или мы допустили фатальную ошибку с нашим 64-битным портом COM-серверов?

Кто-нибудь сталкивался с подобными проблемами?

Любая помощь будет признательна, так как я действительно застрял в данный момент, потому что я понятия не имею, как отследить реальную проблему.

Содержание

  1. Ошибка при создании ком-объекта Msxml2.DOMDocument
  2. Соединение с COM-сервером
  3. Сценарии объектной модели документа DOM XML средствами OLE-Automation
  4. MS XML Parser как OLE-сервер
  5. Пример XML-документа
  6. Загрузка XML-документа, отслеживание ошибок
  7. Обход дерева элементов
  8. Получение информации о текущем узле дерева XML-документа
  9. Поиск и отбор узлов
  10. Создание, модификация и запись XML-документов
  11. Обработка поддеревьев стилевыми таблицами
  12. Прочие свойства и методы

Ошибка при создании ком-объекта Msxml2.DOMDocument

Ошибка при создании COM объекта
Подскажите пожалуйста в чем может быть причина. Connector = Новый.

Ошибка при создании объекта Excel.Application
Здравствуйте. Делаю собственную конфигурацию в 1С8.3. Есть несколько обработок, которые выводят.

Ошибка при создании нового документа: Поле объекта не обнаружено (srcElement)
Здравствуйте. Создаю программно новый документ ЭлектронноеПисьмо. Нужно передать текст письма.

Свойство у объекта MSXML2.DOMDocument, чтобы каждый новый тэг писался с красной строки
добрый день у меня такой вопрос есть: Я создаю xml-файл с помощью MSXML2.DOMDocument. И если.

Stavrius, 1С 7.7 ?
Зачем тебе Msxml2.DOMDocument ?

Добавлено через 39 секунд

Dethmontt, для выгрузки данных в Бухгалтерию

Добавлено через 43 секунды
_ЕГОР_, как его можно создать ?

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Msxml2.DOMDocument — Access is denied
var currXML = new ActiveXObject(‘Msxml2.DOMDocument.4.0’); currXML.async = false;.

объект Msxml2.DOMDocument, метод load
Hello, All! Подскажите кто-нибудь почему у меня не получается загрузить xml-документ? Причем.

создание програмно MSXML2.DomDocument на win2000servSP4
скачал с РСДН скрипт дерева. разработал на вин2003сервер всё работает обалденно. думаю ну.

Парсинг XML юзаем Msxml2 (DOMDocument.6.0)
За основу взята тема https://www.cyberforum.ru/vbscript-wsh/thread191330.html Цель: вытащить.

Ошибка при создании объекта
Только начал учить С#, делаю все по книге. using System; class Animal < Animal Barsik; .

Ошибка при создании объекта
Здравствуйте, товарищи. Работаю в vba в excel. Windows 10, 64bit. При попытке создать экземпляр.

Источник

База лежит в PostgreSQL на Linux.
Сделал нормальный обмен данными через файл обмена.
Все работает. Но достало все руками делать.
Решил напрямую из базы в базу.
В общем, если база под Windows(MS SQL или файловая), то обмен без промежуточного файла
работает замечательно.

А вот если Linux, то выдается сообщение
«Ошибка при создании COM-объекта Msxml2.DOMDocument»

и затем, при попытке соединения с базой, выдантся сообщение —

«При попытке соединения с COM-сервером произошла следующая ошибка:
<ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(13796)>: Ошибка при вызове конструктора (COMОбъект): COM-объекты поддерживается только в операционных системах Windows»

Есть решение этой проблемы?

Не знаток Линукса. но одно знаю точно, отличие «универсального обмена» через файл от НЕ через файл только в том, что в случае «не через файл» — файл все равно создается, а точнее не файл а ЗаписьXML, и его чтение запускается в базе-приемнике, которую в свою очередь получают по КОМУ. COMConnector

Чтение в приемнике производит аналогичная обработка УниверсальныйОбмен, только в режиме загрузки. Так что тебе нужна dll-ка, которая позволит в Линуксе сделать ComConnect. Если такие есть — подключить ее и немного дописать код обработок в обеих базах.

А чем файлы не нравятся?
Я отвечал тебе на (4). Линукс не поддерживает КОМ.
Но можно наваять ВК, которая по TCPIP будет принимать файлы, отвечать на сообщения

Или Если хочешь автоматизации запускай регламентное задание и проверяй наличие файлов.

Источник

Сценарии объектной модели документа DOM XML средствами OLE-Automation

MS XML Parser как OLE-сервер

Библиотека MS XML Parser предоставляет возможность работы с XML-документами в скриптах, использующих объектную модель DOM XML. Такая работа возможна практически в любых средах, способных выступить в роли OLE-клиента. В данной статье примеры скриптов будут приводиться на языке VBScript для административных скриптов Windows. Вы можете копировать содержимое подобных примеров в текстовые файлы с расширением .vbs и запускать эти файлы на исполнение двойным щелчком мыши или из командной строки с помощью интерпретатора cscript.exe.

Объект DOMDocument создаётся следующим образом:

Set xmlParser = CreateObject(«Msxml2.DOMDocument»)

После этого вы можете вызывать и использовать методы и свойства этого объекта для чтения и записи XML-документов. Примечание: методы объектов XMLDOMDocument и XMLDOMElement во многом сходны, поэтому рассматриваются в данной статье совместно. Описание свойств, методов и событий в данной статье не является полностью исчерпывающим. Полное описание объектной модели MS XML Parser вы можете получить в MSDN, воспользовавшись, например, поиском по словосочетанию «IXMLDOMDocument/DOMDocument Members» или «IXMLDOMElement Members».

Пример XML-документа

В примерах кода, приведённых ниже, используется следующий «образцовый» XML-документ, представляющий из себя некий абстрактный упрощённый каталог товаров:

Вот XSL-таблица стилей для вышеприведённого документа, которая также является обычным XML-документом:

Загрузка XML-документа, отслеживание ошибок

Перечень свойств, методов и событий:

Описание
async Булево. Чтение и запись. Истина, если разрешена асинхронная загрузка документа. По умолчанию — истина. Если свойство установлено в True, метод load вернёт управление раньше, чем загрузка будет завершена. В этом случае вы можете использовать свойство readyState для проверки состояния загрузки, обрабатывая событие onreadystatechange.
parsed Булево. Только для чтения. Определяет состояние разборки узла и его дочерних узлов. В процессе асинхронного доступа в какой-то конкретный момент может оказаться доступным не все дерево документа. Перед выполнением некоторых операций, типа преобразований XSLT, полезно знать, доступно ли все дерево ниже этого узла для обработки.
parseError Только для чтения. Возвращает ссылку на объект XMLDOMParseError, при помощи которого можно получить подробную информацию о последней ошибке анализатора.
readyState Только для чтения. Возвращает целое число, характеризующее текущее состояние анализатора:

  • LOADING (1) — находится в процессе загрузки документа.
  • LOADED (2) — загрузка завершена, но объектная модель документа ещё не доступна.
  • INTERACTIVE (3) — объектная модель создана (все элементы разобраны, установлены их связи и атрибуты), но доступна пока только для чтения.
  • COMPLETED (4) — документ разобран, с ошибками или без.

resolveExternals Булево. Чтение и запись. По умолчанию — истина. Определяет, должны ли быть разрешены во время разбора внешние определения — пространства имён, внешние подмножества DTD и ссылки на внешние примитивы, независимо от проверки на валидность. Если задано True, внешние определения разрешаются во время разбора. Это позволяет определить атрибуты по умолчанию и типы данных и использовать внешнее подмножество DTD. Эта установка независима от того, должна ли быть выполнена проверка на валидность (что задаётся значением свойства validateOnParse). Если внешнее определение не может быть разрешено в процессе разбора, происходит ошибка.
validateOnParse Булево. Чтение и запись. По умолчанию — истина. Определяет, должен ли парсер проверить документ на валидность. Если установлено False, осуществляется только проверка на корректно сформированный (well-formed) документ.
abort() Прерывание процесса асинхронной загрузки и обработки документа. Объект XMLDOMParseError будет содержать информацию об ошибке. Если загрузка уже завершена (свойство readyState равно 4), никакие действия не предпринимаются.
load(xmlSource) Загружает документ, URL которого задан параметром xmlSource. В случае успеха возвращает True. Вызов этого метода обнуляет содержимое текущего документа. Если указанный URL не доступен или не ссылается на документ XML, этот метод возвращает ошибку и устанавливает свойство documentElement в null. Вы можете использовать этот метод, чтобы проверить, правильно ли построен (well-formed) документ XML. Вы не можете использовать этот метод, чтобы проверить документ на валидность.
loadXML(strXML) Загружает XML-фрагмент из передаваемой строки. Вы можете использовать этот метод, чтобы проверить, правильно ли построен (well-formed) документ XML. Вы не можете использовать этот метод, чтобы проверить документ на валидность.
ondataavailable Событие вызывается, когда обработчик обрабатывает очередную порцию данных документа. В обработчике этого события можно проверять текущий статус асинхронной загрузки (значение свойства readyState).
onreadystatechange Событие вызывается каждый раз, когда изменяется состояние обработчика — значение свойства readyState.

Свойства объекта XMLDOMParseError (все свойства доступны только для чтения):

Описание
errorCode Содержит код возникшей ошибки или нуль, если ошибки не случилось.
filepos Содержит смещение относительно начала файла, в котором обнаружена ошибка.
line Содержит номер строки, в которой обнаружена ошибка.
linepos Содержит позицию ошибки в строке, в которой обнаружена ошибка.
reason Содержит описание ошибки.
srcText Содержит полный текст строки, в которой обнаружена ошибка.
url Содержит URL обрабатываемого документа.

Пример скрипта, осуществляющего загрузку XML-документа с проверкой на ошибки:

Пример асинхронной загрузки XML-документа:

Обход дерева элементов

Перечень свойств и методов:

Описание
documentElement Содержит узел, представляющий корневой элемент документа (объект XMLDOMElement). Чтение и запись. Возможно присвоение ссылки на другой объект созданного ранее документа.
childNodes Содержит коллекцию (объект XMLDOMNodeList) всех дочерних узлов-неатрибутов данного узла. Только чтение.
firstChild Содержит первый дочерний узел данного узла, не являющийся атрибутом. Только чтение.
lastChild Содержит последний дочерний узел данного узла, не являющийся атрибутом. Только чтение.
nextSibling Содержит следующий узел (любого типа) на том же уровне данного узла. Только чтение.
previousSibling Содержит предыдущий узел (любого типа) на том же уровне данного узла. Только чтение.
parentNode Содержит узел, для которого данный узел является дочерним (не действует для атрибутов). Только чтение.
ownerDocument Содержит корневой узел документа, содержащего данный узел. Только чтение.
text Содержит всё текстовое содержимое данного узла, включая подчинённые узлы. Чтение и запись.
xml Содержит всё xml-содержимое данного узла, включая подчинённые узлы. Только чтение.
nodeValue Содержит значение данного узла. Если компонент XML непосредственно не имеет значения, содержит null. Чтение и запись.
getElementsByTagName(typename) Возвращает коллекцию XMLDOMNodeList всех элементов заданного типа. Если указано «*», возвращает все элементы.
attributes Содержит коллекцию XMLDOMNamedNodeMap всех дочерних узлов-атрибутов данного узла. Только чтение.
getAttribute(name) Возвращает значение атрибута с заданным именем.
getAttributeNode(name) Возвращает узел атрибута с заданным именем.

Свойства и методы объекта-коллекции XMLDOMNodeList:

Описание
length Количество элементов (узлов) в коллекции.
item(index) Возвращает узел по заданному индексу. Отсчёт начинается с нуля. Данный метод является методом по умолчанию.
reset() Устанавливает внутренний указатель на позицию перед первым узлом в наборе, чтобы следующий вызов nextNode() возвращал первый узел.
nextNode() Возвращает следующий узел в наборе, в соответствии с позицией внутреннего указателя.

Коллекция XMLDOMNamedNodeMap помимо свойств и методов коллекции XMLDOMNodeList поддерживает методы:

Описание
getNamedItem(strName) Возвращает узел, соответствующий атрибуту с заданным именем.
setNamedItem(newItem) Добавляет переданный узел-атрибут в коллекцию (если атрибут с таким именем уже есть, замещает).

Перебор наименований товаров из образцового XML-документа:

Ещё один способ перебора наименований товаров из образцового XML-документа (используем коллекцию XMLDOMNodeList):

Работаем с атрибутами. Выводим наименования только импортных товаров из образцового XML-документа:

Рекурсивный обход всего дерева элементов. Этот скрипт будет работать для любого XML-документа, в т.ч. для XSL-таблицы стилей, приведённой выше непосредственно после нашего «каталога товаров»:

Получение информации о текущем узле дерева XML-документа

Описание
nodeName Содержит полное имя данного узла, включая префикс пространства имён. Только чтение.
baseName Содержит имя данного узла без префикса пространства имён. Только чтение.
prefix Содержит префикс (пространства имён) имени данного узла. Только чтение.
nodeType Содержит тип текущего узла (число). Только чтение. Возможные значения:

  • NODE_ELEMENT(1) — элемент.
  • NODE_ATTRIBUTE(2) — атрибут.
  • NODE_TEXT(3) — текст.
  • NODE_CDATA_SECTION(4) — раздел CDATA.
  • NODE_ENTITY_REFERENCE(5) — примитив (ссылка в тексте).
  • NODE_ENTITY(6) — объявление примитива.
  • NODE_PROCESSING_INSTRUCTION(7) — инструкция по обработке.
  • NODE_COMMENT(8) — комментарий.
  • NODE_DOCUMENT(9) — корневой элемент документа.
  • NODE_DOCUMENT_TYPE(10) — описание типа документа (DTD).
  • NODE_DOCUMENT_FRAGMENT(11) — фрагмент XML-документа (несвязанное поддерево).
  • NODE_NOTATION(12) — нотация.

nodeTypeString Содержит тип текущего узла (строка строчными буквами). Только чтение.
dataType Содержит тип данных узла-атрибута, если этот тип данных определён в DTD. Чтение и запись.
namespaceURI Содержит URI пространства имён текущего узла. Только чтение.
definition Для узла типа «entityreference» содержит узел типа «entity» (т.е. его DTD-определение). Только чтение.

Рекурсивный обход всего дерева элементов с выводом информации о текущем узле. Этот скрипт будет работать для любого XML-документа, в т.ч. для XSL-таблицы стилей, приведённой выше непосредственно после нашего «каталога товаров»:

Поиск и отбор узлов

Описание
selectNodes(patternString) Возвращает коллекцию XMLDOMNodeList, содержащую поддерево, выбранное по шаблону поиска patternString.
selectSingleNode(patternString) Аналогичен методу selectNodes, но возвращает только первый узел из выбранного поддерева.

В качестве параметра вышеуказанные методы принимают строку XSL-запроса (образец поиска — XSL pattern). Язык XSL-запросов напоминает способ определения пути в файловой системе — это список узлов, разделённых символом «/». Для указания на текущий элемент используется символ «.», на родительский — «..», для указания на все дочерние элементы — символ «*», для указания на элемент, расположенный ниже по дереву (не важно, на каком уровне вложенности) — символы «//». Условия в запросе заключаются в квадратные скобки «[» и «]». Имена атрибутов в запросе должны предваряться символом «@».

Вот примеры простейших запросов к образцовому XML-документу, расположенному в начале статьи:

  • «/PRODUCTS» — корневой элемент.
  • «//PRODUCT» или «/PRODUCTS/PRODUCT» — все элементы PRODUCT.
  • «//PRODUCT[@import]» — все элементы PRODUCT, в которых определён атрибут import.
  • «//PRODUCT[@import=’yes’]» — все элементы PRODUCT, у которых атрибут import равен «yes».
  • «//PRODUCT[SORT]» — все элементы PRODUCT, которые содержат хотя бы один элемент SORT.
  • «//SORT[COLOR or PRICE]» — все элементы SORT, которые содержат элементы COLOR или PRICE.

Выберем из образцового XML-документа и отобразим наименования отечественных товаров, у которых есть сорт серого цвета, а также всех импортных товаров:

Вот запрос, составленный по-другому, но возвращающий те же результаты:

Ещё один способ выборки, с использованием метода selectSingleNode:

Создание, модификация и запись XML-документов

Описание
save(objTarget) Сохраняет документ в файле (если указан URL) или замещает содержимое другого документа (если указан объект XMLDOMDocument).
createElement(tagName) Создаёт и возвращает элемент с указанным именем.
createAttribute(name) Создаёт и возвращает новый атрибут с указанным именем.
createCDATASection(strData) Создаёт и возвращает новый узел CDATA, содержащий переданное значение.
createProcessingInstruction(strTarget, strData) Создаёт и возвращает новый узел инструкции по обработке.
createComment(strComment) Создаёт и возвращает новый узел комментария.
createEntityReference(strName) Создаёт и возвращает новый узел ссылки на примитив.
createTextNode(strText) Создаёт и возвращает новый текстовый узел.
createNode(numType, strName, strNamespaceURI) Универсальный метод — создаёт и возвращает новый узел указанного типа и названия. Позволяет использовать пространства имён.
createDocumentFragment() Создаёт и возвращает новый пустой фрагмент XML-документа, который в дальнейшем можно «наполнить» узлами и присоединить к XML-документу.
cloneNode(boolDeep) Создаёт и возвращает копию текущего узла. Параметр boolDeep определяет, нужно ли рекурсивно копировать дочерние элементы.
setAttribute(name, value) Устанавливает значение указанного атрибута текущего узла. При необходимости создаёт атрибут.
setAttributeNode(AttributeNode) Устанавливает или обновляет переданный атрибут у текущего элемента.
removeAttribute(name) Удаляет указанный атрибут. Если указанный атрибут имеет значение по умолчанию, вместо удаления происходит замещение: атрибуту просто устанавливается значение по умолчанию.
removeAttributeNode(nodeAttribute) Удаляет переданный объект узла-атрибута. Если этот атрибут имеет значение по умолчанию, вместо удаления происходит замещение: атрибуту просто устанавливается значение по умолчанию.
appendChild(newChildNode) Добавляет текущему узлу новый дочерний элемент и возвращает ссылку на этот элемент. То же самое можно сделать вызовом insertBefore(newChildNode, null).
insertBefore(newChildNode, refChildNode) Вставляет новый дочерний узел (newChildNode) перед указанным существующим дочерним узлом (refChildNode). Если последний параметр не задан, новый дочерний узел будет добавлен в конец.
replaceChild(newChildNode, oldChildNode) Заменяет указанный дочерний объект текущего элемента на новый и возвращает старый дочерний объект. Если новый дочерний объект — null, старый дочерний объект будет просто удалён.
removeChild(childNode) Удаляет указанный дочерний объект текущего элемента и возвращает его.

Все методы, которые создают новые объекты (createElement, createAttribute и подобные) не выполняют никакой работы, кроме непосредственно самого создания объектов. Для включения созданных объектов в документ надо дополнительно вызывать методы appendChild, insertBefore и подобные.

Пример создания нового XML-документа:

Добавим новый товар в начало нашего существующего «каталога товаров»:

Добавим новый товар в начало нашего существующего «каталога товаров» с помощью копирования:

Меняем местами, удаляем товары:

Обработка поддеревьев стилевыми таблицами

Описание
transformNode(objStylesheet) Назначает стилевую таблицу для текущего узла и возвращает строку — результат обработки. Текущим узлом может быть весь XML-документ.
transformNodeToObject(objStylesheet, objXMLDOMDocument) То же, что и transformNode, но результат не возвращается, а помещается в objXMLDOMDocument.

Применяем существующую стилевую таблицу к каталогу товаров:

Вывод товаров в обратном порядке с помощью XSL-сортировки:

Прочие свойства и методы

Перечень свойств и методов:

Описание
doctype Содержит объект XMLDOMDocumentType (узел DTD XML-документа). Только чтение. Если DTD в документе отсутствует, свойство содержит null. Только чтение.
url Содержит URL документа. Только чтение.
nodeFromID(idString) Возвращает узел по значению его атрибута типа ID (т.е. осуществляет поиск узла по ID) или Nothing, если узел не найден.
hasChildNodes() Возвращает True, если текущий узел имеет дочерние узлы, и False в противном случае.
specified Возвращает True, если текущий узел атрибута явно определён в тексте документа, и False в противном случае (если атрибут опущен и имеет значение по умолчанию, взятое из DTD).
normalize() Нормализует все текстовые узлы элемента (на любой глубине), объединяя два или больше смежных текстовых узла в один текстовый узел.

Примеры использования некоторых свойств и методов:

Источник

В 1С можно распарсить XML файл с помощью COM объекта «Msxml2.DOMDocument». В зависимости от установленного программного обеспечения, доступны различные версии «Дом документа». Подробно, свойства и методы различных версий DOMDocument описаны в MSDN.

Версии DomDocument
Msxml2.DOMDocument.3.0
Msxml2.DOMDocument.4.0
Msxml2.DOMDocument.5.0
Msxml2.DOMDocument.6.0

Для того чтобы создать или парсить xml, существуют примеры написанные с использованием встроенных объектов (ЗаписьXML, ЧтениеXML) языка программирования 1С. При сложной структуре xml, объём программного кода в таких примерах может быть очень большим. При использовании «Msxml2.DOMDocument» программный код можно сделать более компактным и получить более гибкий механизм обращения к узлам XML документа.

Технология DOMDocument предоставляет удобные методы для работы с данными в виде XML. В данном объекте, структура данных представлена в виде дерева узлов. Все узлы, являются подчиненными к корневому. Благодаря DOMDocument можно перебирать, создавать, удалять, копировать узлы и выполнять многие другие действия.

Создать, записать XML файл

Функция СоздатьXML()Попытка
DomDocument = Новый COMОбъект("MSXML2.DOMDocument.6.0");
Исключение
Сообщить("Ошибка: объект MSXML2.DOMDocument не создан");
Возврат Ложь;
КонецПопытки;//Записать объявление XML
XML = DomDocument.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""");
DomDocument.insertBefore(XML,);//Создать корневой узел
ElementRootTag = DomDocument.createElement("RootTag"); //Создать подчиненный узел
ElementTag = DomDocument.createElement("Tag");
ElementTag.setAttribute("ИмяАтрибута","ЗначениеАтрибута");
ElementText = DomDocument.createTextNode("Текст");
ElementTag.appendChild(ElementText);
CDATA = DomDocument.createCDATASection("Значение");
ElementTag.appendChild(CDATA);//Записать узлы
ElementRootTag.appendChild(ElementTag);
DomDocument.appendChild(ElementRootTag);//Записать файл
DomDocument.Save("C:Test.xml");//Сформированный XML текст
XMLТекст = DomDocument.xml;КонецФункции

Прочитать XML файл

Функция СчитатьXML()Попытка
DomDocument = Новый COMОбъект("MSXML2.DOMDocument.6.0");
Исключение
Сообщить("Ошибка: объект MSXML2.DOMDocument не создан");
Возврат Ложь;
КонецПопытки;//Загрузить XML из строки
DomDocument.loadXML("<?xml version=""1.0"" encoding=""UTF-8""?>
|<RootTag>
|<Tag Имя="
"Значение"">Текст[CDATA[Значение]]</Tag>
|</RootTag>"
);//Загрузить файл XML
DomDocument.load("C:Test.xml");Если DomDocument.parseError.errorCode <> 0 Тогда
Сообщить("Ошибка: XML файл не валидный");
Возврат Ложь;
КонецЕсли;//Выбрать узлы
Nodes = DomDocument.SelectNodes("Tag");Для Индекс = 0 По Nodes.Length - 1 Цикл
ЗначениеАтрибута = Nodes.Item(Индекс).getAttribute("ИмяАтрибута");
Tag = Nodes.Item(Индекс);
КонецЦикла; КонецФункции

Похожие статьи:
ЗаписьXML, ЧтениеXML в 1С:Предприятии
Запись, чтение XML из ДокументDOM

I am trying to create an instance of the object Msxml2.DOMDocument.4.0, but I am getting the following error:
ActiveX component can’t create object: ‘MSXML2.DOMDocument’

The error occures in this line:
Set xmlDoc = CreateObject(«Msxml2.DOMDocument.4.0»)

How can I solve this problem?

Thank you for your helps

asked Apr 23, 2013 at 10:32

Kaja's user avatar

Probably the specific version 4.0 of Msxml2.DOMDocument is not (properly) installed on the computer your script runs on. Try to create the version-independent object:

Set xmlDoc = CreateObject("Msxml2.DOMDocument")

This should give you the version that ‘works’ on your machine. If this fails, try

Set xmlDoc = CreateObject("Msxml2.DOMDocument.6.0")

or experiment with the version number. Use TypeName(xmlDoc) to get a hint wrt the effective version.

P.S. If your problem is caused by 32 vs. 64 bit troubles, this may give you further hints for things to check.

answered Apr 23, 2013 at 11:27

Ekkehard.Horner's user avatar

Ekkehard.HornerEkkehard.Horner

38.4k2 gold badges44 silver badges94 bronze badges

Check if msxml4.dll exists on your system. and (re-)register the library if it does:

cd %SystemRoot%system32
regsvr32 /u msxml4.dll
regsvr32 msxml4.dll

You need admin privileges to do this.

answered Apr 23, 2013 at 14:34

Ansgar Wiechers's user avatar

Ansgar WiechersAnsgar Wiechers

192k24 gold badges247 silver badges321 bronze badges

Three things you need to check:

  1. While registering MSXML4 make sure the MSXML4r.dll is at the same path as MSXML4.dll
  2. Register using proper syntax
    Regsvr32 msxml4.dll
  3. Enable 32 bit in IIS app pool

answered Jun 8 at 13:14

Sunam Debnath's user avatar

1

  • Ошибка при скачивании файла не удалось выполнить проверку на вирусы
  • Ошибка при создании com объекта 1с 2147467262
  • Ошибка при скачивании файла на андроид
  • Ошибка при создании apple id неверная дата рождения
  • Ошибка при скачивании торрента системе не удается найти указанный путь