К статье
Практический материал

Администрирование · 10 мин

Как зарегистрировать COM-коннектор 1С

Как зарегистрировать COM-коннектор 1С (comcntr.dll) вручную через regsvr32, исправить ошибку «класс не зарегистрирован», выбрать разрядность и проверить подключение.

COM-коннектор 1С — это библиотека comcntr.dll, которая позволяет внешним приложениям (другим базам 1С, скриптам, сторонним программам) подключаться к информационной базе через COM-интерфейс. Без регистрации этой библиотеки в Windows любая попытка создать объект V83.COMConnector завершится ошибкой «Класс не зарегистрирован».

Регистрация выполняется один раз на каждом компьютере, где запускается внешнее подключение, и привязана к конкретной версии платформы. После обновления платформы 1С регистрацию приходится повторять, потому что путь к comcntr.dll меняется вместе с номером версии.

Ниже разобраны три рабочих способа регистрации, различия разрядности, типовые ошибки и способы проверить, что коннектор действительно работает.

Что такое COM-коннектор и когда он нужен

COM-коннектор (COM Connection) — механизм платформы 1С:Предприятие для программного подключения к информационной базе извне. Через него выполняют обмен данными между базами, запускают обработки из скриптов, интегрируют 1С с другими системами без веб-сервисов.

Физически коннектор — это файл comcntr.dll, который лежит в каталоге bin установленной платформы, например: C:\Program Files\1cv8\8.3.22.1750\bin\comcntr.dll. У каждой версии платформы свой файл, и Windows должна знать, какой именно использовать.

Коннектор нужен только на той машине, откуда инициируется подключение. Если скрипт обмена запускается на сервере, регистрировать библиотеку надо на сервере; если обработка запускается с рабочего места бухгалтера — на этом компьютере.

Подготовка: версия платформы и права администратора

Перед регистрацией определите, какая версия платформы будет использоваться для подключения. Откройте каталог установки (обычно C:\Program Files\1cv8\ или C:\Program Files (x86)\1cv8\) и найдите папку с нужной версией — внутри неё в каталоге bin должен лежать файл comcntr.dll.

Для регистрации COM-библиотеки требуются права локального администратора: regsvr32 пишет сведения в системный реестр. Если запустить команду без повышенных прав, появится ошибка 0x80070005 (отказано в доступе), даже если сам файл существует.

Регистрация через командную строку (regsvr32)

Стандартный способ — утилита regsvr32. Откройте командную строку от имени администратора (Пуск → введите cmd → правый клик → «Запуск от имени администратора») и выполните команду с полным путём к библиотеке.

cmd
regsvr32 "C:\Program Files\1cv8\8.3.22.1750\bin\comcntr.dll"

При успехе появится окно с сообщением «DllRegisterServer в ... выполнено успешно». Это признак того, что класс прописан в реестре и объект V83.COMConnector стал доступен.

Порядок действий
  1. 1
    Определите версию платформы и найдите comcntr.dll в каталоге bin
  2. 2
    Откройте командную строку от имени администратора
  3. 3
    Выполните regsvr32 с полным путём к comcntr.dll в кавычках
  4. 4
    Убедитесь, что появилось сообщение об успешной регистрации
  5. 5
    Проверьте создание объекта V83.COMConnector тестовым скриптом

Если платформа 32-разрядная и установлена в Program Files (x86), для корректной регистрации под 32-битные приложения используйте 32-битную версию regsvr32 из папки SysWOW64:

cmd
C:\Windows\SysWOW64\regsvr32.exe "C:\Program Files (x86)\1cv8\8.3.22.1750\bin\comcntr.dll"

Регистрация стандартным инструментом платформы

В дистрибутиве платформы есть ярлык «Регистрация утилиты администрирования» — но он регистрирует radmin.dll, а не коннектор. Для comcntr.dll удобнее альтернатива: запуск 1С в режиме конфигуратора с параметром /RegServer либо регистрация через саму платформу при установке.

При установке платформы инсталлятор обычно регистрирует COM-коннектор автоматически. Проблемы возникают, когда на одной машине стоит несколько версий платформы: зарегистрированной оказывается последняя установленная, а обмен рассчитан на другую. В этом случае вручную перерегистрируйте comcntr.dll нужной версии.

Разрядность: 32 или 64 бита

Разрядность коннектора должна совпадать с разрядностью процесса, который его вызывает. 64-битное приложение (например, 64-битный сервер 1С или скрипт из 64-битного PowerShell) требует 64-битную comcntr.dll; 32-битное приложение — 32-битную.

Сравнение вариантов

64-битная comcntr.dll

Подходит для 64-битных клиентов и сервера 1С. Файл из Program Files, регистрация обычной regsvr32 из System32.

32-битная comcntr.dll

Нужна для 32-битных приложений и скриптов (например, 32-битный MS Office). Файл из Program Files (x86), регистрация через SysWOW64\regsvr32.

