Ошибка при вызове конструктора (COMОбъект)

Ошибка при вызове конструктора (COMОбъект)

При попытке подключения к информационной базе произошла ошибка:
Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса


Перейти к публикации


03.11.2011 14:02 [03.11.2011 14:03] (sinjevla) Владимир 105 [+] [−]

Страницы: 1

У меня была такая беда, только текст ошибки другой:
При попытке соедиения с COM-сервером произошла следующая ошибка:
Метод объекта не обнаружен (Connect)

И тоже помогло :)
Блин, а я с бубном плясал во круг служб компонентов, настроек DCOM и все что на ум приходило :)


Для Win 7 нужно создавать файл с расширением bat или cmd и выполнять от имени администратора иначе ни чего не получится.

+ 3 [ neo-55555; 3762515; chtina; ]

Спасибо, с Вашей помощью решила свою проблему!!!


А Вы не можете подсказать решение проблемы?:
При попытке редактирования документа выскочила ошибка: "Ошибка СУБД. Внутренняя ошибка компоненты dbeng8". Документ невозможно ни откорректировать, ни пометить на удаление.

Ответили: (6) (8) (17) (18)

Спасибо, очень выручили


(4) Nadegda_P,
Если файловая база 1С:Предприятие 8, то что-то подобное разок случилось в ситуации, когда пользователь в уже ранее проведенном документе перезаполнял табличную часть. И в момент этих его действий выключилось питание.
В результате получилась такая картина:
- движения документа есть,
- в списке документов он виден,
- запросами через консоль запросов получается выбрать и реквизиты документа, и строки табличных частей,
- но при открытии формы документа выдается ошибка наподобие указанной Вами, с подробностями, в которых упоминается несуществующая строка табличной части. И программа закрывается.

Попытки вылечить документ ни к чему не привели, и пришлось применить обходной путь:
1. Движения документа удалили с помощью обработки типа "Корректировка движений документов" (на Инфостарте есть такие),
2. Реквизиты документа подправили с помощью, например, "Групповой обработки объектов" - так, чтобы было видно, что не надо трогать его.
3. Сделали новый документ взамен этого, и провели его. А старый так и лежит, и никому вроде не мешает.

Если бы существовал бэкап, содержащий этот документ в нормальном состоянии, можно было бы XML-обменом попробовать загрузить документ из бэкапа. Но не было такого бэкапа.


мдаааа...

+ 1 [ BorisMor; ]

kapustinag пишет:

(4) Nadegda_P,

Если файловая база 1С:Предприятие 8, то что-то подобное разок случилось в ситуации, когда пользователь в уже ранее проведенном документе перезаполнял табличную часть. И в момент этих его действий выключилось питание.

В результате получилась такая картина:

- движения документа есть,

- в списке документов он виден,

- запросами через консоль запросов получается выбрать и реквизиты документа, и строки табличных частей,

- но при открытии формы документа выдается ошибка наподобие указанной Вами, с подробностями, в которых упоминается несуществующая строка табличной части. И программа закрывается.



Попытки вылечить документ ни к чему не привели, и пришлось применить обходной путь:

1. Движения документа удалили с помощью обработки типа "Корректировка движений документов" (на Инфостарте есть такие),

2. Реквизиты документа подправили с помощью, например, "Групповой обработки объектов" - так, чтобы было видно, что не надо трогать его.

3. Сделали новый документ взамен этого, и провели его. А старый так и лежит, и никому вроде не мешает.



Если бы существовал бэкап, содержащий этот документ в нормальном состоянии, можно было бы XML-обменом попробовать загрузить документ из бэкапа. Но не было такого бэкапа.


ага, еще бы на SQL бы перевести базу, вообще цены бы вам не было )

Ответили: (9)

(8) WKBAPKA,
Мы тоже не в деревне родились, и про клиент-серверный вариант работы с 1С знаем.
У меня на поддержке есть и базы файловые, и клиент-серверные в достаточном количестве.
В сети той организации, у которой эта проблема случилась, не было установленного 1С-сервера и SQL-сервера, и серверное железо не подходило для такого режима работы.
Да и пользователей в этой организации не столько, чтобы было необходимо переходить на вариант работы через сервер 1С-Предприятия.

Поэтому, раз проблема была только в одном этом документе, было сделано то, что я описал выше.


