Как убрать ошибку 1С «-2147221005 (0x800401F3): Недопустимая строка с указанием класса»

  • Автор записи:
  • Рубрика записи:
  • Комментарии к записи:0 комментариев

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

Причина связана с незарегистрированными в системе компонентами — 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): Недопустимая строка с указанием класса».

Добавить комментарий