Регистрация COMCNTR.DLL для COM-соединения: RegCOM.cmd на основе RegMSC.cmd в bin 1С 8.3

05.10.26

Интеграция - WEB-интеграция

Пошагово регистрируем comcntr.dll в каталоге bin установленной платформы 1С:Предприятие 8.3 через адаптацию RegMSC.cmd. Вы получите готовый RegCOM.cmd, порядок остановки служб, проверку COMConnector и запасной вариант через regsvr32.

Приём 1. Зачем нужен COMCNTR.DLL

Регистрация COMCNTR.DLL в bin установленной платформы 1С:Предприятие 8.3 нужна для СОМ-соединения через шаблон RegMSC.cmd и свой RegCOM.cmd. Если в логах мелькает «COMConnector не найден», я не собираю regsvr32 вручную: повторяю логику cmd из bin, подставляю comcntr.dll и запускаю скрипт от администратора после остановки служб, которые держат DLL.

Библиотека comcntr.dll из bin конкретного релиза платформы поднимает СОМ-коннектор с ProgID вроде V83.COMConnector. Через него внешние программы, скрипты и планировщики Windows цепляются к информационной базе по COM, без тонкого клиента и без веб-клиента.

Тонкий клиент живёт своей установкой. СОМ-соединение нужно, когда Excel, PowerShell, отдельная служба или ваш код на языке 1С во внешней обработке создаёт объект COMConnector и зовёт Connect. Пока DLL не прописана в реестре для нужной разрядности, CreateObject или Новый COMObject падают ещё до строки подключения.

Веб-клиент и НТТР-сервисы платформы к comcntr.dll не привязаны. Если задача только открыть базу в браузере, RegCOM.cmd не понадобится, а вот интеграция с Office или службой на Windows без установки толстого клиента упирается в регистрацию именно этой DLL.

Установщик платформы иногда регистрирует comcntr.dll сам, но после копирования bin с другого сервера, смены релиза или ручной «чистки» реестра регистрация слетает. Тогда осмысленный путь - не гадать с параметрами, а скопировать проверенный вызов из RegMSC.cmd и заменить только имя файла.

 

Приём 2. Остановить ragent и клиентов

Схема 2. Внешний клиент запрашивает COMConnector и получает Connect

 

Контекст: Приём 2. Остановить ragent и клиентов

 

Контекст: Приём 2. Остановить ragent и клиентов

Схема 2. Внешний клиент запрашивает COMConnector и получает Connect

 

Внешний клиент запрашивает COMConnector и получает Connect

 

Перед правкой реестра Windows не отпустит comcntr.dll, если её уже подхватил агент сервера 1С или rphost. Я останавливаю службу «Агент сервера 1С:Предприятия 8.3» для нужного экземпляра и закрываю сеансы толстого клиента той же версии платформы.

Если регистрация идёт на рабочей станции разработчика, закройте конфигуратор и все окна 1С, где мог остаться СОМ-вызов. Иначе regsvr32 честно пишет, что модуль занят, а вы потратите десять минут на повторные запуски.

После успешной регистрации службу агента можно снова включить. Порядок «остановили - зарегистрировали - запустили» экономит один круг перезагрузки сервера, которую иначе предлагают «на всякий случай». Пока rphost держит comcntr.dll, regsvr32 только имитирует работу и оставляет СОМ-соединение сломанным.

 

Приём 3. RegMSC.cmd в bin релиза

Схема 1. Перерегистрация comcntr.dll при смене релиза платформы

 

Контекст: Приём 3. RegMSC.cmd в bin релиза

 

Контекст: Приём 3. RegMSC.cmd в bin релиза

Схема 1. Перерегистрация comcntr.dll при смене релиза платформы

 

Перерегистрация comcntr.dll при смене релиза платформы

 

Откройте каталог установленной платформы: C:\Program Files\1cv8\8.3.xx.xxxx\bin, где xx.xxxx - номер вашего установленного релиза. Для 32-разрядной установки путь часто начинается с Program Files (x86)\1cv8\... - регистрировать нужно DLL из того bin, откуда потом пойдёт вызов COM.

