Регистрация ComConnector (comcntr.dll) в Windows 32 и 64 разрядной
Для доступа к информационной базе из внешней программы используется 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"
Windows (x32)
Для 32 разрядной операционной системы Windows выполняется
команда: C:\Windows\System32\regsvr32 "C:\Program Files (x86)\1cv8\8.3.9.2233\bin\comcntr.dll"
После успешного выполнения появится оповещение:
Комментарии (0)
Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться
Установка COM-компонента в 1С
Подключение к информационной базе через com-соединение происходит через внешний com-компонент который настраивается на стороне сервера. Если не создать компонент, то будет появляться ошибка «Класс не зарегистрирован» или «Недопустимая строка с указанием класса».
Данная инструкция выполнена на примере платформы 1С 8.3.17.1549 Вначале необходимо зарегистрировать DLL в системе, для этого запускаем командную строку от имени администратора и вводим:
В случае если это не помогает, то создаем коннектор вручную, для этого:
- Заходим в Панель управления — Администрирование — Службы компонентов.
- В контекстном меню выбираем Создать — Приложение. Откроется Мастер установки приложений COM+. Выбираем «Создать новое приложение». Вводим имя «V83COMConnector». Устанавливаем переключатель «Серверное приложение». Нажимаем «Далее».
- На следующем шаге устанавливаем «Текущий пользователь». Нажимаем «Далее». Выбираем роль «CreatorOwner» и нажимаем «Далее» и «Готово».
- В появившейся ветке V83COMConnector переходим к подветке Компоненты. В контекстном меню выбираем Создать — Компонент. Откроется Мастер установки компонентов COM+. Нажимаем «Далее».
- Выбираем «Установка новых компонентов». Выбираем файл Получить консультацию
Как зарегистрировать com компоненту 1с
Ответ на данный вопрос актуален в контексте натройки обменов между базами 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-соединение при подключении к базам (чаще всего при обмене между базами).
Так же на практике иногда требовалась перезагрузка рабочего компьютера. Но если сразу после успешной регистрации компоненты по приведенным выше инструкциям соединение отказывается работать, то лучше все-таки выполнить перезагрузку.
Windows admin blog
Полезные команды cmd, powershell, администрирование, фичи и решения проблем на win/winserver
Ручное создание COM+ соединения 1С | Установка COM+ компонента 1С
Сначала зарегистрируем библиотеку comcntr.dll. Для этого запускаем cmd от имени администратора и выполним поочередно следующие команды:
Вместо «8.3.13.1690» — нужно подставить требуемую версию платформы
Или можно обойтись одной строкой команды:
Далее опишу полный процесс создания 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
14. В следующем окне просто жмите «Далее»
15. Закрываем окно мастера кнопкой «Готово»
16. Раскройте ветку «Компоненты». Здесь вы должны увидеть созданный на предыдущем шаге компонент. Выделите его, нажмите ПКМ — Свойства
17. На вкладке «Безопасность» нужно отметить галочкой CreateOwner и нажать «ОК»
Компонента COM+ создана. COM+ приложение настроено!
Обновление версии компонента
Иногда необходимо зарегистрировать иную версию библиотеки comcntr.dll.
Для того, чтобы посмотреть текущую зарегистрированную версию, необходимо войти в свойства компонена V83.COMConnector (см п.16) данного руководства
На вкладке «Общие» будет прописан путь. В моем случае это версия 8.3.13.1690
Зарегистрировать другую версию библиотеки можно при помощи уже рассмотренной команды regsvr32
Права на запуск COM+
Если в п.8 вы забыли указать пользователей или группы, кому необходимы права для запуска COM+ приложения, то добавить нужных пользователей можно так: