Ошибка получения объекта com 2147221164 0x80040154 класс не зарегистрирован

Обновлено 13.02.2016

Ошибка 2147221164 0x80040154 в 1С

Ошибка 2147221164 0x80040154

Всем привет, сегодня рассмотрим, вопрос из за чего происходит ошибка 2147221164 0x80040154 в 1С и как ее решать. И так немного теории 🙂 , когда информационные базы данных, обмениваются между собой информацией, то они задействуют COM-соединение. И так начинается попытка соединения из конфигурации 8.3 с конфигурацией 8.1, в итоге может выскочить При попытке соединения с COM-сервером произошла следующая ошибка:

Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован”. Смотрим как решить.

Вот более детально как выглядит ошибка 2147221164

Ошибка 2147221164-2

Ошибка 2147221164 0x80040154 в 1С

Ошибка 2147221164 0x80040154 появляется, исключительно на сервере с базой данных, если выполнить соединение локально, все будет ок. На сервере 1С установлены версии 8.1 (x86), 8.2 (x64), 8.3 (x64). Источник проблем в версии 64 битной, так как ей требуется обратиться к  32-х библиотеке comcntr.dll, а на прямую это не реально, что ведет к использованию 64-х битного COM+, который умеет работать с 32-х библиотеками.

Исправляем 2147221164

На сервере 1С выполняем следующие действия.

  1. Для исправления 2147221164 открываем консоль «Службы компонентов» (Панель управления -> Администрирование -> Службы компонентов).
  2. В этой консоли открываем Службы компонентов -> Компьютеры -> Мой компьютер. Правый клик по пункту“Приложения COM+”, Создать -> Приложение.
  3. Далее. В окне «Установка или создание нового приложения» выбираем «Создать новое приложение».
  4. Вводим понятное имя для нового приложения, например, “V8_ComConnector”, способ активации — «Серверное приложение».
  5. В качестве учетной записи для запуска приложения выбираем “Указанный пользователь” и через кнопку “Обзор” находим учетку, под которой запускается сервер 1С v 8.3. У нас это локальная учетная запись с именем “USR1CV8”. Следующие 2 экрана можно пропустить (Далее, Далее, Готово) или сделать следующий пункт на втором из них. Мы пропускаем.
  6. В ветке только что созданного приложения открываем узел «Роли» и в нём роль «CreatorOwner». Правый клик по пункту «Пользователи», Создать -> Пользователь. Здесь выбираем учетку, под которой запускается сервер 1С v 8.3. У нас это локальная учетная запись с именем “USR1CV8”.
  7. В ветке созданного приложения (“V8_ComConnector”) переходим на узел «Компоненты». Правый клик, Создать -> Компонент. Далее.
  8. Выбираем «Установка новых компонентов», и в появившемся окне выбираем нужную DLL-ку (C:Program Files (x86)1cv81bincomcntr.dll). Завершаем создание компонента.
  9. Открываем свойства только что созданного компонента (V81.COMConnector.1), переходим на вкладку «Безопасность», в списке «Явно установленные для выделенных объектов роли» устанавливаем флажок напротив роли “CreatorOwner”.

Все косяка 2147221164 должно уже не быть. Если соединение с базой 8.1 устанавливается из версии 8.2, то нужно в раздел “V8_ComConnector -> Роли -> CreatorOwner -> Пользователи” добавить и пользователя, от имени которого запускается сервер 1С 8.2 (у нас это “USR1CV82”). Как видите, порядок действий не такой сложный и долгий и решает ошибку 2147221164, буквально минут за 15.

Фев 13, 2016 20:19

