Если фоновый процесс COM-соединения завершается с ошибкой:
<Обработка.ОбменДаннымиXML.МодульОбъекта(15947)>: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Invalid class string
Нужно зарегистрировать библиотеку ComConnector comcntr.dll из каталога программы.
. Перед этим нужно отключить службу агента сервера 1С:Предприятия и все программы, использующие эту DLL .
В 32-битной версии сервера проблема решилась бы командой: regsvr32 «C:Program Files (x86)1cv88.3.5.1119incomcntr.dll»
но в 64-битной версии команда будет примерно такой * : C:WindowsSysWOW64
egsvr32 «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-битная ОС, то будет необходимо запустить командную строку с админ. правами, и там набрать:
C:WindowsSystem32
egsvr32 «C:Program Files (x86)1cv8XXXXXincomcntr.dll»
Вместо XXXXX будет нужно ввести номер вашей версии 1С, к примеру, это может быть 8.3.10.2252 или иная (пройдите по указанному пути, и просмотрите номер установленной у вас версии). После этого регистрация упомянутого dll будет завершена, и «Ошибка 2147221164 0x80040154 класс не зарегистрирован» должна исчезнуть.
Уведомление об успешной регистрации dll
Если на ПК 64-битная ОС, то данная строка должна выглядеть так:
C:WindowsSysWOW64
egsvr32 «C:Program Files (x86)1cv8ХХХХХincomcntr.dll»
Где ХХХХХ – номер вашей версии 1С
Способ №2. Создаём компоненты для исправления ошибки 2147221164 0x80040154
- Запустите консоль «Службы компонентов» (перейдите в «Панель управления», затем в «Администрирование», и здесь кликните на «Службы компонентов»);
- Здесь выберите «Мой компьютер» («Службы компонентов», затем «Компьютеры», и «Мой компьютер»). Наведите курсор на «Приложения COM+», нажмите на правую клавишу мыши, выберите «Создать» — «Приложение»;
Заключение
Исправление проблем с незарегистрированными классами в 1С обычно решается с помощью двух способов, обозначенных мной выше. Наибольшую эффективность показал второй из перечисленных способов, потому рекомендую воспользоваться алгоритмом его реализации для исправления ошибки 2147221164 0x80040154 на вашем PC.