Как исправить ошибку 0x80040154 «Класс не зарегистрирован» в 1С?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

Ситуация, когда при завершении сеанса пользователя, синхронизации данных или программном создании COM-соединения система выдает системную ошибку 0x80040154 (REGDB_E_CLASSNOTREG) Класс не зарегистрирован, является классической для платформы «1С:Предприятие 8.3». Разберем природу этого сбоя и последовательно рассмотрим все проверенные способы его устранения.

Проанализируем механику возникновения ошибки. В большинстве конфигураций, таких как «1С:Документооборот», при закрытии сеанса или регламентных обменах запускаются фоновые процедуры: выгрузка данных в смежные учетные базы через V83.COMConnector, проверка электронной почты, обращение к локальным внешним библиотекам или криптографическим модулям. Ошибка 0x80040154 означает, что вызывающий процесс обратился к системному реестру Windows по определенному идентификатору класса (CLSID), но операционная система не нашла соответствующей записи или не смогла загрузить указанную динамическую библиотеку DLL из-за несовпадения разрядности процессов.

Способ 1. Ручная регистрация comcntr.dll через утилиту regsvr32

Наиболее распространенной причиной сбоя является отсутствие или перезапись регистрации COM-соединителя comcntr.dll после установки новой версии платформы 1С или удаления старого дистрибутива. Зарегистрируем требуемую компоненту вручную.

Обратим особое внимание на разрядность операционной системы и платформы 1С:

  1. Определим разрядность установленной платформы 1С и путь к каталогу bin. Если используется 32-разрядная платформа на 64-битной версии Windows, файлы располагаются в каталоге C:\Program Files (x86)\1cv8\. Если установлена 64-разрядная платформа — в C:\Program Files\1cv8\.
  2. Запустим командную строку cmd.exe обязательно от имени администратора.
  3. Для регистрации 32-разрядного COM-соединителя в 64-битной Windows выполним команду с явным вызовом утилиты из каталога SysWOW64:

    C:\Windows\SysWOW64\regsvr32.exe "C:\Program Files (x86)\1cv8\8.3.X.XXXX\bin\comcntr.dll"

  4. Если используется 64-разрядный клиент или 64-разрядный сервер 1С, зарегистрируем 64-разрядную библиотеку через стандартную утилиту:

    regsvr32 "C:\Program Files\1cv8\8.3.X.XXXX\bin\comcntr.dll"

  5. Дождемся появления системного сообщения с текстом «Успешное завершение: DllRegisterServer в ...comcntr.dll».

Способ 2. Штатная перерегистрация сервера 1С ключами платформы

Если ошибка возникает не только при обращении к V83.COMConnector, но и при OLE-автоматизации (например, запуск V83.Application), зарегистрируем исполняемый сервер самой платформы штатным механизмом.

  1. Откроем командную строку от имени администратора.
  2. Перейдем в каталог с установленной платформой нужной версии.
  3. Снимем текущую некорректную регистрацию OLE-сервера командой:

    1cv8.exe /unregserver

  4. Зарегистрируем сервер платформы повторно:

    1cv8.exe /regserver

Способ 3. Преодоление конфликта разрядностей через Службы компонентов COM+

Рассмотрим распространенный архитектурный конфликт: 64-разрядный процесс сервера 1С (rphost.exe) пытается загрузить 32-разрядный COM-компонент, либо стороннее 32-разрядное приложение пытается подключиться к 64-разрядной базе. Напрямую загрузить библиотеку другой битности в адресное пространство процесса невозможно — Windows моментально возвращает ошибку 0x80040154. Для обхода этого ограничения настроим изолированный процесс-суррогат dllhost.exe:

  1. Нажмем сочетание клавиш Win + R, введем команду dcomcnfg и нажмем Enter для открытия оснастки «Службы компонентов».
  2. Перейдем по дереву: Службы компонентов -> Компьютеры -> Мой компьютер -> Приложения COM+.
  3. Кликнем правой кнопкой мыши по узлу «Приложения COM+» и выберем Создать -> Приложение.
  4. В мастере выберем Установить новое приложение, зададим понятное имя (например, V83_COMConnector).
  5. На шаге «Свойство активации» обязательно выберем пункт Серверное приложение (запуск компонента в отдельном процессе dllhost.exe).
  6. На этапе указания удостоверения учетной записи зададим пользователя, обладающего достаточными правами (например, администратора или системную учетную запись USR1CV8, под которой работает служба сервера 1С).
  7. Откроем созданное приложение в списке, найдем папку Компоненты, нажмем правой кнопкой мыши и выберем Создать -> Компонент.
  8. Выберем пункт Установка новых компонентов и укажем путь к требуемой библиотеке comcntr.dll из рабочей версии платформы 1С.

Способ 4. Проверка состава компонентов и переустановка платформы

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

  1. Откроем Панель управления -> Программы и компоненты.
  2. Найдем установленную платформу 1С, выберем пункт Изменить.
  3. В дереве компонентов раскроем список и убедимся, что компонент COM-соединение отмечен для установки на локальный жесткий диск. Если компонент отключен, включим его и завершим установку.
  4. Если на сервере или рабочей станции накопилось множество старых релизов, корректным решением будет деинсталляция всех версий платформы, очистка временных файлов и последующая чистая установка единственной актуальной версии.
  5. После завершения переустановки выполним перезагрузку операционной системы, чтобы освободить зависшие дескрипторы служб и обновить кэш системного реестра.

Альтернативные архитектурные решения

Учтем долгосрочные ограничения технологии COM/OLE. Данный механизм является закрытой разработкой Microsoft Windows. При работе с серверами на базе Linux или гетерогенной IT-инфраструктуре COM-соединение не поддерживается. Для организации надежной интеграции между информационными базами «1С:Документооборот» и учетными системами рекомендуется постепенный отказ от прямого вызова V83.COMConnector в пользу современных механизмов обмена:

  1. Использование протоколов HTTP-сервисов (REST API) и Web-сервисов (SOAP), встроенных в платформу «1С:Предприятие».
  2. Настройка планов обмена на основе универсального формата EnterpriseData.

Переход на веб-сервисы полностью исключает зависимость рабочих процессов от регистрации системных DLL, разрядности клиентских приложений и сбоев в реестре Windows.

← На главную