При установке популярной программы бухгалтерского учёта «1С» (версии 8.3) или обновления программы с версии 8.2 на 8.3, а также запуска какой-либо соответствующей процедуры, юзер может получить сообщение «2147221164 0x80040154 класс не зарегистрирован», вызванное отсутствием регистрации класса. Данная ошибка может быть вызвана несоответствием версий 1С на сервере и клиентском ПК, а также отсутствием регистрации необходимого класса COMConnector (dll-библиотека comcntr.dll) в ОС Виндовс. В данном материале я расскажу о сути указанной дисфункции, а также поясню, как от неё избавиться.

Сообщение класс не зарегистрирован

Содержание

  1. Особенности возникшей дисфункции
  2. Способ №1. Регистрируем необходимые библиотеки
  3. Способ №2. Создаём компоненты для исправления ошибки 2147221164 0x80040154
  4. Заключение

Особенности возникшей дисфункции

Разбираемая мной ошибка 2147221164 0x80040154 в 1C обычно связана с соединением баз данных по COM-объекту, и может иметь несколько причин:

  • Несовпадение конфигурации 1С на сервере и локальном ПК (к примеру, на сервере используется версия 8.3, а на локальном ПК – версия 8.1);
  • Невозможность прямого обращения 64-битной 1С к 32-битному файлу comcntr.dll;
  • В ОС Виндовс не зарегистрирован вышеупомянутый файл comcntr.dll.Картинка решение проблемы

Разберёмся со способами решения возникшей проблемы. Их два.

Способ №1. Регистрируем необходимые библиотеки

Если на ПК 32-битная ОС, то будет необходимо запустить командную строку с админ. правами, и там набрать:

C:WindowsSystem32regsvr32 «C:Program Files (x86)1cv8XXXXXbincomcntr.dll»

Вместо XXXXX будет нужно ввести номер вашей версии 1С, к примеру, это может быть 8.3.10.2252 или иная (пройдите по указанному пути, и просмотрите номер установленной у вас версии). После этого регистрация упомянутого dll будет завершена, и «Ошибка 2147221164 0x80040154 класс не зарегистрирован» должна исчезнуть.

Месадж об успешной регистрации dll

Если на ПК 64-битная ОС, то данная строка должна выглядеть так:

C:WindowsSysWOW64regsvr32 «C:Program Files (x86)1cv8ХХХХХbincomcntr.dll»

Где ХХХХХ – номер вашей версии 1С

Способ №2. Создаём компоненты для исправления ошибки 2147221164 0x80040154

Выполните следующее:

  1. Запустите консоль «Службы компонентов» (перейдите в «Панель управления», затем в «Администрирование», и здесь кликните на «Службы компонентов»);
  2. Здесь выберите «Мой компьютер» («Службы компонентов», затем «Компьютеры», и «Мой компьютер»). Наведите курсор на «Приложения COM+», нажмите на правую клавишу мыши, выберите «Создать» — «Приложение»;
    Пункт Создать
  3. В открывшемся окне «Установка или создание нужного приложения» кликните на «Создать новое приложение».
  4. Введите имя для него (например, «ComConnector8»), а способом активации установите «Серверное приложение»;
  5. Учётной записью для активации приложения поставьте «Указанный пользователь». Нажмите на «Обзор», найдите учётную запись, из-под которой запускается наш сервер 1С (версия 8.3). К примеру, это может быть «USER1CV8». Пропустите следующие два пункта (дважды жмём на «Далее», а потом на «Готово)
  6. В ветке созданного приложения кликните на узел «Роли», а в нём на «CreatorOwner». Наведите курсор на пункт «Пользователи», кликните на правую кнопку мышки, выберите «Создать», и «Пользователь». Затем выберите учётку, из-под которой стартует сервер 1С (к примеру, тот же «USER1CV8»);
  7. В ветке созданного нами приложения (в нашем случае это «ComConnector8») перейдите на узел «Компоненты». Наведите на него курсор, нажмите правую клавишу мыши, выберите «Создать», и «Компонент»;
  8. Затем выберите опцию «Установка новых компонентов», и в открывшемся окне найдите и кликните на нужный нам dll-файл (в нашем варианте это находящийся по пути C:Program Files (x86)1cv81XXXXXbincomcntr.dll). Заверите создание указанного компонента;
  9. Откройте свойства созданного компонента, выберите вкладку «Безопасность», найдите там список «Явно установленные для выделения объектов роли», и поставьте флажок напротив «CreatorOwner».

