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

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

RegMSC (regmsc.cmd) в 1С: назначение и регистрация COM-коннектора

Что такое regmsc.cmd в 1С, зачем нужна регистрация COM-соединителя comcntr.dll, как выполнить её вручную и исправить типичные ошибки подключения.

При поиске по запросу «regmsc cmd 1с» пользователь обычно сталкивается с одной из двух ситуаций: либо внешняя программа не может подключиться к базе 1С через COM-соединение, либо в папке установки платформы обнаружен файл regmsc.cmd, назначение которого непонятно. Этот командный файл входит в состав платформы 1С:Предприятие и служит для регистрации COM-коннектора — библиотеки, через которую сторонние приложения подключаются к информационным базам.

COM-соединитель (COM Connector) — это механизм платформы, позволяющий обращаться к данным 1С из внешних программ: скриптов, надстроек Excel, самописных приложений на C#, Python и других языках. Без корректной регистрации соответствующей версии библиотеки comcntr.dll в системном реестре Windows любая попытка создать COM-объект V83.COMConnector завершится ошибкой.

Ниже разобрано, что именно делает regmsc.cmd, когда его нужно запускать, как выполнить регистрацию вручную и какие ошибки встречаются чаще всего.

Что такое regmsc.cmd и где он находится

Файл regmsc.cmd поставляется вместе с платформой 1С:Предприятие и располагается в каталоге bin конкретной версии платформы. Типичный путь выглядит так: C:\Program Files\1cv8\8.3.22.1750\bin\regmsc.cmd (номер версии в пути отличается в зависимости от установленного релиза). На 32-разрядных системах или при установке 32-битной платформы на 64-битную ОС путь будет проходить через Program Files (x86).

По сути, это обычный пакетный файл Windows, который вызывает системную утилиту regsvr32 для библиотеки comcntr.dll, лежащей в том же каталоге. Именно эта DLL реализует COM-интерфейс, через который внешние приложения создают объект соединения и работают с информационной базой: читают справочники, проводят документы, выполняют запросы.

Когда требуется запускать регистрацию

В большинстве случаев установщик платформы регистрирует COM-коннектор автоматически, и вмешательство не требуется. Однако есть типовые ситуации, когда регистрацию приходится выполнять вручную:

  • на компьютере установлено несколько версий платформы, и внешняя программа должна работать через конкретную из них;
  • платформа была обновлена, а COM-объект по-прежнему ссылается на старую версию библиотеки;
  • при создании объекта V83.COMConnector возникает ошибка «класс не зарегистрирован» (HRESULT 0x80040154);
  • платформа была перенесена или установлена копированием файлов без штатного инсталлятора;
  • регистрация была повреждена после установки или удаления других программ.

Важно понимать: в Windows одновременно зарегистрированной может быть только одна версия comcntr.dll. Последняя выполненная регистрация «переключает» COM-коннектор на соответствующую версию платформы. Поэтому при смене рабочей версии 1С регистрацию нужно повторять.

Как выполнить регистрацию через regmsc.cmd

Штатный способ — запуск готового командного файла. Порядок действий:

  1. Откройте папку bin нужной версии платформы, например C:\Program Files\1cv8\8.3.22.1750\bin.
  2. Найдите файл regmsc.cmd.
  3. Щёлкните по нему правой кнопкой мыши и выберите «Запуск от имени администратора».
  4. Дождитесь диалогового окна с сообщением об успешной регистрации библиотеки (DllRegisterServer ... succeeded).

Запуск именно от имени администратора обязателен: регистрация COM-компонента записывает данные в ветку реестра HKEY_CLASSES_ROOT, куда у обычного пользователя нет права записи. Если запустить файл двойным щелчком без повышенных прав, появится ошибка доступа, и регистрация не выполнится.

Альтернатива — та же операция через командную строку с прямым вызовом regsvr32:

cmd
regsvr32 "C:\Program Files\1cv8\8.3.22.1750\bin\comcntr.dll"
Порядок действий
  1. 1
    Определите, какая версия платформы должна обслуживать COM-подключения
  2. 2
    Откройте командную строку от имени администратора
  3. 3
    Перейдите в каталог bin нужной версии платформы
  4. 4
    Выполните regsvr32 comcntr.dll или запустите regmsc.cmd
  5. 5
    Проверьте подключение тестовым скриптом из внешней программы