в смысле? у мну на домашней машине стоит 2005 скуль... и машина у меня не серверная...
вы бы могли эту базу вообще не поднять, там же один файл... в случае разрушения его, все, капут...
другой вопрос, что нужно покупать 1С сервер... это да... тока думаю, что они уже раза три как переплатили за ваши услуги... но то такое... не мое дело конечно...


Если пользователей не много то и железо для сервака не нужно суперское. В одной конторе 5 пользователей, стоит обычный комп проц уже не помню, но с 2 гб. оперативы, SentOS+PostgreSQL+1C все нормально работает уже 3 года.
Недавно обновлял платформу и 2 дня работали в файловом варианте, так все кричали что все ужасно тормозит.


полезная мелочь.


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


а как зарегить компоненту в 64 разрядной системе?

Ответили: (15)

(14)
Попробуй так

1 Администрирование - Службы компонентов – Компьютеры – Мой компьютер – Приложения COM+ - Создать приложение – Создать новое приложение – вводим имя «V82.COMConnector»(переключатель «Серверное приложение») – Указанный пользователь (Администратор)
2 В появившейся ветке V82COMConnector – подветка Компоненты – создание нового компонента – Установка новых компонентов - <каталог 1С>\bin\comcntr.dll
3 Правой кнопкой по ветке V82COMConnector – Свойства – Безопасность – Снял галку «Принудительная проверка доступа для приложений» - Поставил галку «Применить политику программных ограничений» - Уровень ограничений «Неограниченный»

Еще в профилях пользователей C:\Documents and Settings\….\Application Data\1C\1CEStart\1CEStart.cfg изменяем параметр UseHWLicenses=0 на UseHWLicenses=1

Отпишись ели получится


если погуглить то можно нагуглить решение данной проблемы
как пример: http://1c-consultant.org.ua/index.php?topic=121.0


(4) Nadegda_P,
если база файловая, то можно исправить эту ошибку при помощи утилиты chdbfl.exe (находится в папке bin каталога установки платформы)


(4) Nadegda_P, решением для вас будет файл chdbfl.exe который лежит в папке BIN.


Спасибо за то что написали об этом. Когда мне было нужно - нигде об этом не писалось. Было убито немерено времени.


Большое спасибо, сам сталкивался с такой проблемой, сломали голову, так и не смогли забороть. А сейчас попробовал и все получилось.


При попытке подключения к информационной базе произошла ошибка:
Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован: Класс не зарегистрирован

Техническая информация:
{Обработка.ОбменДаннымиXML(15742)}: Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован: Класс не зарегистрирован

регистрация по новой этой dll не решило проблемы: платформа 1С:Предприятие 8.2 (8.2.13.219) - может есть еще решения проблемы.
З.Ы.
Платформу не целесообразно обновлять так как у меня распределенка - а новая платформа при изменении в конфигурации отправляет в файле обмена полностью файл конфигурации в подчиненные узлы...(по крайне мере была такая проблема)


Использовал, и очень даже неплохо получилось! Спасибо.


Спасибо огромное!!!


(15) sinjevla, Спасибо, получилось.


Спасибо!!!!!!! Манипуляция с компонентой помогла)))


Манипуляция с компонентой не помогла.
Regsvr32 "C:\Program Files\1cv82\8.2.14.540\bin\comcntr.dll" делал результат ноль.
Платформу переставлял, тоже не помогло.

Какие будут идеи может с компонентой есть еще какая то настройка?

+ 3 [ altek; pavt; Jorj20; ]

(15)
Спасибо, то что нужно - помогло! Только я думаю надо добавить, что компоненту ещё надо запустить!

Изменено: Glukaman - 17.04.12 17:17

+ 1 [ dominic_66; ]

(15) sinjevla, Спасибо!!!


Как вариант, чтобы запустить cmd в windows 7 от имени администратора, можно запустить его из папки "C:\Windows\System32" (в папке System32 есть файл cmd, который нужно запустить от имени администратора :)))

Изменено: chtina - 10.07.12 20:38


Автору респект, что поделился. Давно это проходил и, именно так решал проблему. Но не удосужился где-то зафиксировать.


Спасибо тебе добрый человек мне помогло в ситуации когда ошибка была следующей:
Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован: Класс не зарегистрирован
СПАСИБО!


Решил проблему с выгрузкой базы данных dbeng8. Спасибо!


Спасибо!!! Очень помогло!!!


sinjevla, Спасибо огромное, помогли решить проблему!!