Заключение

Исправление проблем с незарегистрированными классами в 1С обычно решается с помощью двух способов, обозначенных мной выше. Наибольшую эффективность показал второй из перечисленных способов, потому рекомендую воспользоваться алгоритмом его реализации для исправления ошибки «2147221164 0x80040154 Класс не зарегистрирован» на вашем PC.

Опубликовано 21.12.2017 Обновлено 02.12.2020

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

Скриншот ошибки

Содержание

  1. Когда появляется ошибка 2147221164?
  2. Справляемся с проблемой
  3. Регистрируем библиотеку comcntr.dll
  4. Создаем новое приложение СОМ+

Когда появляется ошибка 2147221164?

Рассматриваемая ошибка появляется из-за конфликта версий 1С, которые в данный момент устанавливают между собой соединение. Разберем подробнее. Информационные БД 1С производят обмен данных при помощи СОМ-соединения. И, если, например, платформа 1С:Предприятие конфигурации 8.3 пытается установить связь с 1С версии 8.1, то на этом этапе при попытке подключения к СОМ-серверу и выскакивает данная ошибка.

Для начала определим, что у сервера 1С есть несколько версий:

  1. 32-битная 8.1 (х86).
  2. 64-битные 8.2 и 8.3 (х64).

Неполадки появляются на самом сервере с БД. Корень проблемы в том, что версии 1С архитектуры х64 не могут напрямую обратиться к 32-битной библиотеке comcntr.dll. В этом случае соединение происходит при помощи приложений СОМ+, способных взаимодействовать с библиотеками х86.

Читайте также: Неверный формат хранилища данных 1C 8.3 как исправить.

Справляемся с проблемой

Заканчиваем с теорией и переходим к практике – пробуем исправить ошибку «2147221164 (0x80040154): Класс не зарегистрирован».

Регистрируем библиотеку comcntr.dll

Ошибка может проявиться, если не зарегистрирована библиотека comcntr.dll. Решаем ее следующим образом. Вызываем строку «Выполнить» (кликнув ПКМ по кнопке «Пуск») и вводим regsvr32.exe «C:Program Files(86)1cv828.3.XX.XXXXbincomcntr.dll». Нажимаем ОК и, если все прошло корректно, то мы увидим сообщение об успешной регистрации библиотеки.

Создаем новое приложение СОМ+

Если библиотека зарегистрирована, но проблема остается, то кликаем ПКМ по кнопке «Пуск» (для ОС Windows 10) и вызываем «Панель управления». Затем входим в раздел «Система и безопасность», после чего переходим в «Администрирование». Появляется окно, в котором мы ищем строку «Службы компонентов» и открываем ее двойным щелчком ЛКМ. В новой консоли два раза кликаем ЛКМ по папке «Компьютер» и затем «Мой компьютер». Перед нами появляется список папок. ПКМ нажимаем на «Приложения СОМ+» и выбираем «Создать»«Приложение».

Консоль

