Ошибка 2147221164 0x80040154 в 1С
Всем привет, сегодня рассмотрим, вопрос из за чего происходит ошибка 2147221164 0x80040154 в 1С и как ее решать. И так немного теории 🙂 , когда информационные базы данных, обмениваются между собой информацией, то они задействуют COM-соединение. И так начинается попытка соединения из конфигурации 8.3 с конфигурацией 8.1, в итоге может выскочить При попытке соединения с COM-сервером произошла следующая ошибка:
Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован”. Смотрим как решить.
Вот более детально как выглядит ошибка 2147221164
Ошибка 2147221164 0x80040154 появляется, исключительно на сервере с базой данных, если выполнить соединение локально, все будет ок. На сервере 1С установлены версии 8.1 (x86), 8.2 (x64), 8.3 (x64). Источник проблем в версии 64 битной, так как ей требуется обратиться к 32-х библиотеке comcntr.dll, а на прямую это не реально, что ведет к использованию 64-х битного COM+, который умеет работать с 32-х библиотеками.
Исправляем 2147221164
На сервере 1С выполняем следующие действия.
- Для исправления 2147221164 открываем консоль «Службы компонентов» (Панель управления -> Администрирование -> Службы компонентов).
- В этой консоли открываем Службы компонентов -> Компьютеры -> Мой компьютер. Правый клик по пункту“Приложения COM+”, Создать -> Приложение.
- Далее. В окне «Установка или создание нового приложения» выбираем «Создать новое приложение».
- Вводим понятное имя для нового приложения, например, “V8_ComConnector”, способ активации — «Серверное приложение».
- В качестве учетной записи для запуска приложения выбираем “Указанный пользователь” и через кнопку “Обзор” находим учетку, под которой запускается сервер 1С v 8.3. У нас это локальная учетная запись с именем “USR1CV8”. Следующие 2 экрана можно пропустить (Далее, Далее, Готово) или сделать следующий пункт на втором из них. Мы пропускаем.
- В ветке только что созданного приложения открываем узел «Роли» и в нём роль «CreatorOwner». Правый клик по пункту «Пользователи», Создать -> Пользователь. Здесь выбираем учетку, под которой запускается сервер 1С v 8.3. У нас это локальная учетная запись с именем “USR1CV8”.
- В ветке созданного приложения (“V8_ComConnector”) переходим на узел «Компоненты». Правый клик, Создать -> Компонент. Далее.
- Выбираем «Установка новых компонентов», и в появившемся окне выбираем нужную DLL-ку (C:\Program Files (x86)\1cv81\bin\comcntr.dll). Завершаем создание компонента.
- Открываем свойства только что созданного компонента (V81.COMConnector.1), переходим на вкладку «Безопасность», в списке «Явно установленные для выделенных объектов роли» устанавливаем флажок напротив роли “CreatorOwner”.
Все косяка 2147221164 должно уже не быть. Если соединение с базой 8.1 устанавливается из версии 8.2, то нужно в раздел “V8_ComConnector -> Роли -> CreatorOwner -> Пользователи” добавить и пользователя, от имени которого запускается сервер 1С 8.2 (у нас это “USR1CV82”). Как видите, порядок действий не такой сложный и долгий и решает ошибку 2147221164, буквально минут за 15.
Спасибо мне помогло, добавил себе в закладки
Тоже встречал данную заразу, лечил так же
спасибо
Рад, что помог.
спасибо!!!
Спасибо, помогло!
Иначе и не могло быть!
Добрый день !
Почему то после создании нового компонента ничего не происходит — компонент отсутствует, после создания и в процессе , никаких ошибок не возникает .
Как быть , что делать ?
Спасибо .
Огромное спасибо! Помогло! Добавил в закладки.
Рад, что смог вам помочь.
Автор молодец дай бог тебе здоровья! СПАСИБО! Помогло)
Спасибо!
О, спасибо за пошаговую инструкцию. Здоровья и удачи!
да, спасибо
Спасибо! Спасли моё время!
Спасибо!
Автору респект!
Спасибо!!!
Спасибо!!!
Отличная статья,большое спасибо!
Спасибо!
спасибо
У нас базы файловые, ошибка такая же. Как действовать в таком случае?
респект
Спасибо за статью!Всё заработало!Очень помог!
Очень рад, что смог вам быть полезным!
Благодарю! оказалось есть нюанс который в других местах не описан !