(15) большое спасибо. У меня была ошибка "Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован: Класс не зарегистрирован", ушла


а я просто платформу обновил, и у меня эта ошибка исчезла

Ответили: (37)

(36) Ксалекс, просто при обновлении платформы зарегистрировалась библиотека comcntr.dll


(15)
хотя у меня просто после обновления платформы перестало подключаться из базы в базу...

я попробовал...
вот только "Поставил галку «Применить политику программных ограничений» - Уровень ограничений «Неограниченный»" не нашел....
но стало наверное еще хуже....
стало примерно так ".... метод Подключить не обнаружен ..."

удалил Ветку V82COMConnector ..... и все заработало.... вот только не знаю... после перезагрузки сервера что будет....
и это из Бухгалтерии 2.0 в Комплексную автоматизацию.

Но вот основную то необходимость из Бухгалтерии 2.0 в Докуметооборот сходу не получилось...
Пишет "При попытке создания обработки ОбменДаннымиXML произошла ошибка:{Обработка.ОбменДаннымиXML.МодульОбъекта(16016)}: Поле объекта не обнаружено (ОбменДаннымиXML)"

ну есно! "Обработка.ОбменДаннымиXML" такого в ДО нет...
Чтож ... будем шаманить дальше...

Изменено: grey_yes - 26.08.13 12:14


Отличная статья.


(15) sinjevla, Супер! Какой вы МОЛОДЕЦ! Столько времени промучалась с сервером! И как все просто решается! Спасибо огромное!


(15) sinjevla, Для Windows 7x64 у меня вот так получилось


в %systemroot%\SysWoW64\ нашел cmd.exe

далее клик на нем правой мышкой и открываю его из меню как администратор

открывается командное окно с путем: C:\Windows\system32

Далее RegSvr32 "С:\Program Files (x86)\1cv82\8.2.19.76\bin\comcntr.dll"


(15) спасибо! помогло


Спасибо за отличный совет!


Спасибо, оказалось полезней. Обычная регистрация компоненты тоже не спасала.


если не помог не один из двух вариантов, еще есть решение?
Win Server 2003 x64
1С 8.2
пытаюсь из ЗУП подключиться к УТ

При попытке соедиения с COM-сервером произошла следующая ошибка:
{Обработка.ВыгрузкаВУТ.МодульОбъекта(61)}: Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса: Недопустимая строка с указанием класса


спасибо! работает!


(15) sinjevla,
Спасибо! Очень помогли!


У меня компонента успешно регистрируется, однако ошибка все равно вылетает. Уже сносил компа старую и новую версию платформы, комп перезагружал.
Что еще может быть?


Спасибо. И у нас такая же ошибка.


Мне тоже помогло, но только после того, как я ЗАШЕЛ в систему как Администратор...
Просто запуск от имени Администратора не помогал.
У меня Windows 7 64-битная
Обратите на это внимание, я убил на это 6 часов...

+ 1 [ Jorj20; ]

спасибо помагло


Воспользовался советом. Винда 64 разрядная, запустил cmd от имени администратора,
командная строка Regsvr32 "C:\Program Files (x86)\1cv82\8.2.19.90\bin\comcntr.dll". путь изменил на нужный в блокноте. все сработало

+ 1 [ RodinMax; ]

(15) sinjevla, Работает


Спасибо! Помогла регистрация компоненты! Win server 2012 r2


Мне помогло в следующем случае:
на серваке стоит рабочая версия Бухгалтерии на платформе 8.2.17.143
Себе локально для разработки поставил наверх платформу 8.2.19.116, ибо в старой неприятный глюк с убеганием курсора в левый верхний угол. Но теперь при попытке COM-соединения с сервером от себя выскакивала ошибка несоответствия версий comcntr.dll на клиенте (у меня) и сервере (рабочая).
Зарегистрировал у себя regsvr32 "c:\Program Files (x86)\1cv82\8.2.17.143\bin\comcntr.dll" поверх 8.2.19.116 и соединение с сервером через COM теперь проходит.


+ Запуск от имени администратора. Может понадобится отключение антивирусов.


Был настроен обмен между ИБ комплексной конфигурации (КА).
После обновления конфигураций в двух базах при обмене выдал эту ошибку.
Воспользовался предложенной командой - обмен восстановился.
Огромное спасибо автору.