Далее действуем следующим образом.

  1. В открывшемся Мастере нажимаем «Далее» и, когда в следующем окне нам предложат действие на выбор, кликаем «Создать новое приложение».
  2. В соответствующей строке присваиваем новому приложению имя, которое будет понятно не только нам, но и другим пользователям при дальнейшей работе, например 1CV8_ComConnect. Здесь же выбираем способ активации – «Серверное приложение». Окно мастера установки приложений Com+
    Введите имя нового приложения 1CV8_ComConnect
  3. Теперь проводим процедуру удостоверения. В поле «Указанный пользователь» при помощи функции «Обзор» ищем учетную запись, под которым будем запускать сервер 1С версии 8.3. (Для примера обозначим ее как User1CV83).Скрин мастера установки приложений Com+Окно выбора учетной записи
  4. Пропускаем процедуры, предлагаемые в следующих окнах, и нажимаем кнопку «Готово». Мастер закрывается.
  5. Возвращаемся в окно «Службы компонентов» и раскрываем ветку нашего только что созданного приложения. Разворачиваем узел «Роли», в которой кликаем на пункт CreatorOwner. ПКМ щелкаем по строке «Пользователи» и создаем нового пользователя. Снова выбираем ту учетную запись, под которой будет запускаться сервер 1С (это та самая User1CV83, о которой шла речь выше).
  6. Переходим в ветку приложения 1CV8_ComConnect и кликаем ПКМ на узел «Компоненты». Создаем новый компонент.
  7. В открывшемся Мастере делаем выбор пункта «Установка новых компонентов» и, когда появляется следующее окно, определяем нужную нам библиотеку dll (она находится по пути C:Program Files (x86)1cv81bin). Завершаем работу Мастера.
  8. У нас появился компонент 1CV81.ComConnect.1. Кликаем по нему ПКМ и открываем пункт «Свойства».  Во вкладке «Безопасность» находим перечень «Явно установленные для выделенных объектов роли» и ставим флажок напротив CreatorOwner.

Может быть вам полезно: Обнаружено нарушение целостности системы в 1C что делать.

Мы рассмотрели соединение с базой из программы 1С:Предприятие версии 8.3. Если планируется устанавливать коннект с БД 8.1 из версии 1С 8.2, то нужно добавить нового пользователя. Переходим по пути 1CV8_ComConnect Роли CreatorOwner Пользователи и добавляем новую учетную запись User1CV82, под которой будет производиться запуск сервера 1С версии 8.2.

Если спокойно и внимательно следовать алгоритму, то исправление ошибки на деле окажется простым и быстрым. Благодаря вышеописанным действиям программа 1С версий 8.2 и 8.3 сможет обратиться за информацией к библиотеке comcntr.dll и ошибка «2147221164 (0x80040154): Класс не зарегистрирован» больше не возникнет.

Опубликовано 20 августа 2018 Обновлено 03 октября 2020

Ошибки: «Не удалось подключиться к другой программе: Класс не зарегистрирован»  и «Процесс сервера не может быть запущен, так как указана неправильная идентификация» при синхронизации, выгрузках и внешних подключениях 

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

1. -2147221164(0x80040154): Класс не зарегистрирован.

Данное сообщение говорит о том, что не зарегистрирована COM-компонента. 

Для ее регистрации необходимо запустить командную строку с правами администратора и выполнить regsvr32 [ПутьДоКомпоненты].

После выполнения команды должно появиться сообщение об успешном выполнении регистрации библиотеки.

Однако, даже регистрация компоненты через командую строку “привычным” способом помогает не всегда. В таком случае, необходимо вручную создать COM-приложение. 

Новому COM-приложению нужно ввести имя “V83COMConnector” и указать, что приложение является серверным.

создание нового приложения

Также необходимо обратить внимание, что учетной записью для работы приложения НЕ может быть встроенная учетная запись.

Чтобы избежать нежелательных ошибок, лучше выбрать “указанный пользователь” и указать там администратора.

Мастер установки приложений

После успешного создания V83COMConnector появится новое приложение.

Далее в созданном приложении необходимо установить новый компонент через контекстное меню.

установка новый компонент

Выбрать файл comcntr.dll в каталоге установленной платформы.

Выбрать файл comcntr.dll в каталоге установленной платформы

В следующем окне можно убедиться, что регистрация через командную строку была ложно-успешной, так как признак “Установлено” компоненты равен “Нет”.

регистрация через командную строку была ложно-успешной

