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

Содержание:

1.     Что такое COM и COM объект 1С

         COM – это объектная модель данных, выстроенная на Майкрософт компоненте, которая является независимой от платформы и распределённой объектной системой. Данная объектная модель служит для создания компонентов в двоичном программном обеспечении, при условии взаимодействия компонентов.

         Главным, единым, условием языка программирования, который сможет обеспечить объектную модель COM сервера 1С, является возможность писать структуры указателей и ними вызывать различные функции.

         Рассмотрим, что такое COM объект 1С – это некий объект, доступ к данным которого можно получить только при помощи функций, которые связаны. Набор из таких функций называют интерфейсом платформы 1С, а функции внутри наборов называются методами.

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

2.     Ошибка вызова конструктора COMОбъекта в 1С

         Ошибка возникает в некоторых случаях, когда бывает, что во время установки системы 1С не регистрируется файл с названием «comcntr.dll», из-за чего работать с COM соединением сервера 1С нельзя ни при каких условиях.

         В этом случае, при решении ошибки, важно учитывать нюансы при работе с операционной системой Windows (при этом, версия Windows должна быть выше XP, т.е. будем рассматривать выход для новых версий) и с администрированием системы 1С.   

3.     Устранение ошибки при вызове конструктора COMОбъект

Ошибка при вызове конструктора COMОбъект в 1С имеет следующее отображение: «2147221164 (0х80040154): Класс не зарегистрирован» либо «Ошибка при вызове конструктора COMОбъект: Недопустимая строка с указанием класса 1С»), вид ошибки представлен на скриншоте ниже:

Выполняем такие действия:

·        Для начала, переходим в режим администратора и запускаем командную строку. Важно обратить внимание, что в командной строке должно быть написано: «C:\windows\system32» (либо 64 в конце, если это 64-х битная версия операционной системы). Получаем, что корректный путь для корневой строки должен выглядеть таким образом:

·        Следующий шаг – это написать команду «regsvr32», она будет выглядеть так: «C:\Program Files\1cv8\8.3.ХХ.ХХХХ\bin\comcntr.dll». Стоит отметить, что нужно прописать свой точный номер релиза платформы, а путь к самой библиотеке нужно брать в кавычки, конечный итог продемонстрирован ниже:

После этих действий, ошибка полностью устранена. В скриншотах-примерах была показана версия платформы 1С под номером «8.3.11.2867 х64».

Специалист компании «Кодерлайн»

Лев Туренко

Данная ошибка чаще всего возникает при обновлении платформы и/или при переводе режима работы с базой из файлового в клиент-серверный вариант, после чего COM-компонент comcntr.dll должен быть установлен (зарегистрирован) автоматически.
Но если вы получаете ошибку: Ошибка при вызове конструктора (COMObject): -2147221164(0x80040154): Класс не зарегистрирован, это означает, что при установке платформы компонента comcntr.dll не смогла зарегистрироваться автоматически.

Решается данная проблема очень просто: заходим на сервер 1С, запускаем командную строку от имени администратора и прописываем следующую команду:

C:\Windows\SysWOW64\regsvr32 «c:\Program Files(х86)\1cv8\8.3…\bin\comcntr.dll»

где 8.3… заменяем на корректный путь, в зависимости от вашей версии платформы. 

Если после данной манипуляции ошибка не ушла, то пробуем сначала удалить эту компоненту с сервера, а затем установить её заново:

Удаление:
C:\Windows\SysWOW64\regsvr32 /u «c:\Program Files\1cv8\8.3…\bin\comcntr.dll»

Установка:
C:\Windows\SysWOW64\regsvr32 «c:\Program Files\1cv8\8.3…\bin\comcntr.dll»

Первая статья в новом 2021 году будет посвящена программе 1С. Это связанна с тем что данное ПО очень распространено. Так как альтернативы пока что нет. К типовым конфигурация претензий практически нет, в них не появляются ошибки, при обновлении, переносе и других манипуляциях. Что нельзя сказать о самопысных конфигурациях или измененных типовых. Как правило занимаются этим программисты не высокого уровня, так как час разработки профессионала стоить достаточно дорого. В результате конечный пользователь получаем огромные проблемы которые возникают после каких либо манипуляций либо с базой или клиентами. Сегодня поговорим об одной интересной ошибки которая появляется при попытке распечатать какой либо документ «Ошибка при вызове конструктора (COMOбъект) класс не зарегистрирован».

Использование COMOбъектов в 1С это прошлый век, сейчас уже ни кто так не пишет. Раньше с его помощью реализовали печать документов. Они выгружались в Open\Libre Office и от туда уже печатались.

Появиться такая ошибка может после

1 Обновления платформы

2 Переустановки ОС и 1С

3 Обновление конфигурации

4 Проблем с офисными пакетами

5 и т.д.

Это самые распространенные.

У меня есть еще несколько статей в которых я рассказывал как можно исправить различные ошибки 1С рекомендую прочитать.

Ошибка при отправке запроса на сервер

При появлении ошибки в 1С нет кнопки подробнее

Как настроить сортировку в отчете

Как сохранить обработку (как внешнюю)

Как указать версию платформы

Как посмотреть изменения в конфигурации

Три способа избавиться от ошибки «Ошибка при вызове конструктора…»

И так после каких либо манипуляций с 1С у вас стала появляться ошибка.

