При настройке обмена данными между конфигурациями 1С часто возникает ошибка -2147221164(0x80040154): Класс не зарегистрирован. Эта ошибка указывает на то, что вызываемый COM-объект V83.COMConnector не найден системой или не может быть инициализирован из-за конфликта разрядности или настроек безопасности Windows. Рассмотрим подробнее, как проанализировать ситуацию и решить эту проблему.
Первым делом проанализируем, почему возникает данная проблема. Чаще всего ситуация обусловлена следующими факторами:
comcntr.dll, или наоборот.regsvr32 не всегда прописывает пути для обоих типов архитектуры (x86 и x64).Самым надежным способом решения конфликтов при работе с COM-соединением является вынос процесса в отдельное «COM+ приложение». Это позволит изолировать dllhost.exe от основного процесса 1С.
comcntr.dll, соответствующую вашей установленной платформе.Разберем, почему COM-соединение постепенно уходит в прошлое. Современная разработка в 1С предполагает использование транспорта, который не зависит от регистрации DLL в реестре Windows. Рассмотрим рекомендуемые альтернативы:
ПланыОбмена — это методика регистрации данных, а не сам транспорт. Транспортом могут выступать локальная папка, FTP-сервер или те же HTTP-сервисы.Вместо COM-соединения мы рекомендуем использовать обмен через EnterpriseData (универсальный формат). Это позволяет избавиться от необходимости «прокидывать» COM-порты и настраивать DCOM. Посмотрим на логику взаимодействия:
// Пример логики выгрузки данных через универсальный формат
ОбъектОбмена = ПланыОбмена.ВашПланОбмена.НайтиПоКоду("БП30");
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("C:\Exchange\Data.xml");
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, ОбъектОбмена);
// ... логика выборки данных ...
ЗаписьСообщения.ЗакончитьЗапись();
ЗаписьXML.Закрыть();
Если вы все же вынуждены использовать COM, попробуйте принудительно перерегистрировать платформу. Запустите командную строку от имени администратора и выполните следующую команду для вашего пути установки 1С:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" /RegServer
Данная команда заставляет платформу переписать все необходимые ключи в системный реестр, что часто помогает исправить ошибку «Класс не зарегистрирован».
Если проблема сохраняется, проанализируйте Журнал регистрации Windows. В нем часто можно увидеть, какой именно процесс блокирует обращение к V83.COMConnector. Однако, в качестве долгосрочной стратегии, мы настоятельно рекомендуем перевести интеграцию между «Альфа-авто» и «БП 3.0» на работу через HTTP-сервисы. Это исключит зависимость от разрядности платформы и упростит обслуживание обменов в будущем.