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

Соединение с COM-сервером
   Худой

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. Показов 2946. Ответов 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С

3700 / 2899 / 570

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

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

Записей в блоге: 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С

3700 / 2899 / 570

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

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

Записей в блоге: 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

Понравилась статья? Поделить с друзьями:
  • Ошибка при создании com объекта 1с сбис не зарегистрирована компонента tensor
  • Ошибка при смене сетевого идентификатора пс4
  • Ошибка при смене аватарки вк
  • Ошибка при склейке товара this get matching error message rejected
  • Ошибка при склейке товара goodsid уже имеет активную связку