Всем привет, сегодня рассмотрим, вопрос из за чего происходит ошибка 2147221164 0x80040154 в 1С и как ее решать. И так немного теории, когда информационные базы данных, обмениваются между собой информацией, то они задействуют COM-соединение. И так начинается попытка соединения из конфигурации 8.3 с конфигурацией 8.1, в итоге может выскочить При попытке соединения с COM-сервером произошла следующая ошибка:
Цитата
Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован
Смотрим как решить.
От себя добавлю: у меня такая ерунда сегодня случилась без сервера 1С, без обменов. Была 32-разрядная dll-ка, которая не работала под 64-разрадным клиентом 1С. То что написано в статье мне тоже помогло.
Ошибка 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.
[необходимо зарегистрироваться для просмотра ссылки]
Сообщение отредактировал Vofka - 06.06.20, 14:20