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
Для доступа к информационной базе из внешней программы используется COM объект COMConnector. В зависимости от версии платформы используется V82.COMConnector или V83.COMConnector. При установке платформы 1С, в операционной системе автоматически регистрируется класс COMConnector. Если по каким либо причинам регистрация не прошла, то его можно зарегистрировать вручную.
Пример по работе с базой 1С через COM соединение можно посмотреть в другой статье.
Если COMConnector не зарегистрирован в Windows, то при программном создании объекта будет появляться ошибка:
Ошибка при вызове конструктора (COMObject): -2147221164(0x80040154): Класс не зарегистрирован.
Регистрацию можно выполнить с помощью командной строки. Для того чтобы открыть командную строку в Windows 7 или Windows 10 нужно в строке поиска в меню «ПУСК» набрать cmd. Для Windows 8 в «Стартовом окне» в поиске набрать cmd. Запустить cmd.exe с правами администратора.
Синтаксис командной строки Windows
cd c:\program files — в каталог program files
cd \ — в корень диска
с: — на диск c
cd.. — на один уровень выше
Windows (x64)
Для того чтобы зарегистрировать ComConnector в 64 разрядной операционной системе Windows выполняется
команда: C:\Windows\SysWOW64\regsvr32 «C:\Program Files (x86)\1cv8\8.3.9.2233\bin\comcntr.dll»
c:\Windows\System32>
c:\Windows\System32>cd c:\Windows\SysWOW64
c:\Windows\SysWOW64>
c:\Windows\SysWOW64>regsvr32 «c:\program files (x86)\1cv8\8.3.9.2233\bin\comcntr.dll»
…
Деинсталяция
c:\Windows\SysWOW64>regsvr32 «c:\program files (x86)\1cv8\8.3.9.2233\bin\comcntr.dll» /u
Windows (x32)
Для 32 разрядной операционной системы Windows выполняется
команда: C:\Windows\System32\regsvr32 «C:\Program Files (x86)\1cv8\8.3.9.2233\bin\comcntr.dll»
c:\Windows\System32>
c:\Windows\System32>regsvr32 «c:\program files (x86)\1cv8\8.3.9.2233\bin\comcntr.dll»
…
Деинсталяция
c:\Windows\System32>regsvr32 «c:\program files (x86)\1cv8\8.3.9.2233\bin\comcntr.dll» /u
После успешного выполнения появится оповещение:
Как в Windows x32(x86)/x64 зарегистрировать компоненту com-соединения comcntr.dll 1С 8.
Ответ на данный вопрос актуален в контексте натройки обменов между базами 1С с помощью прямого подключения. Один из вариантов установки/регистрации компоненты com-соединения приведен на странице: Ошибка при вызове конструктора (COMObject) по причине: -2147221164(0x80040154): Класс не зарегистрирован На ней описан вариант установки компоненты при установке/переустановке компонентов платформы 1С: Предприятие из стандартного пакета установки. Но случается и так, что все-таки com-компонента по каким-то таинственным пирчинам все же не регистрируется при вышеуказанной операции.
На это есть альтернативный вариант с помощью командной строки операционной системы. Забегая немного вперед, и чтобы обезопасить себя от ошибок при регистрации com-компоненты comcntr.dll через командную строку, подобных приведенной на скрине
Чтобы избежать ошибки «Модуль comcntr.dll загружен, но не удалось выполнить вызов DllRegisterServer, код ошибки 0x80070005» запускайте командную строку с правами администратора
А дальше уже все зависит от разрядности операционной системы, в которой Вы хотите зарегистрировать компоненту com-соединения 1C: Предприятия.
В системе с разрядностью x32(x86) для платформы 1С: Предприятие 8.2
C:\Program Files (x86)\1cv82\<номер_релиза>\bin> regsvr32 comcntr.dll
, где <номер_релиза> — номер текущего используемого релиза плафтормы 1С 8.
Для платформы 1С: Предприятие 8.3 командная строка для регистрации com-компоненты будет выглядеть примерно так:
C:\Program Files (x86)\1cv8\<номер_релиза>\bin> regsvr32 comcntr.dll
, на скрине, приведенном ниже в качестве прbмерf для случая регистрациb comcntr.dll в ОС x86 значение <номер_релиза> — «8.3.9.1818»
Теперь рассмотрим вариант для системы с разрядностью x64 для платформы 1С: Предприятие 8.2, альтернативный вариант:
C:\Windows\SysWOW64>regsvr32 «C:\Program Files (x86)\1cv82\<номер_релиза>\bin\comcntr.dll»
Для Windows x64 регистрация com-соединения 1С 8.3 платформы разрядности x64 может выглядеть так:
C:\Windows\SysWOW64>regsvr32 «C:\Program Files\1cv8\<номер_релиза>\bin\comcntr.dll»
ИЛИ как в примере для случая x64-разрядной операционной системы Windows
В том случае, если у Вас клиент-серверный вариант работы базы 1С 8, то необходимо зарегистрировать компоненту как на самом сервер, где установлен Агент сервера 1С:Предприятия, так и на рабочих местах на которых используется COM-соединение при подключении к базам (чаще всего при обмене между базами).
Так же на практике иногда требовалась перезагрузка рабочего компьютера. Но если сразу после успешной регистрации компоненты по приведенным выше инструкциям соединение отказывается работать, то лучше все-таки выполнить перезагрузку.
Если все-таки приведенный материал не помог, предлагается обратиться к альтернативным публикациям: Регистрация comcntr.dll-компоненты в 64-битной версии Microsoft Windows и Регистрация компоненты comcntr.dll для COM соединения с 1С 8 в 32-битной операционной системе
Оцените, оказалась ли эта публикация полезна для Вас?
© www.azhur-c.ru 2013-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
28-08-2017
Журавлев А.С.
(Сайт www.azhur-c.ru)
Назад
Сначала зарегистрируем библиотеку comcntr.dll. Для этого запускаем cmd от имени администратора и выполним поочередно следующие команды:
cd C:\Program Files (x86)\1cv8\8.3.13.1690\bin
regsvr32 comcntr.dll
Вместо «8.3.13.1690» — нужно подставить требуемую версию платформы
Или можно обойтись одной строкой команды:
regsvr32 "C:\Program Files (x86)\1cv8\8.3.13.1690\bin\comcntr.dll"
Далее опишу полный процесс создания COM+ соединения
1. Запускаем оснастку «Службы компонентов» из папки Администрирование.
Пуск — Панель управления — Система и безопасность — Администрирование — Службы компонентов
или
win+R -> control userpasswords -> Службы компонентов
2. Раскрываем ветку «Службы компонентов» — компьютер — Приложения COM+
Создать — приложение
3. Откроется окно мастера установки приложений COM+. Ждем «Далее»
4. Выбираем «Создать новое приложение»
5. Вбиваем имя приложения. В моем примере — «v83COMConnector». Отмечаем чекбокс «Серверное приложение»
6. В следующем окне указывается учетная запись, от имени которой будет запускаться компонент. В моем примере я выбираю чекбокс «Текущий (вошедший в систему) пользователь
7. В следующем окне просто жмем «Далее»
8. На следующем шаге можно добавить пользователей, либо группу пользователей, которым необходимо предоставить права на запуск COM+ приложения (локальные/доменные — не важно)
9. Закрываем мастер кнопкой «Готово»
10. Теперь необходимо создать компонент. Возвращаемся к оснастке «Службы компонентов», раскрываем созданное COM+ приложение, встаем на ветку «Компоненты»
Создать — Компонент
11. Откроется окно «Мастера установки компонентов COM+». Жмем «Далее»
12. В следующем окне выбираем «Установка новых компонентов»
13. Теперь с помощью открывшегося окна проводника выберите ранее зарегистрированную библиотеку comcntr.dll, которая лежит в папке установленной 1С, в каталоге bin. В моем случае
C:\Program Files (x86)\1cv8\8.3.13.1690\bin\comcntr.dll
«Enter» или кнопка «Открыть»
14. В следующем окне просто жмите «Далее»
15. Закрываем окно мастера кнопкой «Готово»
16. Раскройте ветку «Компоненты». Здесь вы должны увидеть созданный на предыдущем шаге компонент. Выделите его, нажмите ПКМ — Свойства
17. На вкладке «Безопасность» нужно отметить галочкой CreateOwner и нажать «ОК»
Компонента COM+ создана. COM+ приложение настроено!
Обновление версии компонента
Иногда необходимо зарегистрировать иную версию библиотеки comcntr.dll.
Для того, чтобы посмотреть текущую зарегистрированную версию, необходимо войти в свойства компонена V83.COMConnector (см п.16) данного руководства
На вкладке «Общие» будет прописан путь. В моем случае это версия 8.3.13.1690
Зарегистрировать другую версию библиотеки можно при помощи уже рассмотренной команды regsvr32
regsvr32 "C:\Program Files (x86)\1cv8\8.3.14.1565\bin\comcntr.dll"
Если в п.8 вы забыли указать пользователей или группы, кому необходимы права для запуска COM+ приложения, то добавить нужных пользователей можно так:
- Панель управления — Система и безопасность — Администрирование — Службы компонентов
- Раскрываем ветку: Приложения COM+ — v83COMConnector — Роли — CreateOwner
- ПКМ на разделе «Пользователи», «Создать — Пользователь»
- В открывшемся окне выбираем локального или доменного пользователя, либо группу
Данная библиотека используется Effector Saver для управления соединениями с информационной базой на сервере 1С предприятия. По идее программа установки 1С должна самостоятельно регистрировать библиотеку, но иногда этого по не происходит и пользователю необходимо зарегистрировать библиотеку самостоятельно.
Примеры сообщений об ошибках, которые указывают на необходимость провести регистрацию библиотеки пользователем самостоятельно:
- Ошибка отключения пользователей базы 1С, Недопустимая строка с указанием класса, ProgID: «V83.ComConnector»;
- Ошибка соединения с кластером 1С, Ошибка при загрузке библиотеки;
- Ошибка соединения с кластером 1С. Не найден указанный модуль, ProgID: «V83.ComConnector»;
- Ошибка соединения с кластером 1С, Отказано в доступе, ProgID: «V83.ComConnector»;
- Ошибка отключения пользователей базы 1С. Различаются версии клиента и сервера (8.3.18.1208 — 8.3.16.1296), клиентское приложение: COM-администратор (HRESULT=80004005).
Этап 1. Проверка и удаление альтернативной регистрации библиотеки как COM+.
Первое что необходимо сделать, это проверить наличие регистрации COM+ в службах компонентов и удалить ее. Для этого перейдите «Панель управления» — «Администрирование» — выберите «Службы компонентов».
В открывшемся окне «Службы компонентов» перейдите «Компьютеры» — «Мой компьютер» — из списка выберите «Приложения COM+».
Откройте V83COMConnector — папку «Компоненты». Удалите содержимое папки.
Этап 2. Отмена регистрации библиотек для всех установленных платформ 1С:Предприятия
Важно: проделайте отмену регистрации для всех платформ 1С:Предприятия, как новых, так и старых.
Если используете Effector Saver 4
Для удаления регистрации, откройте Effector Saver и перейдите «Сервис» — «Регистрация V83.COMConnector».
Нажмите «Отменить регистрацию».
Если команда выполнена успешно, то вы увидите вот такое уведомление.
Если используете Effector Saver 3
Для удаления регистрации, запустите командную строку от имени Администратора.
И выполните команды отмены регистрации библиотеки.
Команда выглядит, следующим образом: (измените путь на версию 1С установленную на вашем компьютере)
Если у вас 32 разрядная платформа
regsvr32 /u «C:\Program Files (x86)\1cv8\8.3.16.1148\bin\comcntr.dll»
Если у вас 64 разрядная платформа
regsvr32 /u «C:\Program Files\1cv8\8.3.16.1148\bin\comcntr.dll»
Если команда выполнена успешно, то вы увидите вот такое окно.
Повторите эту процедуру для каждой установленной версии 1С предприятия на данном компьютере.
Этап 3. Регистрация библиотеки comcntr.dll
Теперь, выполним регистрацию только одной, необходимой нам библиотеки comcntr.dll.
Если используете Effector Saver 4
В окне «Регистрация V83.COMConnector», нажмите «Регистрация».
Если команда выполнена успешно, то вы увидите вот такое уведомление.
Если используете Effector Saver 3
Для регистрации, запустите командную строку от имени Администратора, и выполните команду регистрации библиотеки.
Команда выглядит, следующим образом: (измените путь на нужную версию)
Если у вас 32 разрядная платформа
regsvr32 /i:user “C:\Program Files (x86)\1cv8\8.3.16.1148\bin\comcntr.dll”
Если у вас 64 разрядная платформа
regsvr32 /i:user “C:\Program Files\1cv8\8.3.16.1148\bin\comcntr.dll”
Если команда выполнена успешно, то вы увидите вот такое окно.
После регистрации библиотеки comcntr.dll рекомендуем перезагрузить компьютер.
Если данная инструкция не помогла, попробуйте зарегистрировать библиотеку как COM+, по материалу: «Решение проблемы «Недопустимая строка с указанием класса»».