В bin лежит RegMSC.cmd: штатный скрипт регистрации radmin.dll для консоли администрирования серверов. Он уже задаёт рабочий каталог и параметры regsvr32 для библиотек 1С в этой папке. Менять флаги без причины не стоит: задача статьи - подставить comcntr.dll и сохранить остальную строку как в оригинале.

Я обычно делаю копию RegMSC.cmd, а не правлю исходник. Так после эксперимента консоль серверов по-прежнему регистрируется штатным файлом, а COM живёт в отдельном RegCOM.cmd.

Номер в пути 8.3.xx.xxxx сверяю с релизом в ярлыке клиента или в свойствах кластера. На одном сервере часто лежат несколько bin рядом, и comcntr.dll из соседней папки формально регистрируется, но ProgID указывает на другую версию платформы.

 

Приём 4. RegCOM.cmd из RegMSC.cmd

Откройте копию в блокноте или редакторе, который не ломает кодировку cmd. Найдите radmin.dll и замените на comcntr.dll одним вхождением, без правок пути к regsvr32 и без удаления ключей вроде /n или /i:user, если они есть в вашем RegMSC.cmd.

 

Контекст: Приём 4. RegCOM.cmd из RegMSC.cmd

 

Контекст: Приём 4. RegCOM.cmd из RegMSC.cmd

Типичная строка после замены выглядит так: regsvr32 /n /i:user comcntr.dll. Имя файла на диске может быть RegCOM.cmd или RegCOMConnector.cmd - главное расширение cmd и сохранение в тот же bin, рядом с comcntr.dll.

Не переносите скрипт в Temp и не подставляйте абсолютный путь к DLL вручную, если оригинал RegMSC.cmd вызывает regsvr32 относительно текущего каталога bin. Так вы повторяете поведение фирменного скрипта и не промахиваетесь версией DLL с соседнего релиза 8.3.

Если в вашем RegMSC.cmd есть переход в каталог скрипта через %~dp0, перенесите эту строку в RegCOM.cmd без изменений. Ниже упрощённый каркас только для ориентира: флаги regsvr32 возьмите из вашего оригинала, а не из примера.

@echo off
cd /d "%~dp0"
regsvr32 /n /i:user comcntr.dll

Кодировка cmd на русской Windows иногда ломает кириллицу в рем-комментариях. Я оставляю в RegCOM.cmd только латиницу и служебные команды, чтобы окно regsvr32 не закрывалось из-за ошибки парсера до вызова DLL.

 

Приём 5. Запуск с правами администратора

Щёлкните RegCOM.cmd правой кнопкой и выберите «Запуск от имени администратора». UAC без согласия не даст записать класс COM в ветки реестра, и вы увидите «Отказано в доступе» или тихий провал без сообщения об успехе.

 

Контекст: Приём 5. Запуск с правами администратора

 

Контекст: Приём 5. Запуск с правами администратора

Каталог Program Files защищён: сохранять RegCOM.cmd тоже лучше из сеанса администратора или через редактор, запущенный с повышением. Иначе файл cmd создастся в профиле пользователя, а не в bin.

Нормальный финал - окно regsvr32 с текстом об успешном выполнении DllRegisterServer и DllInstall для comcntr.dll в вашем каталоге bin. Если окно мгновенно исчезло, запустите cmd от администратора, перейдите в bin и вызовите RegCOM.cmd из консоли, чтобы прочитать вывод.

Сообщение в духе успешной регистрации radmin.dll в документации по RegMSC.cmd - тот же класс ответа, только путь в тексте указывает на comcntr.dll. Нет окна и нет строки succeeded - считаю регистрацию незавершённой, даже если cmd вернул управление без паузы.

 

Приём 6. Проверка COMConnector

Разрядность должна совпадать: 64-битный Excel или PowerShell требуют регистрации из 64-битного bin; 32-битный вызывающий процесс - из Program Files (x86). Смешение даёт «ActiveX component can't create объект» при живой DLL в другой разрядности.

Быстрая проверка из PowerShell от той же разрядности, что и будущий клиент: создание объекта V83.COMConnector и вызов Connect с тестовой строкой соединения. Ошибка «Неверный ProgID» часто значит, что зарегистрировали bin другого релиза, чем указано в строке.

Из внешней обработки на языке 1С я проверяю тот же ProgID, если COM нужен на машине разработчика. Код короткий, зато сразу видно, доходит ли вызов до платформы.

