Если ошибка Класс не зарегистрирован возникает при попытке открыть меню Пуск или Параметры , рекомендуем воспользоваться инструкцией, что делать, если не работает меню Пуск в Windows 10. Исправление ошибки Windows Installer 0x80040154 / Песочница / Хабр Обращайтесь в форму связи
Ошибка юл
В этой статье я расскажу об исправлении одной очень распространенной ошибки Windows Installer. Обыскавши Интернет как русскоязычный, так и англоязычный, включая форумы и ньюсгруппы Microsoft, я понял что ошибка довольно распространенная, однако исправить ее, на самом деле никому не удавалось.
Суть проблемы
Как то одним жарким летним вечером я решил установить на свой компьютер ActeiveState ActivePerl. Скачал инсталлятор, который был в .msi файле и запустил его. Каково же было мое удивление, когда вместо привычного инсталлятора я увидел вот это:
Как вскоре оказалось, подобная ошибка выпадала при запуске на моем компьютере любого .msi файла.
Недолго думая, я полез в интернет, ввел в поиск появившееся сообщение, и, «О ужас!» — я увидел сотни постов людей с этой проблемой! В русскоязычном и англоязычном сегменте Интернета у множества людей была аналогичная проблема, и никто ее не смог решить по существу.
Синхронизация 1С ЗУП 3.1 и 1С Бухгалтерия 3.0 — исправляем ошибки
Решение проблемы
Для начала я включил Log-файл установщика Windows. Как включить лог Windows Installer вы можете почитать здесь, или поискать в любом поисковике по ключевому слову «voicewarmup».
Лог-файлы появляются во временной папке пользователя, которая обычно находится по пути C:Usersимя_профиляAppDataLocalTemp. Открыв лог, я увидел следующую ошибку:
Поискав по коду ошибки в Интернете, и не нашедши никаких способов решения проблемы, я решил подумать логически.
Что означает ошибка 0x80040154? Поискав в поисковике, и воспользовавшись утилитой Error Lookup, я определил, что ошибка означает «Класс не зарегистрирован».
Обычно такая ошибка появляется, когда вы запрашиваете у системы создать COM-объект, который не был должным образом зарегистрирован в реестре. Но как определить какой именно объект не зарегистрирован?
Перед началом отладки необходимо загрузить отладочные символы для распознавания имен системных функций и переменных. Эти символы являются довольно полезной вещью не только для поиска ошибок, но также и для исследования работы Windows в целом.
Промокоды на Займер на скидки
Займы для физических лиц под низкий процент
- Сумма: от 2 000 до 30 000 рублей
- Срок: от 7 до 30 дней
- Первый заём для новых клиентов — 0%, повторный — скидка 500 руб
Для установки точек прерывания на эти функции вводим в командной строке отладчика:
Bp ole32!CoCreateInstance
Bp ole32!CoCreateInstanceEx
Bp ole32!CoGetClassObject
Если точки останова у вас не ставятся, значит вы неправильно настроили символы.
После запуска приложения (F5), срабатывает точка останова на Ole32!CoCreateInstance. Если точка останова не срабатывает, а выпадает окно с параметрами Wndows Installer, то вы неправильно указали параметры командной строки для запуска.
Как без ошибок синхронизировать 1С:ЗуП 3.1 и 1С:Бухгалтерия 3.0?
Давайте теперь посмотрим, из какого же места кода вызывается создание нашего объекта, для этого мы можем нажать Debug->Step Out (Shift+F11). Мне пришлось нажать указанную комбинацию дважды, для того чтобы выйти в исходную вызывающую функцию.
После нахождения функции CreateMsiServerProxy, находим знакомые строки кода в ней:
Ошибка «Класс не зарегистрирован» (0x80040154) в Windows 10: как избавиться
Решение:
1. поставить драйверы АТОЛ такой же разрядности что и платформа 1С
2. скопировать dll, в каталог платформы /bin
3. иногда нужно запустить 1с от имени администратора
Ошибка -2147221005(0x800401F3): Недопустимая строка с указанием класса — Настройка 1С
Способы самостоятельного решения OLE ошибки «класс не зарегистрирован» с кодом 0x80040154 в операционной системе Windows 7, 8 и 10
Каждый компьютер не застрахован от непредвиденных сбоев. Главной задачей пользователя ПК, попавшего в непредвиденную ситуацию — правильно определить и грамотно подойти к устранению эксцесса.
Наиболее часто встречающийся случай — ошибка «Класс не зарегистрирован» при открытии JPG, а также других фотографий и изображений.
Чаще всего проблема бывает вызвана неправильным удалением сторонних программ для просмотра фото, сбоями параметров приложений по умолчанию Windows 10 и подобными, однако решается это в большинстве случаев очень просто.
По завершении проверьте, открываются ли файлы изображений теперь. Если открываются, но вам требуется, чтобы с JPG, PNG и иными фото работала сторонняя программа, попробуйте удалить ее через Панель управления — Программы и компоненты, а затем установить заново и назначить используемой по умолчанию.
Примечание: еще один вариант этого же способа: нажать правой кнопкой мыши по файлу изображения, выбрать пункт «Открыть с помощью» — «Выбрать другое приложение», указать работающую программу для просмотра и о.
Если ошибка возникает просто при запуске приложения «Фотографии» Windows 10, то попробуйте способ с перерегистрацией приложений в PowerShell из статьи Не работают приложения Windows 10.
V83.COMConnector — класс не зарегистрирован
Есть ЗУП 3 предпоследнего билда на платформе 8.3.10.2772 .
Возникла проблема в выгрузке данных в Бухию.
Если платформу запускать с правами админа Windows — выгрузка работает исправно.
Если платформу запускать с правами обычного пользователя WIndows — выгрузка вываливается с ошибкой:
С чем может быть проблема? Как лечить?
читатель
Дата регистрации: 19.07.2010
Сообщений: 240
25.05.2018 16:45
Оказалось, что у пользователя в HKCU/Software/Classes был переопределён класс. Видимо, кто-то когда-то этот костыль сделал. Вынес этот класс, всё заработало.
Показывать по 10 20 40 сообщений
Читают тему:
Мероприятия
Предложения партнеров
- Где купить СОФТ
- Вакансии фирм-партнеров «1С»
Обучение пользователей продуктов 1С
- Центры Сертифицированного Обучения
- Интернет курсы обучения «1С»
- Самоучители
- Учебный центр № 1
- Учебный центр № 3
- Сертификация по «1С:Профессионал»
- Организация обучения под заказ
- Книги по 1С:Предприятию
Другие сайты 1С
- WWW.1С.ru
- 1С:Предприятие 8
- 1С Отраслевые решения
- Образовательные программы
- 1С:Линк
- 1С:Консалтинг
- 1С:Дистрибьюция
- 1С для торговли
- 1С-Онлайн
- 1С Интерес
- 1С:Образование
- 1С:Торговая площадка
- 1C:Игры
- 1Софт
- ИТС.1C.ru
При использовании материалов активная прямая гиперссылка на перепечатанный материал обязательна.
Редакция БУХ.1С не несет ответственности за мнения и информацию, опубликованную в комментариях к материалам.
Редакция уважает мнение авторов, но не всегда разделяет его.
Дизайн сайта
Ошибка при вызове конструктора (COMOбъект) класс не зарегистрирован
похоже, что программа или процесс, который вы пытаетесь инициализировать, не установлен на вашем компьютере, имеет поврежденную установку или должен быть зарегистрирован.
либо установите его, восстановите (через программы добавления/удаления), либо зарегистрируйте (через Regsvr32.исполняемый.)
вы не предоставили достаточно информации для нас, чтобы помочь вам больше, чем этот.
35 автор: Jay Riggs
вам нужно убедиться, что все ваши сборки компилируются для правильной архитектуры. Попробуйте изменить архитектуру x86, если переустановка com-компонента не работает.
50 автор: Andy Fiedler
также обратите внимание, что контекст класса при инициализации может создать это исключение. Если у вас есть объект, который закодирован как INPROC_SERVER, но вы пытаетесь CoCreateInstance как CLSCTX_LOCAL_SERVER, вы также получите эту ошибку.
необходимо убедиться, что объект зарегистрирован и CoCreateInstance создает экземпляр с правильным контекстом класса.
9 автор: Andrew Keith
Если в веб-приложении IIS используются 64-разрядные компоненты COM, убедитесь, что пул приложений настроен на запрещение 32-разрядных приложений (включить 32-разрядные приложения: false дополнительные параметры)
9 автор: Matsen75
моя проблема и решение
У меня есть 32-битная сторонняя dll, которую я установил в машине 2008 R2, которая является 64-битной.
У меня есть служба wcf, созданная в .net 4.5 framework, которая вызывает 32-разрядную стороннюю dll для процесса. Теперь у меня есть свойство build, установленное для целевого «любого» процессора и развернутого на 64-битной машине.
когда я попытался вызвать службу wcf, получил ошибку » 80040154 класс не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG»
теперь я использовал ProcMon.exe для отслеживания проблемы реестра com и определил, что процесс ищет запись реестра в HKLMCLSID и HKCRCLSID, где нет записи.
известно, что Microsoft не будет зарегистрировать 32-битный com-компоненты на путиидентификатор CLSID реестра HKLM, раздел hkcr и CLSIDв 64-разрядной машине, а он помещает запись в HKLMWow6432NodeCLSID и разделе hkcrWow6432Nodeидентификатор CLSID пути.
теперь конфликт является 64-битным процессом попытка вызвать 32-разрядный процесс в 64-разрядной машине, которая будет искать запись реестра в HKLMCLSID, HKCRCLSID. Решение заключается в том, что мы должны заставить 64-битный процесс посмотреть запись реестра на HKLMWow6432NodeCLSID и HKCRWow6432NodeCLSID.
Это может быть достигнуто путем настройки свойств проекта службы wcf для целевой машины » X86 «вместо » любой».
после развертывания версии X86 на сервере 2008 R2 возникла проблема «Система.BadImageFormatException: не удалось загрузить файл или сборку»
решение этого badimageformatexception устанавливает «Enable32bitApplications» в «True» в свойствах IIS Apppool для правильного apppool.
Я получил его для работы, включив 32-битные приложения в расширенных настройках пула приложений. Щелкните правой кнопкой мыши пул приложений и выберите Дополнительные настройки — включить 32-разрядные приложения. Это может кому-то помочь.
путем регистрации класса ( в частности, его CLSID) — см., например,здесь.
3 автор: Alex Martelli
my platform является x64
the Dll library(sdk) и redistributable package является x64
- в обозревателе решений navigate to your project
- открыть Properties
- change the Platform target from AnyCPU to x64
2 автор: Basheer AL-MOMANI
способ, которым я решил эту проблему, был зарегистрировать COM via regsvr32 .
убедитесь, что COM, который вы вызываете, зарегистрирован.
мое приложение использовало xceedcry.dll и я не регистрировал его. Как только я зарегистрировал его, приложение сработало нормально.
для меня мне пришлось создать 64-битную конфигурацию сборки.
Я столкнулся с этой проблемой, вызвав сборку .Net из клиента C++ через COM. Оказывается, одна из сборок, от которой зависела сборка .Net, не найдена. Некоторое время я боролся, пытаясь понять, что не так с 1-й сборкой, но на самом деле это была одна из зависимостей 1-й сборки. Я получил две разные ошибки при вызове CoCreateInstance () из клиента C++. Первый был: REGDB_E_CLASSNOTREG класс не зарегистрирован И вторая попытка было: 0x80131040 : определение манифеста сборки расположены не соответствует ссылке на сборку.
поэтому проверьте, что ссылки вашей сборки присутствуют. Я обнаружил это, просмотрев 1-ю сборку с помощью dotPeek и заметив, что одна из его ссылок отсутствует. Размещение правильной версии зависимости в папке разрешило обе ошибки.
Я компилировал таргетинг моего приложения любой CPU и главная проблема оказалась в том, что adobe reader был установлен старше v10.x нужно обновлениеv11.x, это способ, как я могу решить эту проблему.
автор: Anjan Kant
моим решением было изменить « Включить 32-Разрядные Приложения » True в расширенных настройках относительного пула приложений в IIS.
я столкнулся с такой же проблемой через COM-класс, т. е. класс не зарегистрирован исключение во время выполнения. Для меня я смог решить, перейдя в приложение.конфигурационный файл и измените элементы «startup» и «supportedRuntime» на что-то вроде:
вы можете прочитать больше о деталях здесь http://stackoverflow.com/questions/1604663/
и здесь https://msdn.microsoft.com/en-us/library/w4atty68 (v=против 110).aspx
I следует отметить, что я запускаю Visual Studio 2017. Целевой процессор = x86 Внедрить тип взаимодействия = true (в окне свойств)
автор: Joseph Mawer
в моем случае класс был зарегистрирован правильно и встроен в любой CPU / 64 бит режим.
но включить 32-разрядные приложения свойства пул приложений IIS приложения, которое использует класс, было установлено в True.
класс не найден из-за несоответствия архитектуры между конфигурацией пула приложений и фактическим зарегистрированным классом.
задание включить 32-разрядные приложения to False Исправлена проблема.
автор: Bhupinderjit Dhanoa
У меня была такая же проблема с использованием MapWinGis. Я нашел решение, работая над visual studio 2015 windows forms proyect, просто щелкните правой кнопкой мыши на proyect — > properties — > Build, установите конфигурацию для всех конфигураций и в conbobox «platform target» установите его на x64.
перейдите в каталог .Net framework и зарегистрируйте их соответствующую dll с помощью команду regsvr32.exe путь dll пробел.
автор: Muhammad Saeed
Я столкнулся с той же проблемой. После некоторых исследований я нашел исправление для меня, и это может быть полезно. Проблема связана не только с повторной установкой по моему наблюдению, она также зависит от разрешений доступа.
Шаг 1: ремонт конкретного COM-объекта.
Шаг 2: службы компонентов > компьютеры > Мой компьютер > Конфигурация DCOM > выберите COM-объект > щелкните правой кнопкой мыши > свойства > вкладка Безопасность > права доступа > выберите Настроить > нажмите Изменить > выберите IIS_USER (если не существует создать с полными правами) и дать полный доступ и нажмите кнопку ОК.
перейдите на вкладку Identity > вы можете выбрать «интерактивный пользователь» или «этот пользователь» > нажмите Apply и OK. Если вы выберете «этот пользователь», мы должны предоставить привилегированного администратора этому серверу
Шаг 3: Откройте Диспетчер IIS > перезапустите пулы приложений.
Примечание: при необходимости перезагрузите сервер
автор: Pavan Kumar Vempati
здесь найдите решение, запустите mmc -32 tool (не dcomcfg)
в 64-битной системе с 32-битным офисом попробуйте следующее:
Start Run mmc -32 File Add Remove Snap-in Component Services Add OK Console Root Component Services Computers My Computer DCOM Config Microsoft Excel Application
-1 автор: Martín Martínez
Если фоновый процесс COM-соединения завершается с ошибкой:
: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Invalid class string
Нужно зарегистрировать библиотеку ComConnector comcntr.dll из каталога программы.
. Перед этим нужно отключить службу агента сервера 1С:Предприятия и все программы, использующие эту DLL .
В 32-битной версии сервера проблема решилась бы командой: regsvr32 «C:Program Files (x86)1cv88.3.5.1119incomcntr.dll»
При удачном выполнении Вы увидите:
Если команда регистрации не помогла, то нужно предварительно удалить регистрацию библиотеки comcntr.dll, запустив ту же команду вызова regsvr32 с ключом /u
Если и это не помогло, попробуйте переустановить платформу 1С в режиме Исправить и отметьте COM соединение
Блог на коленке. IT и прочее
83.COMConnector класс не зарегистрирован
Случается, что при попытке подключения к информационной базе через com-соединение возникает ошибка при вызове конструктора (COMОбъект): «Класс не зарегистрирован» или «Недопустимая строка с указанием класса».
Первым делом необходимо зарегистрировать DLL в системе
При установке популярной программы бухгалтерского учёта «1С» (версии 8.3) или обновления программы с версии 8.2 на 8.3, а также запуска какой-либо соответствующей процедуры, юзер может получить сообщение «Ошибка 2147221164 0x80040154 класс не зарегистрирован», вызванное отсутствием регистрации класса. Данная ошибка может быть вызвана несоответствием версий 1С на сервере и клиентском ПК, а также отсутствием регистрации необходимого класса COMConnector (dll-библиотека comcntr.dll) в ОС Виндовс. В данном материале я расскажу о сути указанной дисфункции, а также поясню, как от неё избавиться.
Стандартное сообщение о возникшей дисфункции
Особенности возникшей дисфункции
Разбираемая мной ошибка 2147221164 0x80040154 в 1C обычно связана с соединением баз данных по COM-объекту, и может иметь несколько причин:
- Несовпадение конфигурации 1С на сервере и локальном ПК (к примеру, на сервере используется версия 8.3, а на локальном ПК – версия 8.1);
- Невозможность прямого обращения 64-битной 1С к 32-битному файлу comcntr.dll;
- В ОС Виндовс не зарегистрирован вышеупомянутый файл comcntr.dll.
Разбираем устранение проблемы в 1C
Разберёмся со способами решения возникшей проблемы. Их два.
Способ №1. Регистрируем необходимые библиотеки
Если на ПК 32-битная ОС, то будет необходимо запустить командную строку с админ. правами, и там набрать:
Вместо XXXXX будет нужно ввести номер вашей версии 1С, к примеру, это может быть 8.3.10.2252 или иная (пройдите по указанному пути, и просмотрите номер установленной у вас версии). После этого регистрация упомянутого dll будет завершена, и «Ошибка 2147221164 0x80040154 класс не зарегистрирован» должна исчезнуть.
Уведомление об успешной регистрации dll
Если на ПК 64-битная ОС, то данная строка должна выглядеть так:
Где ХХХХХ – номер вашей версии 1С
Способ №2. Создаём компоненты для исправления ошибки 2147221164 0x80040154
- Запустите консоль «Службы компонентов» (перейдите в «Панель управления», затем в «Администрирование», и здесь кликните на «Службы компонентов»);Здесь выберите «Мой компьютер» («Службы компонентов», затем «Компьютеры», и «Мой компьютер»). Наведите курсор на «Приложения COM+», нажмите на правую клавишу мыши, выберите «Создать» — «Приложение»;
Заключение
Исправление проблем с незарегистрированными классами в 1С обычно решается с помощью двух способов, обозначенных мной выше. Наибольшую эффективность показал второй из перечисленных способов, потому рекомендую воспользоваться алгоритмом его реализации для исправления ошибки 2147221164 0x80040154 на вашем PC.
Первая статья в новом 2021 году будет посвящена программе 1С. Это связанна с тем что данное ПО очень распространено. Так как альтернативы пока что нет. К типовым конфигурация претензий практически нет, в них не появляются ошибки, при обновлении, переносе и других манипуляциях. Что нельзя сказать о самопысных конфигурациях или измененных типовых.
Как правило занимаются этим программисты не высокого уровня, так как час разработки профессионала стоить достаточно дорого. В результате конечный пользователь получаем огромные проблемы которые возникают после каких либо манипуляций либо с базой или клиентами. Сегодня поговорим об одной интересной ошибки которая появляется при попытке распечатать какой либо документ «Ошибка при вызове конструктора (COMOбъект) класс не зарегистрирован».
Использование COMOбъектов в 1С это прошлый век, сейчас уже ни кто так не пишет. Раньше с его помощью реализовали печать документов. Они выгружались в OpenLibre Office и от туда уже печатались.
Появиться такая ошибка может после
1 Обновления платформы
2 Переустановки ОС и 1С
3 Обновление конфигурации
4 Проблем с офисными пакетами
Это самые распространенные.
У меня есть еще несколько статей в которых я рассказывал как можно исправить различные ошибки 1С рекомендую прочитать.
Ошибка при отправке запроса на сервер
При появлении ошибки в 1С нет кнопки подробнее
Как настроить сортировку в отчете
Как сохранить обработку (как внешнюю)
Как указать версию платформы
Как посмотреть изменения в конфигурации
Три способа избавиться от ошибки «Ошибка при вызове конструктора…»
И так после каких либо манипуляций с 1С у вас стала появляться ошибка.
Ошибка при вызове конструктора (COMOбъект): -2147221164(0x80040154) класс не зарегистрирован
Первый способ
Самое простое это переустановить офисные пакеты OpenLibre, так же как вариант если у вас стоял Open поставить Libre и на оборот. Это нужно для того чтобы обновить специальный компонент.
Второй способ
Попробовать зарегистрировать самостоятельно, для этого запускаем командную строку от имени администратора, переходим в каталог введя команду.
regsvr32 «C:Program Files (x86)1cv88.3.16.18.14comcntr.dll»
Кстати данную манипуляцию нужно проводить на сервере.
Третий способ
Установить 32 битную версию клиента 1С, можно даже поверх х64. В итоге у вас появиться два ярлычка для запуска, один для х32 второй х64.
Версию можно указать и в ярлыке запуска 1С.
Можно еще попробовать самостоятельно создать COM + , но лично из своего опыта могу сказать это не помогает. Самый действенный вариант это установка х32 клиента. Так как компонента которая необходимо работает только с х32.
Так же проблема может быть непосредственно в самом коде.
- https://askdev.ru/q/kak-reshit-klass-isklyucheniya-com-ne-zaregistrirovan-isklyuchenie-iz-hresult-0x80040154-regdb-e-classnotreg-37801/
- https://window-10.ru/1s-klass-ne-zaregistrirovan-com/
- https://sibsisadmin.ru/oshibka-pri-vyzove-konstruktora-1c/
Источник: besporovod.ru