После успешной установки, необходимо перейти к ветке V83COMConnector. В контекстном меню выбрать «Свойства». На вкладке “Безопасность” необходимо снять галку “Принудительная проверка доступа для приложений”. Установить галку «Применить политику программных ограничений» и выбрать уровень ограничений “Неограниченный”. Сохранить параметры. 

На этом ручная установка приложения завершена.

2. Процесс сервера не может быть запущен, так как указана неправильная идентификация

Причинами этой ошибки могут быть: 

  • при ручной регистрации COM-компоненты либо была указана системная учетная запись, либо пользователь не имеющей прав администратора; 
  • служба сервера 1С запущена с локальной учетной записью. 

Для изменения пользователя, от имени которого работает служба сервера 1С, необходимо открыть свойства службы, перейти на вкладку “Вход в систему” и указать пользователя с правами администратора.

Вход в систему

После изменения учетной записи потребуется перезапуск службы.

Нужна помощь с 1С?

Мы можем взять на себя ваш бухгалтерский учет. Вам не нужно будет думать о расчете налогов и сдаче отчетности. Мы будем вести финансовую ответственность за ошибки. Мы — команда профессионалов, а не один бухгалтер, мы не заболеем, не пропадем и не уйдем внезапно в отпуск. Сосредоточьтесь на управлении. А учет и отчетность мы возьмем на себя. Чтобы получить бесплатную консультацию по автоматизации своего бизнеса Вы можете пообщаться с нашими специалистами в офисе компании или позвонив по телефону: 8-800-707-01-02.

Сопровождение 1С

Наш специалист

Екатерина Столярова

Специалист отдела сопровождения

Специалист-консультант по зарплатным решениям и 1С:Бухгалтерии


Чем мы можем быть вам полезны?

Если при синхронизации баз 1С (например, обмен между УТ и БП, ЗУП или БП) возникла ошибка

Не удалось подключится к другой программе: -2147221164(0x80040154): Класс не зарегистрирован

возможно у вас не зарегистрирован COM-объект. Если у вас 64-битный сервер, а клиент 32-битный, выполните следующие действия:

  1. Откройте консоль Панель управления -> Администрирование -> Службы компонентов, далее там ищем Службы компонентов -> Компьютеры -> Мой компьютер. Правый клик по пункту Приложения COM+, Создать -> Приложение.
  2. В окне Установка или создание нового приложения выбираем Создать новое приложение. Вводим понятное имя для нового приложения, например, , способ активации — Серверное приложение.
  3. В качестве учетной записи для запуска приложения выбираем Указанный пользователь и через кнопку Обзор находим учетку, под которой запускается сервер 1С. По-умолчанию это USR1CV8. После этого Далее, Далее, Готово.
  4. В ветке только что созданного приложения открываем узел Роли и в нём роль CreatorOwner. Правый клик по пункту Пользователи, Создать -> Пользователь. Здесь выбираем учетку, под которой запускается сервер 1С (USR1CV8).
  5. В ветке созданного приложения переходим на узел Компоненты. Правый клик, Создать -> Компонент. Далее.
  6. Выбираем Установка новых компонентов, и в появившемся окне выбираем нужную DLL-ку (C : Program Files (x86)1cv8bincomcntr.dll). Завершаем создание компонента.
  7. Открываем свойства только что созданного компонента (V81.COMConnector.1), переходим на вкладку Безопасность, в списке Явно установленные для выделенных объектов роли устанавливаем флажок напротив роли CreatorOwner.

Понравилась статья? Поделить с друзьями:
  • Ошибка получения объекта com 2147221021 0x800401e3 операция недоступна
  • Ошибка получения параметров информационной базы информационная база не зарегистрирована
  • Ошибка получения объекта com 2147221020 0x800401e4 синтаксическая ошибка
  • Ошибка получения ответа офд 32 разрыв соединения контур
  • Ошибка получения объекта com 2147221014