Разрядность платформы и внешнего приложения

Одна из самых частых причин неудач — несовпадение разрядности. COM-коннектор 64-разрядной платформы доступен только 64-разрядным приложениям, а 32-разрядная версия comcntr.dll — только 32-разрядным процессам. Если, например, скрипт запускается из 32-битного офисного приложения, а зарегистрирован коннектор от 64-битной платформы, подключение не установится.

Практический вывод: перед регистрацией определите разрядность программы, которая будет обращаться к 1С. Если это 32-битное приложение (например, старые версии офисных пакетов или 32-битный интерпретатор скриптов), устанавливайте и регистрируйте 32-разрядную версию платформы 1С, даже если сама операционная система 64-битная.

Типичные ошибки и их причины

При работе с COM-коннектором чаще всего встречаются следующие проблемы:

  • «Класс не зарегистрирован» (0x80040154) — библиотека comcntr.dll не зарегистрирована вовсе или регистрация относится к другой разрядности. Решение: выполнить регистрацию нужной версии от имени администратора.
  • Ошибка при загрузке компоненты — DLL зарегистрирована, но файл физически удалён или перемещён (например, версия платформы была удалена). Нужно зарегистрировать библиотеку из существующего каталога.
  • Ошибка доступа при запуске regmsc.cmd — файл запущен без прав администратора. Требуется запуск через контекстное меню «Запуск от имени администратора».
  • Подключается «не та» версия 1С — зарегистрирована другая версия платформы. Повторите регистрацию из каталога нужной версии.
  • Ошибка аутентификации при подключении — регистрация прошла успешно, но в строке соединения неверно указаны база, пользователь или пароль. Это уже не проблема регистрации.
Типичные ошибки
01
Запуск regmsc.cmd двойным щелчком без прав администратора — регистрация не выполняется, а окно закрывается слишком быстро, чтобы прочитать ошибку
02
Регистрация 64-битного коннектора для 32-битного приложения — COM-объект не создаётся, хотя regsvr32 сообщил об успехе
03
Регистрация из каталога случайной версии при нескольких установленных платформах — интеграция начинает работать через неподходящий релиз
04
Удаление версии платформы, чья DLL была зарегистрирована, без повторной регистрации новой — все COM-подключения отваливаются

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

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

powershell
$connector = New-Object -ComObject V83.COMConnector

Если команда выполнилась без исключений — компонент зарегистрирован и доступен. Ошибка «класс не зарегистрирован» на этом этапе означает, что регистрация не прошла или выполнена для другой разрядности. Следующий шаг проверки — реальное подключение к тестовой базе через метод Connect со строкой соединения.

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

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

Создание COM-объекта
Норма

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

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

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

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

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

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

Ошибки аутентификации или «информационная база не обнаружена»

Версия коннектора
Норма

Подключение работает через нужный релиз платформы

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

Интеграция использует старую или неподходящую версию

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

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

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

COM-коннектор (comcntr.dll)

Подходит для локальных скриптов и настольных приложений под Windows. Ограничение: требует регистрации, зависит от разрядности, не работает на Linux

HTTP-сервисы и REST-интерфейс 1С

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

OData (стандартный интерфейс)

Быстрый доступ к данным без доработки конфигурации. Ограничение: не все операции доступны, вопросы производительности при больших объёмах

Веб-сервисы (SOAP)

Подходят для интеграции с корпоративными системами. Ограничение: более тяжёлый протокол, нужна публикация и настройка

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

Итог

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

Regmsc.cmd — штатный командный файл платформы 1С для регистрации COM-коннектора comcntr.dll. Запускайте его от имени администратора из каталога bin той версии платформы, которую должны использовать внешние программы, и следите за совпадением разрядности коннектора и вызывающего приложения.

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

Где скачать regmsc.cmd отдельно от платформы?

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

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

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

regsvr32 сообщил об успехе, но подключение всё равно не работает. Что проверить?

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

Нужно ли запускать regmsc.cmd после каждого обновления платформы?

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

Работает ли COM-коннектор на Linux?

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

Чем regmsc.cmd отличается от регистрации толстого/тонкого клиента?

Regmsc.cmd регистрирует только COM-коннектор — компонент для внешних подключений. Сами клиентские приложения 1С (толстый, тонкий, веб-клиент) этой регистрации не требуют и работают независимо от неё.