(15) sinjevla, яростно плюсанула 10 пальцами
давно пыталась решить проблему с этими коннекторами - особенно когда несколько разных платформ и выгрузка идет например с 8.2 торговли в 8.3 бухгалтерию
огромное СПАСИБО за такую подробную инструкцию!!!!
первый вариант с regsvr32 не помогал

Изменено: Татьяна_69 - 14.09.15 7:40


(15) sinjevla, Спасибо огромное! Помогло!


Пытаюсь настроить обмен из ЗБУ в БГУ. Базы серверные.
При нажатии кнопки "Проверить" подключение выходит сообщение "Подключение к информационной базе приемнику произошло успешно".
При нажатии кнопки "Выполнить обмен" в служебных сообщениях выходит:

Начат обмен данными под полными правами на сервере 1С:Предприятия по настройке "Обмен с "1С:Бухгалтерия государственного учреждения 8 (начиная с версии 1.0.2)"" 08.12.2015 20:26:28
Завершен обмен данными под полными правами на сервере 1С:Предприятия по настройке "Обмен с "1С:Бухгалтерия государственного учреждения 8 (начиная с версии 1.0.2)"" 08.12.2015 20:26:30

Но обмен не происходит. В истории Монитора обмена выводится сообщение:
"При попытке подключения к информационной базе произошла ошибка:
Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован

Техническая информация:
{Обработка.ОбменДаннымиXML.МодульОбъекта(15947)}: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован "


Отслеживаю отладкой:
в Функция ПодключитсяКИнформационнойБазе
		ТекCOMПодключение = Новый COMОбъект(ОбъектПодключения);

При "Проверке подключения" ТекCOMПодключение получаем COMОбъект
При "Выполнении обмена" ТекCOMПодключение получаем Неопределено
ОбъектПодключения в обоих случаях равен "V83.COMConnector"
В чем может быть проблема. Подскажите.

Изменено: as7bs - 08.12.15 17:36

Ответили: (63)

помогло, Но все же пляски с бубном пришлось совершать - и в "Службу компонентов" тоже слазить.


Ошибка возникает при установке новой версии платформы/сервера 1с
Решение:
1)Деинсталлировать технологические платформы предыдущих версий(если они не требуются вам для старых версий баз)
2)Переставить нужную тех. платформу(должна быть одинаковой версии с версией сервера, если есть сервер)
3)Произвести манипуляцию типа "regsvr32 "c:\Program Files (x86)\1cv82\8.2.17.143\bin\comcntr.dll"" или ее 64 разр аналог.
как на машине, так и на сервере


(60) as7bs,
Сразу не отписался, но лучше поздно...
Проблема была решена установкой сервера 1С заново. Предполагаю, что проблема возникла из за того, что возможно, когда первоначально обновляли сервер 1С в компонентах не включили "COM-соеденение". После новой установки сервера 1С ошибка пропала.


В общую копилку: имели ситуацию, когда конструктор нормально вроде бы создаёт V83.COMConnector, но говорит, что метод Connect не обнаружен, и ни одно свойство своё тоже не признаёт. Плясал с бубном часа два, пока не стало ясно, что это права доступа, хотя вроде был под доменным администратором. Помогло вот что: 1С всю целиком снесли, всю целиком переустановили, и сделали запуск службы самой 1С от имени общеизвестного USRV8-как-его-там пользователя. И установку компоненты в COM+ тоже сделали именно от этого пользователя, и чтобы запускалась она от его имени.
Ещё есть подозрение, что взлетело бы, если б сделать отдельного локального администратора и всё от его имени (причём надёжнее не эта тыкалка запуска, а нормальное "от имени" или даже лучше в его сеансе).
1С 8.3.17.1970, винда 2012 R2. Базы были и файловые, и клиент-серверные, все участвуют в обмене.

p.s. при этом regsvr как не хотел нормально её регить, так и не согласился... Но работает.

Изменено: Yashazz - 23.03.16 9:11


Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(13799)}: Ошибка при вызове конструктора

---решение:

