Не удалось подключиться к приложению: -2147221164(0x80040154): Класс не зарегистрирован
Как правило, сообщение возникает при фоновом обмене данными между системами или запуске синхронизации вручную. Что делать при появлении этой ошибки и куда смотреть.
Причина связана с незарегистрированными в системе компонентами — comcntr.dll, ошибками доступа (недостаточно прав).
Регистрируем компоненту только на сервере 1С
Классический метод
►1) Проверьте, что обмен запускается в сеансе учетной записи, имеющей достаточные права на уровне 1С и ОС Windows.
В частном случае, если служба Агента сервера 1С работает под технологической записью, а для обмена требуется доступ к файловой ИБ — добавьте NTFS-разрешения на каталог для этого пользователя (права «Изменение»).
►2) Деинсталируйте предыдущ регистрацию, а потом зарегистрируйте в системе новую компоненту comcntr.dll, выполнив операцию в командной строке от имени администратора.
Регистрирует или отменяет регистрацию динамически подключаемых библиотек (DLL) и элементов управления ActiveX в системном реестре. Расположение:
- C:\Windows\System32\regsvr32.exe: 64-разрядная версия (для 64-разрядных DLL).
- C:\Windows\SysWOW64\regsvr32.exe: 32-разрядная версия (для 32-разрядных DLL в 64-разрядных Windows).
Windows 1С Платформа (x64)
Деинсталяция:
|
1 2 3 |
regsvr32 /u "c:\program files (x86)\1cv8\предыдущий_релиз\bin\comcntr.dll" regsvr32 /u "c:\program files\1cv8\предыдущий_рели\bin\comcntr.dll" |
Для того чтобы зарегистрировать ComConnector в 64 разрядной операционной системе Windows выполняется
команда:
|
1 2 3 |
regsvr32 "c:\program files (x86)\1cv8\новый_релиз\bin\comcntr.dll" regsvr32 "c:\program files\1cv8\новый_релиз\bin\comcntr.dll" |
Windows 1С Платформа (x32)
Деинсталяция:
|
1 2 |
cd c:\Windows\SysWOW64 regsvr32 "c:\program files (x86)\1cv8\предыдущий_релиз\bin\comcntr.dll" /u |
Для 32 разрядной операционной системы Windows выполняется
команда:
|
1 2 |
cd c:\Windows\SysWOW64 regsvr32 "c:\program files (x86)\1cv8\текущий_релиз\bin\comcntr.dll" |
При успешной регистрации появится:
Указанная ошибка «Модуль comcntr.dll загружен, но не удалось выполнить DllRegisterServer, код ошибки: 0x80070005» при выполнении команды означает, что недостаточно прав — запустите командную строку от имени администратора и повторите операцию.
В редких случаях требуется сначала выполнить удаление регистрации comcntr.dll с помощью ключа «/u» (DllUnregisterServer), а только потом — повторную регистрацию.
Как создать коннектор с помощью оснастки «Службы компонентов»
Регистрируем компоненту только на сервере 1С
►1) Открываем «Панель управления — Администрирование — Службы компонентов»
►2) В окне консоли переходим к разделу «Службы компонентов → Компьютеры → Приложения COM+», далее через правую кнопку мыши «Создать → Приложение».
Приложения COM+ → Создать → Приложение
►3) Следуем указаниям Мастера и выбираем «Создать новое приложение».
►4) Указываем имя приложения (V83COMConnector) и способ активации (Серверное приложение).
►5) Выбираем учетную запись, от имени которой будет запускаться приложение.
По умолчанию → «Текущий (вошедший в систему) пользователь», но для фоновой работы обмена рекомендуется указать отдельную учетную запись («Указанный пользователь») → здесь выбираете сами.
Появилась ошибка:
Не удалось подключиться к приложению: -2147467238(0x8000401A): Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля. Техническую информацию об ошибке см. в журнале регистрации.Установил у себя галочка → Указанный пользователь → от имени которого запускается служба сервера 1С, по умолчанию (.\USR1CV8) и ваш пароль от ней
►6) На этапах «Добавление ролей приложения» и «Добавление пользователей для ролей» особой настройки не требуется → нажимаем «Далее → Далее → Готово».
►7) В созданном приложении открываем «Компоненты» и выбираем команду «Создать → Компонент»
►8) Следуем Мастеру установки и выбираем пункт «Установка новых компонентов».
►9) В открывшемся диалоге указываем расположение файла comcntr.dll, нажав на кнопку «Открыть». Потом «Далее» и «Готово».
►10) Финальные действия после установки → открываем свойства компонента V83COMConnector через правый клик и во вкладе «Безопасность» убираем признак «Принудительная проверка доступа для приложения» и применяем политику «Уровень ограничений = Неограниченный».
Класс V83COMConnector успешно зарегистрирован и может использоваться для подключения к информационным базам.
В «Приложения COM+ → V83COMConnector → Роли → CreatorOwner → Пользователи» добавить USR1CV8 и учетные записи пользователей ОС сервера, кто имеет право запускать задания (.\USR1CV8).
►11) Перегружаем Windows server
Прочие возможные причины (опционально, требуют дополнительной проверки)
Если ошибка появляется снова:
- Перезапуск сервера 1С (из-за зависшего процесса с использованием компоненты) или вручную закрыть зависший com-процесс.
- Наличие некорректного кода (например, обращение к устаревшему компоненту V82COMConnector вместо V83COMConnector).
- Переключить тип приложения с «Серверное» на «Библиотечное».
- В «Приложения COM+ → V83COMConnector → Роли → CreatorOwner → Пользователи» добавить USR1CV8 и учетные записи пользователей ОС сервера, кто имеет право запускать задания.
- Через «Программы и компоненты» вызвать установку необходимой платформы в режиме «Исправить» и отметить COM-соединение.
Альтернативный вариант
Что реально помогло, помогает запустить службу агента сервера под системной учетной записью! Запускаешь и COM начинает работать, но это не безопасно.
В файлах предложена обработка для проверки COM Соединения. Она показывает что после регистрации библиотеки мы находимся cразу на сервере, и начинаем проверять COM, обработку прилагаю. А 1с говорит, что на клиенте СOM есть, а на сервере его нет.
Для тестирования достаточно просто запустить обработку, поставить галочки Клиент и Сервер и нажимать выполнить.
Помогает только удаление пользователя USR1CV8 и переустановка платформы с созданием нового пользователя USR1CV8.
Несмотря, что внешне права этого пользователя никак не отличаются от прав старого USR1CV8 Com вдруг магическим образом начинает работать.
Если есть не равнодушные люди, столкнувшиеся с проблемой и желающие разобраться на 100%, чем же отличаются эти пользователи USR1CV8, то пишите комментарии. Это уже не первая статья, где люди указывают мне более правильное решение. Но напишу свое наблюдение, что даже если дать USR1CV8 полные права, то всё равно проблема остается и COM не подключается.













