Как исправить ошибку 2147221005(0x800401F3) – недопустимая строка с указанием класса в 1С
Как можно исправить ошибку в программе 1С со строкой недопустимого содержания 2147221005(0x800401F3) и указанием класса? Сообщение с таким кодом встречается как при ручном запуске, так и при обработке информации в фоне. Неподготовленный пользователь тут же склонен впадать в панику. Но вопрос может быть решен. Даже без привлечения сторонних специалистов.
СОДЕРЖАНИЕ СТАТЬИ:
Причина ошибки
Прежде всего, пользователю нужно разобраться с «симптомами болезни». А уже потом ставить окончательный «диагноз». Чаще всего ошибка с указанным кодом появляется из-за двух приведенных причин:
- отсутствия регистрации компонента comcntr.dll;
- ограничения прав доступа.
Решение на первый взгляд достаточно простое. Пользователю нужно выполнить корректную регистрацию библиотеки COMConnector. Чтобы избавиться от сбоя в работе программы. Возможно, следует отключить Агент сервера 1С. И обновить библиотеку. Особенно, если ее релиз устарел. В отдельных ситуациях потребуется расширить полномочия пользователя. Назначить права управления запуском приложения.
Разумеется, могут быть и иные причины. Они приведены в конце материала. Но для начала следует понять, что же не так в системе. И проделать указанные действия. Проверить права пользователя. Версию коннектора. При необходимости – ввести его вручную.
Подходы к решению
Начинается поиск решений с проверки прав пользователя. Как на уровне Виндоуз, так и 1С. Если служба работает в режиме технологической записи, следует добавить NTFS-разрешение. Особенно при необходимости доступа к файловой информационной базе.
Не помешает и регистрация компонента comcntr.dll. Операции выполняются в режиме командной строки. Строго следуя алгоритму, вводя символы последовательно, безошибочно. Пошаговые инструкции помогут справиться с проблемой. Прежде всего, займемся регистрацией компонента comcntr.dll. Порядок действий:
- Запустить командную строку. Непременно с админправами (это важно).
- Последовательно ввести regsvr32 "< >\bin\comcntr.dll" (в скобках указать путь к каталогу с установленным ПО).
- Подтвердить проделанные действия.
Следующий способ относится к переустановке программы. Сделать это нужно в режиме исправления. И отметить COM-коннект.
Примеры исправления ошибки
Один из примеров – ошибка при регистрации comcntr.dll. В данном случае появляется сообщение, что модуль загружен, но DllRegisterServer не выполнен (код 0x80070005). Запись свидетельствует об ограничении прав пользователя. Решение заключается в запуске командной строки с админправами. После чего следует повторить операцию. В отдельных случаях перед повторной регистрацией требуется удаление ранее зарегистрированной библиотеки comcntr.dll. Сделать это можно посредством DllUnregisterServer (ключа «/u»). В командной строке вводятся:
- regsvr32 /u “%Program Files%\1cv8\8.3.xx.xxxx\bin\comcntr.dll”;
- regsvr32 “%Program Files%\1cv8\8.3.xx.xxxx\bin\comcntr.dll”.
Должно сработать. Сбой исчезнет.
Как создать коннектор
Если указанные способы не помогли, переходим к ручному регистрированию коннектора. Пошаговая инструкция:
- Запустить консоль со службой компонентов.
- Добавить новый элемент. Для этого последовательно нажимать кнопки «Компьютеры», «Мой компьютер».
- В открывшейся директории выбрать «Приложения COM+».
- Далее – «Приложение», «Создать» (открывается ПКМ).
- Ввести наименование приложения (в данном случае - V83COMConnector).
- Способ активации. Выбрать серверное приложение.
- Учетная запись. Вводится для пользователя по умолчанию (текущего). То есть выполнившего вход в систему. В фоновом режиме используется отдельный аккаунт. Назначается во вкладке «Указанный пользователь».
- Остается назначить роли. Здесь ничего не меняем.
- В подкатегории «Компоненты» инициировать создание нового, используя соответствующую команду.
- Следуя подсказкам мастера установки, активировать режим инсталляции comcntr.dll.
- В новом окне нажатием кнопки «Открыть» указать расположение файла.
Главное строго следовать инструкциям мастера установки. И вводить команды вдумчиво, не торопясь. Еще один важный момент: в свойствах V83COMConnector следует убрать флажок в чек-боксе принудительной проверки доступа. А во вкладке с политикой программных ограничений выбрать неограниченный уровень. После этого ошибка должна исчезнуть. И новый компонент будет использоваться при подключении к базам 1С.
Прочие возможные причины
Описанные выше «симптомы» не единичны. Бывают и другие причины сбоя. К ним относятся зависание процесса, некорректный код, ошибка в типе приложения, неправильно назначенная роль пользователя. Если сбои в работе ПО повторяются, требуется вмешательство. Что нужно делать:
- Перезапустить сервер 1С. Помогает при зависании com-процесса, обращения к сети.
- В системе действует устаревший компонент (V82). Установить релиз V83COMConnector.
- Вместо серверного типа приложения назначить иное – библиотечное.
- Изменить роль пользователя. Во вкладке «Приложения COM+» добавить USR1CV8. Изменить права для тех, кто может осуществлять запуск заданий.
- Принудительно назначить COM-соединение в директории с программами и компонентами.
Один из предложенных вариантов должен помочь. Наладить стабильную работу приложения. К данным способам прибегают, когда ни один из ранее предложенных вариантов не дал ожидаемого результата.
После опробования приведенных рекомендаций пользователь должен не забывать регулярно следить за обновлениями. Самостоятельно проходить по цепочке, исправляя ошибки. И тогда пользователю можно забыть о звонках на «горячую линию». Обращениях к айтишникам, администраторам с проблемами с comcntr.dll. Экономя свое время. Отлично справляясь с проблемами и без посторонней помощи. Просто. Быстро. Эффективно. Повышая свою квалификацию как пользователя. Получая новые знания. И успешно применяя их на практике.