Функция ПроверитьCOMConnector(СтрокаСоединения) Экспорт
	
	Попытка
		Коннектор = Новый COMObject("V83.COMConnector");
	Исключение
		Возврат "COMConnector не создан: " + ОписаниеОшибки();
	КонецПопытки;
	
	Попытка
		Соединение = Коннектор.Connect(СтрокаСоединения);
		Если Соединение = Неопределено Тогда
			Возврат "Connect вернул Неопределено";
		КонецЕсли;
		Возврат "OK: COM-соединение установлено";
	Исключение
		Возврат "Connect: " + ОписаниеОшибки();
	КонецПопытки;
	
КонецФункции

СтрокаСоединения - та же, что для СОМ-соединения в вашей среде: сервер, имя базы, пользователь. Успех - строка OK из функции проверки. «Модуль не найден» при создании COMObject - снова bin, разрядность или незавершённая регистрация.

Если объект создаётся, а Connect ругается на версию, сверьте номер релиза в пути к bin с версией платформы в строке подключения. COM не подменяет несовместимую версию клиента и сервера.

На машине без языка 1С достаточно CreateObject в PowerShell или короткого VBS: Dim c: Set c = CreateObject("V83.COMConnector"). Если шаг падает, проблема ещё в регистрации или разрядности интерпретатора script.exe из SysWOW64.

Я не смешиваю проверку СОМ-соединения с запуском тонкого клиента по ярлыку: клиент может стартовать, а внешний COMConnector останется незарегистрированным для Excel на другой разрядности.

 

Приём 7. regsvr32 и снятие регистрации

Запасной способ - regsvr32 с полным путём к comcntr.dll из нужного bin, с теми же ключами, что в RegMSC.cmd после замены имени DLL. Риск выше: опечатка в версии каталога 8.3.xx.xxxx регистрирует чужой релиз, и Connect потом ведёт себя непредсказуемо.

При обновлении платформы или конфликте ProgID сначала снимите старую регистрацию: regsvr32 /u comcntr.dll из старого bin, лучше тем же способом от администратора и с остановленным агентом. Затем регистрируйте DLL из bin нового релиза через RegCOM.cmd.

Для сравнения: ручная команда в консоли администратора может выглядеть как переход в bin и вызов regsvr32 /n /i:user comcntr.dll. RegCOM.cmd просто фиксирует эту последовательность в файле, который можно положить в инструкцию для коллег и не переписывать путь каждый раз.

Ошибка «Не найден указанный модуль» при regsvr32 часто означает запуск не из bin или отсутствие comcntr.dll в выбранном релизе. «Доступ запрещён» - UAC или антивирус блокирует запись в реестр. «DllRegisterServer failed» при открытом rphost - вернитесь к приёму 2 и повторите регистрацию.

Когда на одном сервере несколько версий 8.3, я держу отдельный RegCOM.cmd в bin каждого релиза с уникальным именем, например RegCOM_8_3_24_1698.cmd. Так меньше шансов зарегистрировать не ту DLL в спешке.

Для автоматизации на языке 1С иногда нужно собрать строку соединения перед СОМ-вызовом из параметров сеанса. Ниже - фрагмент без привязки к типовой конфигурации: подставьте свои имена сервера и публикации.

Функция СтрокаCOMСоединения(ИмяСервера, ИмяИБНаСервере, Пользователь, Пароль) Экспорт
	
	Шаблон = "Srvr=""%1"";Ref=""%2"";Usr=""%3"";Pwd=""%4""";
	Возврат СтрШаблон(Шаблон, ИмяСервера, ИмяИБНаСервере, Пользователь, Пароль);
	
КонецФункции

Эту строку передают в Connect после успешной регистрации comcntr.dll. Если пароль пустой, ключ Pwd всё равно оформляют по правилам строки соединения вашей документации.

SysWOW64 и System32 здесь не магия: regsvr32 из System32 - 64-битный, из SysWOW64 - 32-битный. Запускайте RegCOM.cmd так, чтобы он использовал тот regsvr32, который соответствует разрядности вызывающего приложения. Скрипт из bin платформы обычно уже попадает в нужный контекст, если вы не смешали установки x86 и x64.

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

