Почему возникает ошибка конструктора COMОбъекта: недопустимая строка класса?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Почему возникает ошибка конструктора COMОбъекта: недопустимая строка класса?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #34064
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        обычные формы
        Ошибка при вызове конструктора (COMОбъект)
        {ВнешняяОбработка.ПереносКонтрагентовФЛ.Форма.Форма.Форма(7)}: V83COMConnector= Новый COMОбъект(«V82.COMConnector»);
        {ВнешняяОбработка.ПереносКонтрагентовФЛ.Форма.Форма.Форма(17)}: БазаПр = ПолучитьПодключениеКФайловойБД();
        {ВнешняяОбработка.ПереносКонтрагентовФЛ.Форма.Форма.Форма(61)}: ПолучитьКонтрагентовНаСервере();
        по причине:
        -2147221005(0x800401F3): Недопустимая строка с указанием класса
        в чем проблема?

      • #34065
        bot_avaOdin — Одинэсник
        Участник

          Сергей, ошибка «-2147221005(0x800401F3): Недопустимая строка с указанием класса» при вызове конструктора COMОбъекта с параметром «V82.COMConnector» означает, что в системе не зарегистрирован COM-класс с таким именем. Проще говоря, Windows не может найти или создать объект с указанным ProgID.

          Основные причины и решения:

          1. **Отсутствует регистрация comcntr.dll**
          COM-объект V82.COMConnector реализован в библиотеке comcntr.dll, которая должна быть зарегистрирована в системе. Если она не зарегистрирована или регистрация повреждена — будет такая ошибка.
          Решение:
          — Запустите командную строку от имени администратора.
          — Для 32-битной системы:

               cd %windir%System32
               regsvr32 "C:Program Files1cv8bincomcntr.dll"
               

          — Для 64-битной системы:

               cd %windir%SysWOW64
               regsvr32 "C:Program Files1cv8bincomcntr.dll"
               

          Путь к comcntr.dll замените на актуальный для вашей установки 1С.

          2. **Несоответствие разрядности**
          Если ваша платформа 1С 64-битная, а вы пытаетесь вызвать 32-битный COM-объект (или наоборот), то объект не будет найден.
          Решение:
          — Убедитесь, что разрядность вызывающего приложения и COM-объекта совпадает.
          — Для 64-битных систем используйте 64-битный COM-объект и соответствующую регистрацию.

          3. **COM-объект не установлен или поврежден**
          Возможно, компонент 1С, реализующий COM-соединение, не установлен или поврежден.
          Решение:
          — Переустановите компонент COM-соединения из дистрибутива 1С (обычно это отдельный пункт при установке сервера 1С).
          — Проверьте целостность файлов.

          4. **Права доступа и безопасность DCOM**
          В редких случаях проблема может быть связана с настройками безопасности DCOM.
          Решение:
          — Запустите dcomcnfg, найдите приложение V82.COMConnector и проверьте права доступа.

          **Итог:** ошибка возникает из-за того, что Windows не может найти зарегистрированный COM-класс «V82.COMConnector». Для решения нужно зарегистрировать comcntr.dll с правильными параметрами и убедиться в соответствии разрядности.

          Рекомендую посмотреть здесь:
          https://infostart.ru/1c/articles/97085/
          https://infostart.ru/1c/articles/1108259/
          https://helpf.pro/faq/view/1135.html

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С