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

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

Как зарегистрировать COMConnector в 1С

Как зарегистрировать COMConnector в 1С: regsvr32 для comcntr.dll, выбор разрядности, типичные ошибки 0x80070005 и способы их устранения.

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

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

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

Что такое COMConnector и когда его регистрировать

COMConnector (файл comcntr.dll) поставляется вместе с платформой 1С:Предприятие и лежит в каталоге bin конкретной версии. Через него внешний код получает объект соединения, а затем — доступ к данным информационной базы: справочникам, документам, запросам.

Регистрация нужна в трёх типовых ситуациях. Первая — обмен между базами 1С через COM-соединение, когда одна база выступает клиентом другой. Вторая — внешние интеграции: выгрузка данных в Excel, сайт, систему документооборота. Третья — запуск фоновых заданий и скриптов обслуживания, которые подключаются к базе извне.

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

Где найти comcntr.dll и как выбрать версию

Библиотека находится в каталоге установленной платформы. Типовые пути для 64-битной версии: C:\Program Files\1cv8\<номер версии>\bin\comcntr.dll. Для 32-битной версии на 64-битной Windows: C:\Program Files (x86)\1cv8\<номер версии>\bin\comcntr.dll.

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

Узнать точный номер установленной версии можно в оснастке «Программы и компоненты» или просто открыв каталог C:\Program Files\1cv8 — каждая папка названа номером релиза.

Пошаговая регистрация через regsvr32

Стандартный способ — утилита regsvr32, встроенная в Windows. Порядок действий одинаков для Windows 10, 11 и серверных версий.

Порядок действий
  1. 1
    Откройте командную строку от имени администратора: Пуск → введите cmd → правый клик → «Запуск от имени администратора».
  2. 2
    Выполните команду: regsvr32 "C:\Program Files\1cv8\8.3.24.1467\bin\comcntr.dll" — подставьте свой номер версии.
  3. 3
    Дождитесь окна «DllRegisterServer ... успешно выполнен» и нажмите ОК.
  4. 4
    Проверьте регистрацию тестовым скриптом (раздел ниже).

Кавычки вокруг пути обязательны: в пути есть пробелы, и без кавычек команда завершится ошибкой. Сообщение об успешной регистрации — достаточное подтверждение на уровне системы.

Регистрация для 32-битных приложений на 64-битной Windows

Тонкое место — разрядность. 64-битный процесс может загрузить только 64-битную DLL, 32-битный — только 32-битную. Если ваш скрипт или программа 32-разрядные (например, старый VBS через cscript из SysWOW64), а зарегистрирована 64-битная comcntr.dll, объект не создастся.

Решение — установить 32-битную версию платформы рядом и зарегистрировать её библиотеку явно через 32-битный regsvr32: C:\Windows\SysWOW64\regsvr32.exe "C:\Program Files (x86)\1cv8\<версия>\bin\comcntr.dll".

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

Проверка успешной регистрации

После регистрации полезно сразу убедиться, что объект создаётся. Самый простой способ — скрипт на VBScript или PowerShell, который создаёт COM-объект без подключения к реальной базе.

powershell
$connector = New-Object -ComObject V83.COMConnector; "COMConnector создан успешно"

Если объект создан без исключения — регистрация работает. Ошибка «Класс не зарегистрирован» (0x80040154) означает, что библиотека не зарегистрирована либо зарегистрирована не той разрядности. Для полной проверки выполните реальное подключение через метод Connect со строкой соединения вашей базы.

Контрольные точки

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

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

Объект создаётся без ошибок

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

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

Окно regsvr32
Норма

Сообщение «DllRegisterServer успешно выполнен»

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

Ошибка 0x80070005 или «модуль не найден»

Подключение к базе
Норма

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

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

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

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

Ошибка 0x80070005 (отказано в доступе) возникает, когда командная строка запущена без прав администратора. Регистрация COM-компонентов пишет в ветку реестра HKEY_CLASSES_ROOT, доступную только администраторам. Перезапустите консоль с повышенными правами.

Ошибка «Не найден указанный модуль» при верном пути обычно означает повреждённую или неполную установку платформы — переустановите нужный релиз. Ошибка «%1 не является приложением Win32» указывает на попытку зарегистрировать 64-битную DLL 32-битной утилитой или наоборот.

После обновления платформы старые скрипты иногда «ломаются»: путь в задании планировщика или в скрипте регистрации указывает на удалённый релиз. Проверяйте пути после каждого обновления.

Типичные ошибки
01
Запуск regsvr32 без прав администратора — ошибка 0x80070005, регистрация не выполняется.
02
Регистрация 64-битной DLL для 32-битного приложения — объект V83.COMConnector не создаётся, хотя regsvr32 отработал успешно.
03
Путь без кавычек — команда обрывается на первом пробеле и выдаёт ошибку.
04
Забытая повторная регистрация после обновления платформы — внешние обмены перестают работать после смены релиза.

Альтернативы и ограничения COM-подключения

COMConnector — не единственный способ внешнего доступа к базе. Если интеграция строится заново, рассмотрите веб-сервисы, HTTP-сервисы или OData-интерфейс: они не требуют регистрации компонентов, работают через сеть и не зависят от разрядности клиента.

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

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

COMConnector

Быстрый доступ к объектам базы; требует регистрации DLL, Windows и совпадения разрядности.

HTTP-сервисы 1С

Кроссплатформенный доступ по сети; требует публикации на веб-сервере и разработки обработчиков.

OData

Стандартный REST-доступ к данным без программирования; ограничен операциями CRUD.

FAQ

Нужно ли регистрировать COMConnector на сервере 1С?

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

Что делать, если установлено несколько версий платформы?

Зарегистрируйте comcntr.dll той версии, которая соответствует версии сервера или требованиям внешнего приложения. Последняя регистрация перекрывает предыдущие, поэтому при смене версии просто выполните regsvr32 для нужной DLL ещё раз.

Почему скрипт работает из командной строки, но не из планировщика задач?

Чаще всего задание планировщика запускается под другой учётной записью или с иной разрядностью (32-битный cscript вместо 64-битного). Проверьте, под каким пользователем выполняется задание, есть ли у него права, и какой именно интерпретатор скриптов вызывается.

Можно ли зарегистрировать компонент без прав администратора?

Штатный regsvr32 требует прав администратора, так как пишет в HKEY_CLASSES_ROOT. Обходные схемы с регистрацией в раздел пользователя (per-user COM) технически существуют, но для 1С не поддерживаются и не рекомендуются.

Отличается ли регистрация для версий V82 и V83?

Процедура идентична — меняется только путь к каталогу платформы (1cv8 или 1cv82) и имя создаваемого объекта: V82.COMConnector для платформы 8.2 и V83.COMConnector для 8.3.

Итог

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

Регистрация сводится к одной команде regsvr32 с правами администратора и правильным путём к comcntr.dll. Ключевые условия успеха: совпадение разрядности DLL и приложения, актуальная версия платформы и повторная регистрация после каждого обновления релиза.