Многие пользователи 1С сталкиваются с проблемой, когда синхронизация данных или другие операции, использующие COM-соединение, успешно выполняются под учетной записью администратора Windows, но выдают ошибку для обычных пользователей. Типичная ошибка при этом — "-2147221005(0x800401F3): Недопустимая строка с указанием класса" при попытке создания объекта COMObject("V83.COMConnector"). Рассмотрим эту проблему подробнее и выясним причины ее возникновения, а также предложим несколько проверенных решений.
Основная причина заключается в том, что обычным пользователям Windows не хватает прав для регистрации, доступа или активации COM-объектов, необходимых для работы 1С. В частности, это касается компонента comcntr.dll, который отвечает за COM-соединение с платформой 1С. Несмотря на то, что компонент может быть зарегистрирован глобально в системе, для его корректной работы из-под обычного пользователя требуются дополнительные настройки безопасности в операционной системе. Для быстрой проверки состояния comcntr.dll можно использовать обработку для диагностики COM-соединения и параметров регистрации comcntr.dll в реестре.
Это наиболее полное и рекомендуемое решение, которое обеспечивает гранулярный контроль над разрешениями для COM-объектов. Нам потребуется настроить параметры безопасности DCOM для всего компьютера и для конкретного приложения 1С (V83.COMConnector).
Для этого можно использовать один из следующих способов:
Win+R, ввести dcomcnfg и нажать Enter.В дереве консоли разверните "Службы компонентов" -> "Компьютеры" -> "Мой компьютер". Щелкните правой кнопкой мыши по "Мой компьютер" и выберите "Свойства". Перейдите на вкладку "Безопасность COM".
Здесь нам необходимо отредактировать два раздела:
Теперь нам нужно найти приложение COM+, соответствующее нашей версии платформы 1С. В дереве консоли перейдите в "Службы компонентов" -> "Компьютеры" -> "Мой компьютер" -> "Приложения COM+". Обычно для 1С это будет что-то вроде V83.COMConnector.
Если такого приложения нет, его необходимо создать:
V83.COMConnector. Выберите переключатель "Серверное приложение".comcntr.dll вашей 32-битной платформы, например, C:\Program Files (x86)\1cv8\8.3.ХХ.ХХХХ\bin\comcntr.dll.После того как приложение V83.COMConnector (или аналогичное) создано и содержит компонент, откроем его свойства (правой кнопкой мыши по приложению V83.COMConnector) и перейдем на вкладку "Безопасность".
Здесь нам нужно настроить следующие параметры:
В некоторых случаях, особенно при проблемах с лицензированием через COM-соединение, может потребоваться изменить параметр в файле 1CEStart.cfg. Этот файл обычно находится в профиле пользователя (например, C:\Users\<ИмяПользователя>\AppData\Roaming\1C\1CEStart\1CEStart.cfg или C:\Documents and Settings\<ИмяПользователя>\Application Data\1C\1CEStart\1CEStart.cfg для старых ОС).
Найдите или добавьте параметр UseHWLicenses и установите его значение в 1:
UseHWLicenses=1
Это указывает платформе на использование аппаратных лицензий (если они есть), что может повлиять на процесс инициализации COM-объекта.
Этот метод является эффективным дополнением к настройкам DCOM или может служить быстрым решением, когда проблема связана с отсутствием пользовательских записей в реестре.
Win+R, вводим cmd, затем нажимаем Ctrl+Shift+Enter или правой кнопкой мыши по ярлыку "Командная строка" и выбираем "Запуск от имени администратора". Важно, чтобы CMD был запущен именно из сессии обычного пользователя, но с правами администратора.regsvr32 для регистрации компонента. Убедитесь, что вы указываете путь к 32-битной версии comcntr.dll, так как платформа автора 32-битная, и базы файловые (чаще всего 32-битная):
regsvr32 "C:\Program Files (x86)\1cv8\8.3.ХХ.ХХХХ\bin\comcntr.dll"
Где 8.3.ХХ.ХХХХ — это полный номер вашей платформы 1С.
Важно: Этот метод создает необходимые записи в ветке реестра HKEY_CURRENT_USER для данного пользователя, которые могут отсутствовать при глобальной регистрации из-под другой учетной записи.
В некоторых случаях, проблема может быть связана с недостаточными правами доступа к определенным веткам системного реестра Windows, где хранятся данные о COM-объектах.
Win+R, введите regedit и нажмите Enter.HKEY_CLASSES_ROOT\WOW6432Node\CLSID.HKEY_CLASSES_ROOT\CLSID.OleView.exe (входит в состав Windows SDK) или по имени программы в "Службах компонентов". В списке CLSID найдите тот, который относится к V83.COMConnector.comcntr.dll зарегистрирована из 32-битного каталога Program Files (x86). COM-объекты должны соответствовать разрядности вызывающего приложения.USR1CV8), в группу "Локальные администраторы" может решить проблему. Это следует рассматривать как временное или диагностическое решение из соображений безопасности.Применение этих комплексных подходов к настройке прав DCOM и регистрации компонентов обычно помогает устранить проблемы с COM-соединением 1С для пользователей без прав администратора, обеспечивая стабильную работу синхронизации и других механизмов.