Как правило, сообщение возникает при фоновом обмене данными между системами или запуске синхронизации вручную. Что делать при появлении этой ошибки и куда смотреть.
Причина связана с незарегистрированными в системе компонентами — comcntr.dll, ошибками доступа (недостаточно прав).
Решение
1. Проверьте, что обмен запускается в сеансе учетной записи, имеющей достаточные права на уровне 1С и ОС Windows.
В частном случае, если служба Агента сервера 1С работает под технологической записью, а для обмена требуется доступ к файловой ИБ — добавьте NTFS-разрешения на каталог для этого пользователя (права «Изменение»).
2. Зарегистрируйте в системе компоненту comcntr.dll, выполнив операцию в командной строке от имени администратора:
regsvr32 “%ProgramFiles%\1cv8\8.3.xx.xxxx\bin\comcntr.dll”
Для x64-систем может потребоваться запуск с расположения %SystemRoot%\SysWOW64\, по умолчанию — %SystemRoot%\system32\
, где
- %ProgramFiles% — путь к папке программных файлов (отличается в зависимости от разрядности ОС/1С и вашего системного диска, например — «C:\Program Files» или «C:\Program Files (x86)»);
- 8.3.xx.xxxx — релиз вашей платформы.
Примеры
Ошибка регистрации comcntr.dll
Указанная ошибка «Модуль comcntr.dll загружен, но не удалось выполнить DllRegisterServer, код ошибки: 0x80070005» при выполнении команды означает, что недостаточно прав — запустите командную строку от имени администратора и повторите операцию.
Успешная регистрация компоненты
В редких случаях требуется сначала выполнить удаление регистрации comcntr.dll с помощью ключа «/u» (DllUnregisterServer), а только потом — повторную регистрацию.
Например, если ранее у вас была установлена другая платформа или некорректно прошла регистрация компоненты из нового релиза.
Последовательно выполняем две команды:
regsvr32 /u “%Program Files%\1cv8\8.3.xx.xxxx\bin\comcntr.dll”
regsvr32 “%Program Files%\1cv8\8.3.xx.xxxx\bin\comcntr.dll”
Как создать коннектор с помощью оснастки «Службы компонентов»
1. Открываем «Панель управления — Администрирование — Службы компонентов»
Службы компонентов
2. В окне консоли переходим к разделу «Службы компонентов — Компьютеры — Приложения COM+», далее через правую кнопку мыши «Создать — Приложение».
Приложения COM+ — Создать — Приложение
3. Следуем указаниям Мастера и выбираем «Создать новое приложение».
Создать новое приложение
4. Указываем имя приложения (V83COMConnector) и способ активации (Серверное приложение).
Вводим имя приложения V83COMConnector
5. Выбираем учетную запись, от имени которой будет запускаться приложение.
По умолчанию — «Текущий (вошедший в систему) пользователь», но для фоновой работы обмена рекомендуется указать отдельную учетную запись («Указанный пользователь») — здесь выбираете сами.
Выбор учетной записи
6. На этапах «Добавление ролей приложения» и «Добавление пользователей для ролей» особой настройки не требуется — нажимаем «Далее — Далее — Готово».
Добавление ролей приложения
7. В созданном приложении открываем «Компоненты» и выбираем команду «Создать — Компонент»
V83COMConnector — Компоненты — Создать — Компонент
8. Следуем Мастеру установки и выбираем пункт «Установка новых компонентов».
Установка новых компонентов
9. В открывшемся диалоге указываем расположение файла comcntr.dll, нажав на кнопку «Открыть». Потом «Далее» и «Готово».
Установка компонента comcntr.dll
10. Финальные действия после установки — открываем свойства компонента V83COMConnector через правый клик и во вкладе «Безопасность» убираем признак «Принудительная проверка доступа для приложения»и применяем политику «Уровень ограничений = Неограниченный».
V83COMConnector — Свойства
Вкладка «Безопасность»
Класс V83COMConnector успешно зарегистрирован и может использоваться для подключения к информационным базам.
Прочие возможные причины (опционально, требуют дополнительной проверки)
Если ошибка появляется снова:
- Перезапуск сервера 1С (из-за зависшего процесса с использованием компоненты) или вручную закрыть зависший com-процесс.
- В системе не установлена программа Excel, необходимая для работы 1С.
- Наличие некорректного кода (например, обращение к устаревшему компоненту V82COMConnector вместо V83COMConnector).
- Переключить тип приложения с «Серверное» на «Библиотечное».
- В «Приложения COM+ — V83COMConnector — Роли — CreatorOwner — Пользователи» добавить USR1CV8 и учетные записи пользователей ОС сервера, кто имеет право запускать задания.
- Через «Программы и компоненты» вызвать установку необходимой платформы в режиме «Исправить» и отметить COM-соединение.
Надеюсь, что эти рекомендации помогут вам исправить ошибку «-2147221005(0x800401F3): Недопустимая строка с указанием класса».