Процедура ЗарегистрироватьCOMПослеОбновления(ПутьКBin) Экспорт
	
	// ПутьКBin - каталог bin нового релиза, например из параметра администратора
	Скрипт = ПутьКBin + "\RegCOM.cmd";
	Если Не Новый Файл(Скрипт).Существует() Тогда
		ВызватьИсключение "Нет RegCOM.cmd в " + ПутьКBin;
	КонецЕсли;
	
	Команда = "cmd /c """ + Скрипт + """";
	// Запуск с повышением прав выполняйте вне 1С: через планировщик или вручную от администратора
	Сообщить("Выполните от администратора: " + Команда);
	
КонецПроцедуры

Код 1С сам не повышает UAC: он напоминает команду, а RegCOM.cmd вы запускаете вручную или через задание с галочкой «Выполнять с наивысшими правами». Так меньше иллюзий, что регистрация прошла из сеанса обычного пользователя конфигуратора.

Снятие регистрации перед обновлением делаю из того же bin, откуда регистрировал: cd в каталог, regsvr32 /u comcntr.dll с теми же ключами, что в RegCOM.cmd, только с /u. Пропуск шага /u оставляет в реестре следы старого ProgID, и Connect может цепляться к DLL не от того релиза.

Ручной regsvr32 с полным путём к comcntr.dll в Program Files удобен для одноразовой проверки. Путь беру в кавычки целиком, иначе пробел после Program обрежет команду. Для постоянной эксплуатации RegCOM.cmd в bin релиза проще передать коллегам и не ошибиться в номере xx.xxxx.

После регистрации я один раз фиксирую в блокноте администратора, какой bin и какая разрядность использовались для V83.COMConnector. Через полгода при следующем обновлении платформы это экономит поиск «почему Excel снова не видит COM».

 

Приём 8. Что забрать себе

  • Скопируйте RegMSC.cmd в RegCOM.cmd в bin нужного релиза 8.3, замените radmin.dll на comcntr.dll и не трогайте остальную логику regsvr32.
  • Остановите агент сервера 1С и клиенты, использующие DLL, затем запустите RegCOM.cmd от администратора и дождитесь сообщения об успехе.
  • Проверьте V83.COMConnector той же разрядности, что внешний клиент; при смене релиза снимите регистрацию regsvr32 /u из старого bin перед новой регистрацией.

Вступайте в нашу телеграмм-группу Инфостарт

COM-соединение COMConnector 1С:Предприятие 8.3 администрирование regsvr32 comcntr.dll сервер 1С COMCNTR.DLL COM-соединение RegMSC.cmd RegCOM.cmd регистрация bin 1С Предприятие 8.3 V83.COMConnector

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

WEB-интеграция Разработчик Аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17568 руб.

20.12.2024    7750    35    4    

35

Сайты и интернет-магазины WEB-интеграция Системный администратор Разработчик Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

42700 руб.

03.08.2020    25816    42    26    

30

WEB-интеграция Системный администратор Разработчик Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена по API между конфигурацией 1С:Альфа-Авто 6 и порталом LogicStar. Позволяет работать с несколькими обменами LogicStars разных брендов (CHERY, OMODA, JAECOO, EXEED, TENET) в одной информационной базе в ручном и автоматическом режиме. Поддерживается выгрузка заказ-нарядов, реализаций товаров и товарных остатков.

20740 руб.

13.05.2025    3074    6    0    

8

WEB-интеграция Разработчик Пользователь 1С:Предприятие 8 1C:Бухгалтерия Управленческий учет Платные (руб)

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

5094 руб.

21.06.2022    11405    12    0    

12

WEB-интеграция Загрузка и выгрузка в Excel Разработчик Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Расширение освободит вас от необходимости вручную обновлять информацию о товарах в группах ВКонтакте. Достаточно задать правила один раз, и система автоматически формирует файлы yml для дальнейшей загрузки в группы в ВК. Вы сможете легко выбирать, какие товары публиковать, создавая гибкие критерии отбора. Например, можно добавить важные для покупателей параметры: цвет, размер или другие характеристики.

12200 руб.

29.08.2025    3750    7    8    

9
Для отправки сообщения требуется регистрация/авторизация