Синхронизация данных между конфигурациями 1С:Предприятие, такими как БГУ (Бухгалтерия государственного учреждения) и ЗКГУ (Зарплата и кадры государственного учреждения), часто настраивается через прямое подключение. Однако в процессе эксплуатации может возникнуть критическая ошибка, блокирующая обмен данными. Рассмотрим ситуацию, когда при проверке соединения система выдает сообщение: «Не удалось подключиться к приложению: Ошибка при вызове конструктора (COMObject) ... Недопустимая строка с указанием класса». Разберем по шагам, почему это происходит и как восстановить работоспособность обмена.
Ошибка с кодом -2147221005(0x800401F3) в операционной системе Windows означает, что запрашиваемый программный идентификатор (ProgID) не зарегистрирован в системном реестре. В контексте 1С это означает, что система пытается создать объект V83.COMConnector, но не находит соответствующих записей о том, какая библиотека (DLL) отвечает за этот класс или где она расположена.
Проанализируем основные факторы, которые могли привести к этой проблеме, даже если «платформу не меняли»:
Это классическое и наиболее эффективное решение. Нам необходимо вручную зарегистрировать библиотеку comcntr.dll, которая входит в состав платформы 1С:Предприятие. Выполним следующие действия:
Во-первых, выясним точную версию платформы, которая используется в данный момент. Путь к библиотеке обычно выглядит так: C:\Program Files\1cv8\8.X.X.XXXX\bin\comcntr.dll.
Во-вторых, запустим командную строку (cmd) обязательно от имени администратора. Рассмотрим пример команды для регистрации:
regsvr32 "C:\Program Files\1cv8\8.3.22.1709\bin\comcntr.dll"
Если ваша система 64-битная, а вы используете 32-битную платформу 1С, путь может быть в папке Program Files (x86). Важно регистрировать библиотеку именно той разрядности, под которой работает сервер приложений 1С.
После выполнения команды должно появиться сообщение: «Успешное выполнение DllRegisterServer в ...comcntr.dll». Попробуем после этого снова нажать кнопку «Проверить соединение» в настройках синхронизации.
Бывают случаи, когда простая регистрация через regsvr32 не помогает, особенно на серверных операционных системах, где действуют строгие политики безопасности. Проанализируем ситуацию: если сервер 1С запущен от имени специальной доменной учетной записи, у нее может не быть прав на инициализацию COM-объекта напрямую. В этом случае создадим отдельное приложение в Component Services.
Разберем процесс по шагам:
1C_COM_Connector) и установим переключатель в положение «Серверное приложение».comcntr.dll.Этот метод позволяет жестко задать права доступа и обеспечить стабильную работу V83.COMConnector независимо от текущих ограничений безопасности ОС.
Если в процессе развития ИТ-инфраструктуры часть баз была перенесена на сервер под управлением Linux, необходимо помнить: технология COM является проприетарной технологией Microsoft Windows. На ОС Linux прямое COM-соединение работать не будет.
Выясним причину: если инициатором обмена выступает сервер, работающий на Linux, он не сможет создать объект Новый COMObject. В такой ситуации регистрация библиотек на клиентских машинах не даст результата. Единственным выходом будет смена способа транспорта данных.
Рассмотрим более современный и надежный способ синхронизации, который рекомендует фирма «1С» — использование Internet-соединения (Web-сервисы). Этот метод лишен недостатков COM-соединения, так как не зависит от регистрации DLL и разрядности систем.
Проанализируем, как настроить такой обмен:
Такой подход позволит избежать ошибок V83.COMConnector в будущем и сделает синхронизацию более стабильной, особенно при обновлениях платформы.
Мы выяснили, что ошибка «Недопустимая строка с указанием класса» чаще всего лечится повторной регистрацией библиотеки comcntr.dll с правами администратора. Однако, если проблема повторяется, стоит обратить внимание на настройки DCOM или рассмотреть переход на обмен через веб-сервисы, что является наиболее перспективным решением для современных версий 1С:Предприятие 8.3.