Ошибка при вызове конструктора (COMOбъект): -2147221164(0x80040154) класс не зарегистрирован

Ошибка при вызове конструктора (COMOбъект) класс не зарегистрирован
Ошибка при вызове конструктора (COMOбъект): -2147221164(0x80040154) класс не зарегистрирован

Первый способ

Самое простое это переустановить офисные пакеты Open\Libre, так же как вариант если у вас стоял Open поставить Libre и на оборот. Это нужно для того чтобы обновить специальный компонент.

Второй способ

Попробовать зарегистрировать самостоятельно, для этого запускаем командную строку от имени администратора, переходим в каталог введя команду.

cd \windows\syswow64

И регистрируем

regsvr32 «C:\Program Files (x86)\1cv8\8.3.16.18.14\comcntr.dll»

-2147221164(0x80040154) класс не зарегистрирован

Кстати данную манипуляцию нужно проводить на сервере.

Третий способ

Установить 32 битную версию клиента 1С, можно даже поверх х64. В итоге у вас появиться два ярлычка для запуска, один для х32 второй х64.

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

Версию можно указать и в ярлыке запуска 1С.

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

Можно еще попробовать самостоятельно создать COM + , но лично из своего опыта могу сказать это не помогает. Самый действенный вариант это установка х32 клиента. Так как компонента которая необходимо работает только с х32.

Так же проблема может быть непосредственно в самом коде.

83.COMConnector класс не зарегистрирован

Случается, что при попытке подключения к информационной базе через com-соединение возникает ошибка при вызове конструктора (COMОбъект): «Класс не зарегистрирован» или «Недопустимая строка с указанием класса».

Первым делом необходимо зарегистрировать DLL в системе

Regsvr32 «C:\Program Files\1cv8\8.3.7.1776\bin\comcntr.dll»

В случае, если не помогает — создаём коннектор руками:

•Заходим в Панель управления — Администрирование — Службы компонентов.

•Переходим к ветке Компьютеры — Мой компьютер — Приложения COM+.

•В контекстном меню выбираем Создать — Приложение. Откроется Мастер установки приложений COM+.

•Нажимаем «Далее».

•Выбираем «Создать новое приложение».

•Вводим имя «V83COMConnector». Устанавливаем переключатель «Серверное приложение». Нажимаем «Далее».

•На следующем шаге устанавливаем «Текущий пользователь». Нажимаем «Далее».

•Нажимаем «Готово».

•В появившейся ветке V83COMConnector переходим к подветке Компоненты.

•В контекстном меню выбираем Создать — Компонент. Откроется Мастер установки компонентов COM+.

•Нажимаем «Далее».

•Выбираем «Установка новых компонентов».

•Выбираем файл <каталог 1С>\bin\comcntr.dll.

•Нажимаем «Далее» — «Готово».

•Переходим к ветке V83COMConnector.

•В контекстном меню выбираем «Свойства». В открывшемся окне переходим на вкладку «Безопасность».

•Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку «Применить политику программных ограничений». Устанавливаем Уровень ограничений — «Неограниченный».

•Нажимаем «ОК».

Класс V83.COMConnector зарегистрирован и может использоваться для подключения к информационным базам.

Бывало так, что вместо Текущий пользователь нужно прописать USR1CV8

Перейти к содержимому

Настройка 1С

Решения по использованию программ 1С. Техподдержка. Сопровождение. Услуги программистов.

При этом 1С не удается произвести подключение к информационной базе. Ошибка связана с регистрацией одной компоненты в системе.

На что обратить внимание

  1. Зарегистрируйте библиотеку comcntr вручную. При выполнении операции или открытия командной строки используйте запуск от имени администратора (полные права).

Например,
regsvr32 «C:\Program Files\1cv8\8.3.xx.xxxx\bin\comcntr.dll»
или
regsvr32 «C:\Program Files (x86)\1cv8\8.3.xx.xxxx\bin\comcntr.dll»

, где 8.3.xx.xxxx — версия целевой технологической платформы. Путь к каталогу «Program Files» зависит от разрядности вашей ОС и клиента 1С.

До сообщения «Успешное выполнение DllRegisterServer в [путь_компоненты]».

★ Возможно, потребуется удалить или отменить регистрацию старой версии, которая была ранее активна (запуск regsvr32 с ключом «/u» — отмена регистрации через DllUnregisterServer).

  1. Проверьте соответствие разрядности библиотеки и клиента 1С, который вызывает com-коннектор.
  2. Проверьте настройки в «Администрирование — Службы компонентов — Приложения COM+ — V83COMConnector» с помощью оснастки comexp. Подробная регистрация коннектора — в заметке (п. 3).
  3. Перезагрузите ПК.

Бывает, что программа установки не может автоматически зарегистрировать новую DLL, поэтому приходится делать регистрацию comcntr из каталога bin установленной версии вручную.

Не получается? Зовите на помощь ИТ-специалиста или обратитесь с нашим джедаям техподдержки → +7-911-500-10-11

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове 1004 bigbluebutton
  • Ошибка при вызове действия модуль не обнаружен
  • Ошибка при выделении памяти excel
  • Ошибка при выгрузке заявления о ввозе товаров
  • Ошибка при выгрузке данных обработка универсальныйобменданнымиxml модульобъекта