Функция ВыполнитьПодключениеКИБПриемнику() Экспорт
	
	РезультатПодключения = Неопределено;
	
	СтруктураПодключения = Новый Структура();
	СтруктураПодключения.Вставить("ФайловыйРежим", ТипИнформационнойБазыДляПодключения);
	СтруктураПодключения.Вставить("АутентификацияWindows", АутентификацияWindowsИнформационнойБазыДляПодключения);
	СтруктураПодключения.Вставить("КаталогИБ", КаталогИнформационнойБазыДляПодключения);
	СтруктураПодключения.Вставить("ИмяСервера", ИмяСервераИнформационнойБазыДляПодключения);
	СтруктураПодключения.Вставить("ИмяИБНаСервере", ИмяИнформационнойБазыНаСервереДляПодключения);
	СтруктураПодключения.Вставить("Пользователь", ПользовательИнформационнойБазыДляПодключения);
	СтруктураПодключения.Вставить("Пароль", ПарольИнформационнойБазыДляПодключения);
	//--//СтруктураПодключения.Вставить("ВерсияПлатформы", ВерсияПлатформыИнформационнойБазыДляПодключения);
	//++//
	ВерсияПлатформыИнформационнойБазыДляПодключенияKKY = "V83";	
	СтруктураПодключения.Вставить("ВерсияПлатформы", ВерсияПлатформыИнформационнойБазыДляПодключенияKKY);
	//++//
	ОбъектПодключения = ПодключитсяКИнформационнойБазе(СтруктураПодключения);
...Показать Скрыть


На 8.3 такая ошибка, а comcntr.dll нет.

Изменено: progr-2008 - 16.05.16 14:21


После долгих танцев с бубном найдено решение для тех кто не хочет заморачиваться с DCOM на x64 и у кого ошибка что класс не зарегистрирован.
Делаем bat, меняем версию на нужную и запускаем от Администратора:

set version=8.3.5.1625
set x64=C:\Program Files\1cv8\%version%\bin\comcntr.dll
set x32=C:\Program Files (x86)\1cv8\%version%\bin\comcntr.dll
set reg64=%systemroot%\System32\regsvr32.exe
set reg32=%systemroot%\SysWoW64\regsvr32.exe

%reg64% /i /s "%x64%"
%reg64% /u /s "%x32%"
%reg64% /i /s "%x64%"
%reg32% /u /s "%x64%"
%reg64% /i /s "%x64%"
%reg32% /u /s "%x32%"
%reg64% /i "%x64%"
...Показать Скрыть


После этого начинает работать COM на стороне сервера x64.

Изменено: geniusan - 31.05.16 10:18


Столкнулся с аналогичной проблемой при установке 8.3.8. Ошибка 2147221164 - класс не зарегистрирован. перепробовал пачку вариантов, пока не накопал четкий алгоритм

открываем консоль «Службы компонентов» (Панель управления -> Администрирование -> Службы компонентов).
В этой консоли открываем Службы компонентов -> Компьютеры -> Мой компьютер. Правый клик по пункту“Приложения COM+”, Создать -> Приложение.
Далее. В окне «Установка или создание нового приложения» выбираем «Создать новое приложение».
Вводим понятное имя для нового приложения, например, “V8_ComConnector”, способ активации — «Серверное приложение».
В качестве учетной записи для запуска приложения выбираем “Указанный пользователь” и через кнопку “Обзор” находим учетную запись, под которой запускается сервер 1С v 8.3. У нас это локальная учетная запись с именем “USR1CV8”. Следующие 2 экрана можно пропустить (Далее, Далее, Готово) или сделать следующий пункт на втором из них. Мы пропускаем.
В ветке только что созданного приложения открываем узел «Роли» и в нём роль «CreatorOwner». Правый клик по пункту «Пользователи», Создать -> Пользователь. Здесь выбираем учетку, под которой запускается сервер 1С v 8.3. У нас это локальная учетная запись с именем “USR1CV8”.
В ветке созданного приложения (“V8_ComConnector”) переходим на узел «Компоненты». Правый клик, Создать -> Компонент. Далее.
Выбираем «Установка новых компонентов», и в появившемся окне выбираем нужную DLL-ку (C:\Program Files (x86)\1cv81\bin\comcntr.dll). Завершаем создание компонента.
Открываем свойства только что созданного компонента (V81.COMConnector.1), переходим на вкладку «Безопасность», в списке «Явно установленные для выделенных объектов роли» устанавливаем флажок напротив роли “CreatorOwner”. Причом без манипуляций с безопасностью тупило.

Страницы: 1

105 [+] [−] Перейти к публикации

За постинг в данном форуме $m не начисляются.

Форма ответов
Логин:
Пароль:
Текст сообщения*
Прикрепить файл
Фиксация чеков розничной продажи в ЕГАИС, печать QR-кода на фискальном регистраторе - для 1С Торговля и склад 7.7