Частая ситуация: обмен из VBA в 32-битном Excel падает с ошибкой, хотя коннектор зарегистрирован. Причина — зарегистрирована 64-битная библиотека, а Excel ищет 32-битную. Решение — установить 32-битную платформу (тонкий клиент достаточен) и зарегистрировать её comcntr.dll через SysWOW64.

Проверка, что коннектор работает

Быстрый способ проверить регистрацию — создать COM-объект из PowerShell или VBScript без подключения к реальной базе. Если объект создаётся, регистрация прошла успешно; ошибка «класс не зарегистрирован» означает, что библиотека не прописана или не той разрядности.

powershell
$connector = New-Object -ComObject V83.COMConnector
$connector
Контрольные точки

Как проверить результат

Создание объекта V83.COMConnector
Норма

Объект создаётся без исключений

Тревожный признак

Ошибка 0x80040154 «Класс не зарегистрирован»

Метод Connect с корректной строкой подключения
Норма

Возвращается объект соединения с базой

Тревожный признак

Ошибка доступа, неверная строка или несовпадение версии платформы

Запись в реестре HKCR\V83.COMConnector
Норма

CLSID присутствует и указывает на comcntr.dll

Тревожный признак

Раздел отсутствует или путь ведёт к несуществующему файлу

Полноценная проверка — вызов метода Connect со строкой подключения вида File="C:\Bases\Trade";Usr="Администратор";Pwd="..."; для файловой базы или Srvr="server";Ref="base";... для серверной. Успешное соединение подтверждает, что работает и коннектор, и доступ к базе.

Типичные ошибки и их устранение

Типичные ошибки
01
Запуск regsvr32 без прав администратора — ошибка 0x80070005, регистрация не выполняется
02
Регистрация 64-битной dll для 32-битного приложения — ошибка «класс не зарегистрирован» при обращении
03
Путь без кавычек при пробелах в Program Files — команда не находит файл
04
Обновление платформы без перерегистрации — реестр указывает на удалённый каталог старой версии
05
Использование коннектора версии, отличной от версии сервера 1С, — ошибки несовместимости при Connect

Отдельно отметим ошибку «Несовпадение версий клиентского и серверного приложений»: она возникает, когда коннектор одной версии платформы подключается к серверу 1С другой версии. Лечится регистрацией comcntr.dll той же версии, что работает на сервере.

Маршрут решения

Как выбрать действие

Ошибка «Класс не зарегистрирован» при создании объектаЗарегистрируйте comcntr.dll через regsvr32 от имени администратора
Регистрация есть, но ошибка остаётся в 32-битном приложенииЗарегистрируйте 32-битную библиотеку через SysWOW64\regsvr32
После обновления платформы обмен перестал работатьПеререгистрируйте comcntr.dll из каталога новой версии
Ошибка несовпадения версий при ConnectУстановите и зарегистрируйте коннектор той же версии, что и сервер 1С

Если ни один способ не помогает, проверьте журнал событий Windows и технологический журнал 1С — там видно, на каком этапе происходит сбой: при загрузке библиотеки, при создании объекта или уже при подключении к базе.

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

Альтернативы COM-коннектору

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

Тем не менее COM-коннектор остаётся актуальным для обменов между базами 1С в локальной сети: он даёт полный доступ к объектной модели и не требует публикации базы на веб-сервере.

Итог

Что важно запомнить

COM-коннектор регистрируется командой regsvr32 с полным путём к comcntr.dll из каталога bin нужной версии платформы, с правами администратора и с учётом разрядности вызывающего приложения. После обновления платформы регистрацию нужно повторить, а результат проверить созданием объекта V83.COMConnector.

Частые вопросы

Где находится файл comcntr.dll?

В каталоге bin установленной платформы: обычно C:\Program Files\1cv8\<версия>\bin\comcntr.dll для 64-битной платформы и C:\Program Files (x86)\1cv8\<версия>\bin\ для 32-битной. Если версий несколько, у каждой свой файл.

Нужно ли регистрировать коннектор на каждом компьютере?

Да, регистрация локальна для каждой машины, где инициируется COM-подключение. На компьютерах, которые только открывают базу через обычный клиент 1С, регистрация не требуется.

Что означает ошибка 0x80040154?

Это код «класс не зарегистрирован»: Windows не находит COM-объект V83.COMConnector. Причины — библиотека не зарегистрирована, зарегистрирована не той разрядности или путь в реестре указывает на удалённый файл старой версии.

Можно ли использовать коннектор из 64-битного PowerShell с 32-битной платформой?

Нет, разрядность процесса и библиотеки должны совпадать. Либо запускайте 32-битный PowerShell (из SysWOW64), либо установите и зарегистрируйте 64-битную платформу.

Чем заменить COM-коннектор для интеграции через интернет?

Используйте HTTP-сервисы, веб-сервисы или OData-интерфейс 1С: они не требуют регистрации компонентов, работают на любой ОС и безопаснее для публикации наружу.