Как устранить ошибку Invalid class string при COM-соединении после обновления платформы 1С?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При обновлении платформы 1С:Предприятие часто перестает работать межбазовый обмен через COM-соединение (COMConnector). При попытке подключиться к другой информационной базе возникает ошибка с сообщением Invalid class string (недопустимая строка класса). Разберем причины возникновения этой ошибки и пошаговые способы восстановления работоспособности интеграции.

Проанализируем ситуацию: для выполнения прямого подключения к базе 1С из внешнего скрипта, другой базы или стороннего приложения используется внешняя библиотека comcntr.dll. Во время инсталляции нового релиза платформы пути к зарегистрированным COM-классам могут перезаписаться некорректно, либо вовсе остаться привязанными к каталогу старой версии, что и приводит к невозможности инициализировать объект V83.COMConnector.

Причина 1: Некорректная регистрация comcntr.dll в операционной системе

Выясним причину: если системная утилита regsvr32 была вызвана без прав администратора или для неверной разрядности, в реестре Windows сохраняются устаревшие или поврежденные параметры ProgID.

Рассмотрим по шагам, как правильно зарегистрировать библиотеку вручную:

  1. Запустим командную строку (cmd) строго от имени Администратора.
  2. Определим разрядность установленной платформы и выберем соответствующую команду для регистрации.
  3. Для 64-битной платформы 1С выполним команду:
    
    %SystemRoot%\System32\regsvr32.exe "C:\Program Files\1cv8\8.3.XX.YYYY\bin\comcntr.dll"
    
  4. Для 32-битной платформы 1С выполним команду:
    
    %SystemRoot%\SysWOW64\regsvr32.exe "C:\Program Files (x86)\1cv8\8.3.XX.YYYY\bin\comcntr.dll"
    

Обратим внимание: вместо 8.3.XX.YYYY необходимо указать точный номер установленного релиза платформы 1С.

Причина 2: Несоответствие разрядности процессов и настройка COM+ приложения

Проанализируем частую проблему взаимодействия 32-битных и 64-битных процессов. Если приложение-клиент (например, 32-битная платформа 1С) пытается вызвать 64-битную библиотеку comcntr.dll напрямую (или наоборот), Windows блокирует вызов с ошибкой отсутствия класса. Для обеспечения взаимодействия между процессами разной разрядности требуется настроить серверное приложение в Службах компонентов (COM+ обертку).

Разберем процесс настройки и обновления COM+ приложения по шагам:

  1. Нажмем сочетание клавиш Win + R, введем команду dcomcnfg и нажмем Enter.
  2. В дереве оснастки перейдем по пути: Службы компонентов -> Компьютеры -> Мой компьютер -> Приложения COM+.
  3. Найдем существующее приложение 1С (обычно с именем V83COMConnector или 1CV83_COMConnector).
  4. Раскроем папку Компоненты внутри приложения, удалим старый компонент и добавим новый через контекстное меню: Создать -> Компонент.
  5. В мастере выберем вариант Установка новых компонентов и укажем путь к comcntr.dll из папки bin установленной версии платформы.
  6. Если приложение создается с нуля, при создании выберем тип Серверное приложение (Server Application).
  7. Откроем свойства созданного приложения COM+, перейдем на вкладку Удостоверение (Identity) и укажем учетную запись Windows (пользователя с правами запуска служб 1С), под которой будет функционировать процесс.
  8. Перейдем на вкладку Безопасность и убедимся, что включены необходимые права доступа и запуска для пользователей пула 1С.
  9. Перезапустим приложение COM+ через контекстное меню.

Альтернативные способы интеграции без использования COM-соединения

Рассмотрим долгосрочные решения. Механизм COMConnector имеет существенные архитектурные ограничения: жесткая привязка к операционной системе Windows, зависимость от разрядности и необходимость перерегистрации библиотек при каждом обновлении платформы. Чтобы исключить подобные сбои в будущем, рекомендуется переводить межбазовый обмен на современные протоколы:

  1. HTTP-сервисы и REST API (OData): платформонезависимый обмен, работающий по протоколу HTTP/HTTPS без использования сторонних бинарных библиотек.
  2. Web-сервисы (SOAP): вызов предопределенных методов конфигурации с передачей данных через структурированные XDTO-пакеты.
  3. Обмен через формат EnterpriseData: стандартный механизм синхронизации данных через сетевые каталоги, FTP или веб-сервисы, не требующий прямого подключения к базе-источнику через COM.
← На главную