После проведения планового обновления конфигурации 1С:Зарплата и управление персоналом 3.1 или самой технологической платформы 1С:Предприятие системные администраторы часто сталкиваются с внезапной остановкой обмена данными. При попытке выполнить синхронизацию (как в ручном режиме, так и по расписанию) в журнале регистрации фиксируется критическая ошибка вида:
Не удалось подключиться к другой программе: {ОбщийМодуль.ОбщегоНазначенияКлиентСервер.Модуль(1093)}:
Ошибка при вызове конструктора (COMObject)
COMConnector = Новый COMObject(ИмяCOMСоединителя()); // "V83.COMConnector"
по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса
Эта ошибка означает, что операционная система Windows не может сопоставить программный идентификатор V83.COMConnector с зарегистрированной в реестре библиотекой comcntr.dll. Выясним причину этой неисправности и разберем по шагам все возможные способы её решения — от стандартной перерегистрации до настройки серверного суррогата COM+.
---
Прежде чем переходить к действиям, проанализируем ситуацию. Конфликт возникает из-за несовпадения разрядности процессов и рассинхронизации записей в системном реестре Windows. Вот ключевые причины:
8.3.18.XXXX), а старые пути в реестре продолжают ссылаться на несуществующую папку старого релиза.---
Обычный запуск утилиты regsvr32 из стандартной командной строки часто не дает результата из-за ограничений прав доступа или путаницы с разрядностью. Рассмотрим правильный алгоритм перерегистрации для 32- и 64-битных систем.
Если вы столкнулись с проблемой на стороне 32-разрядного клиента или сервера, выполните следующие шаги:
cmd.
cd C:\Windows\SysWOW64
Затем последовательно выполните команды по отмене старой регистрации и созданию новой (замените путь на актуальную версию вашей платформы):
regsvr32 /u "C:\Program Files (x86)\1cv8\8.3.18.1300\bin\comcntr.dll"
regsvr32 "C:\Program Files (x86)\1cv8\8.3.18.1300\bin\comcntr.dll"
Если сервер приложений 1С:Предприятие работает в 64-разрядном режиме, операционной системе требуется именно 64-битная библиотека. Запустите стандартную командную строку (из папки System32) от имени администратора и выполните регистрацию из папки Program Files:
regsvr32 /u "C:\Program Files\1cv8\8.3.18.1300\bin\comcntr.dll"
regsvr32 "C:\Program Files\1cv8\8.3.18.1300\bin\comcntr.dll"
После успешного выполнения вы должны увидеть системное сообщение: «Успешное выполнение DllRegisterServer в...». Обязательно перезапустите службу сервера 1С:Предприятие, чтобы изменения вступили в силу.
---
Что делать, если база данных и сервер 1С имеют разную разрядность, или регистрация через командную строку по-прежнему выдает ошибку в фоновых заданиях? В этом случае рассмотрим создание изолированного приложения в Службах компонентов Windows. Это позволит запускать comcntr.dll в собственном суррогатном процессе DLLHOST.EXE.
Разберем этот процесс по шагам:
Win + R, введите команду dcomcnfg и нажмите Enter. Откроется окно «Службы компонентов».V83_COMConnector. В области «Способ активации» обязательно установите переключатель в положение «Серверное приложение». Нажмите «Далее».USR1CV8). Введите его пароль и подтвердите ввод.comcntr.dll из папки bin установленной платформы 1С актуального релиза. Нажмите «Далее» и завершите установку.Данный способ полностью изолирует работу COM-соединителя, исключая любые конфликты прав и разрядностей между клиентскими приложениями и сервером 1С.
---
Если ни один из способов не помог, проанализируем состояние системного реестра. Из-за частых обновлений в реестре могут остаться так называемые «хвосты» — ссылки на старые версии платформы, которые уже были физически удалены с диска компьютера.
Рассмотрим, как исправить пути вручную:
Win + R, введите regedit и запустите редактор реестра с правами администратора.Ctrl + F) для поиска ключа:
V83.COMConnector
Вам необходимо найти раздел, содержащий подраздел CLSID. Скопируйте строковое значение этого параметра (уникальный идентификатор класса, состоящий из букв и цифр в фигурных скобках).
Затем перейдите по пути:
HKEY_CLASSES_ROOT\CLSID\{ВАШ_СКОПИРОВАННЫЙ_ИДЕНТИФИКАТОР}\InprocServer32
Внутри папки InprocServer32 найдите строковый параметр (По умолчанию). В его значении должен быть прописан полный физический путь к библиотеке comcntr.dll. Убедитесь, что этот путь указывает на актуальный релиз работающей платформы (например, C:\Program Files\1cv8\8.3.18.1300\bin\comcntr.dll). Если путь ведет к старой удаленной папке, замените его вручную на корректный.
---
Не будем забывать о безопасности операционной системы. Если служба сервера 1С работает под учетной записью с ограниченными правами (например, USR1CV8), этот пользователь может банально не иметь прав на чтение каталога новой платформы 1С.
Для исправления ситуации выполним следующие действия:
C:\Program Files\1cv8\ (или C:\Program Files (x86)\1cv8\ для 32-разрядных систем).USR1CV8). Если ее там нет, нажмите «Добавить» и укажите её имя.После предоставления прав выполните перезапуск службы сервера приложений 1С:Предприятие через утилиту управления службами Windows.