Ошибка при подключении недопустимая строка с указанием класса

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

Текст: «Ошибка при вызове конструктора (COMObject) по причине: -2147221005(0x800401F3): Недопустимая строка с указанием класса».

Причины связаны с незарегистрированными в системе компонентами — comcntr.dll, ошибками доступа (недостаточно прав).

Решение — в регистрации библиотеки comcntr.dll из каталога программы для корректного вызова COMConnector.

Подготовительные действия

  • отключите службу Агента сервера 1С:Предприятия и программы, возможно использующие регистрируемую DLL;
  • если ранее использовалась библиотека устаревшей версии, удалите регистрацию comcntr.dll, запустив команду вызова regsvr32 с ключом /u.

Подходы к решению

1. Регистрация библиотеки comcntr.dll

В командной строке с правами Администратора выполните команду:

regsvr32 "<путь к каталогу установки 1С>bincomcntr.dll"

При удачном выполнении вы увидите сообщение: «Успешное выполнение DllRegisterServer в comcntr.dll».

2. Переустановка платформы с внесением исправлений

Переустановите технологическую платформу 1С в режиме «Исправить» и отметьте COM-соединение.

3. Регистрация коннектора вручную

Регистрация приложения и коннектора вручную:

  • запускаем консоль «Службы компонентов»;
  • добавляем новый элемент, переходим «Компьютеры» — «Мой компьютер» — из списка выбираем «Приложения COM+»;
  • выбираем «Создать» — «Приложение»;
  • в Мастере установки выбираем второй вариант «Создать новое приложение», в поле «Введите имя нового приложения:» вводим «V83COMConnector», «Способ активации» устанавливаем «Серверное приложение», нажимаем «Далее»;
  • выбираем учетную запись под которой запускается приложение, по умолчанию — «Текущий (вошедший в систему) пользователь»;
  • на этапах «Добавление ролей приложения» и «Добавление пользователей для ролей» нажимаем «Далее», а затем «Готово».

В ветке только что созданного приложения переходим в подветку «Компоненты» и создаем компонент:

  • в контекстном меню выбираем «Создать» — «Компонент»;
  • кликаем по первому варианту «Установка новых компонентов»;
  • в открывшемся диалоге выбираем необходимый файл comcntr.dll и нажимаем «Открыть»;
  • нажимаем «Далее» и «Готово».

Обратите внимание: после установки измените свойства объекта. Для этого переходим к ветке V83COMConnector:

  • открываем свойства созданного компонента, переходим в ветку V83COMConnector — «Свойства»;
  • на вкладке «Безопасность», в «Авторизация» снимаем флаг «Принудительная проверка доступа для приложений»;
  • в «Политика программных ограничений» устанавливаем флаг «Применить политику программных ограничений» и выбираем «Уровень ограничений:» — «Неограниченный»;
  • нажимаем «Применить» — «ОК».

Полная версия со снимками экранов — в статье на Дзен-канале.

Класс V83COMConnector зарегистрирован и доступен для подключения к информационным базам. Обмен данными между базами восстановлен, и фоновый процесс завершается без ошибок.

Если не получается и требуется дополнительная поддержка — наши специалисты готовы вам помочь → +7-911-500-10-11

Содержание:

1.       Об ошибке «Недопустимая строка с указанием класса»

2.      Устранение ошибки «Недопустимая строка с указанием класса»

1.    Об ошибке «Недопустимая строка с указанием класса»

Приветствую, коллеги! В данной статье будет рассмотрена ошибка «Недопустимая строка с указанием класса» в 1С 8.3. Мы проведем диагностику ошибки, выясним, по каким причинам она возникла, и опишем инструкция-алгоритм, согласно которой можно полностью устранить данную ошибку.

Данная ошибка в системе 1С может иметь отображение в двух видах, а именно:   

·        ошибка из-за отключения базы с пользователями на платформе 1С: «Недопустимая строка с указанием класса»;

·        ошибка из-за отключения базы пользователей на платформе 1С: «Различаются версии клиента и сервера, в клиентском приложении COM-администратор».

В случае, когда на ПК установлена версия 1С:Предприятие на 64 бита, то 64 бита устанавливается (в новых версиях платформы 1С) и на сервер, и на части программы для работы клиентов. В данном случае, когда «Effector Saver» создаёт подключение через COM к серверу, то возникает ошибка «Недопустимая строка с указанием класса». Данная неполадка может возникать и в случаях регистрации библиотеки «V83.COMConnector» для новейших версий системы 1С. Ошибка возникает по причине того, что в запросе «Effector Saver» ОС ищет COM приложение, которое будет соответствовать, после чего не может найти его, ведь данная библиотека является на 64 бита, а не на 86 битов.

2.    Устранение ошибки «Недопустимая строка с указанием класса»

Наипростейший способ по устранению ошибки «Недопустимая строка с указанием класса» – это регистрация через regsvr32. Если это не помогло, то необходимо использовать нижеприведённую инструкцию.

Для начала необходимо создать коннектор, после чего включить консоль «Службы компонентов» по пути «Панель управления → Администрирование → Службы компонентов»:

Рис. 1 Создание коннектора для устранения ошибки «Недопустимая строка с указанием класса»

Далее перед нами откроется соответствующее окно, в которое необходимо добавить элемент, чтобы произвести данное действие, — кликаем «Компьютеры», переходим в «Мой компьютер», далее в списке кликаем на «Приложение СОМ+», как можно увидеть на скриншоте ниже:    



Рис. 2 Выбор типа приложения для устранения ошибки «Недопустимая строка с указанием класса»

Открываем контекстное меню и кликаем на «Создать → Приложение», как показано на скриншоте далее:

Рис. 3 Создание приложения для устранения ошибки «Недопустимая строка с указанием»

Перед нами появится Мастер по установке приложений СОМ+, в нём кликаем «Далее», как видно на скриншоте ниже:

Во всплывшем окне «Установка или создание нового приложения» кликаем на «Создать новое приложение»:

Рис. 4 Создание нового приложения для устранения ошибки «Недопустимая строка с указанием»

Открывается новое окно, в котором в строке «Введите имя нового приложения» следует написать «V83.COMConnector». Далее в способе активации следует выбрать «Серверное приложение» и кликаем на кнопку «Далее»:

Рис. 5 Выбор имени приложения при устранении ошибки «Недопустимая строка с указанием»

Далее для устранения ошибки «Недопустимая строка с указанием класса» следует избрать запись учёта, с которой будет запускаться приложение. Далее установим «текущего пользователя», то есть того, который на данный момент находится в системе, и кликаем на кнопку «Далее», как видно на картинке ниже:


Рис. 6 Выбор пользователя при устранении ошибки «Недопустимая строка с указанием»

В последующих двух окнах по добавлению ролей в приложении оставляем всё как есть и кликаем «Далее».

В последнем открывшемся окне кликаем «Готово»:



Рис 7 Последнее окно приложения при устранении ошибки «Недопустимая строка с указанием»

Далее обращаемся к ветке приложения, которое создали и переходим в «Компоненты», где, соответственно, создадим компонент. Для этого в меню выбираем «Создать → Компонент», как демонстрируется на скриншоте ниже:

Рис. 8 Создание компонента при устранении ошибки «Недопустимая строка с указанием»

Вновь появится окно с Мастером по установке СОМ+ компонентов, в нём кликаем «Далее»:

Рис. 9 Открытие окна Мастера при устранении ошибки «Недопустимая строка с указанием»

В окне, которое открылось, выбираем «Установка новых компонентов»:

Рис. 10 Установка новых компонентов при устранении ошибки «Недопустимая строка с указанием»

В следующем окне выбираем нужный файл comcntr.dll и кликаем на «Открыть». После перемены окна кликаем «Далее»:

Рис. 11 Выбор нужного файла при устранении ошибки «Недопустимая строка с указанием»

После данного шага в мастере для устранения ошибки «Недопустимая строка с указанием класса» будут сформированы все нужные сведения, чтобы выполнить установку, в новом окне кликаем «Готово».

Примечание: по завершению установки обязательно следует поменять свойства у объекта: открываем ветку «V83.COMConnector» и выбираем свойства компонента, который создали, как можно увидеть на скриншоте ниже:



Рис. 12 Изменение свойств объекта при устранении ошибки «Недопустимая строка с указанием»

Для дальнейшей работы с ошибкой «Недопустимая строка с указанием класса» в том окне, которое откроется, кликаем на «Безопасность», далее в «Авторизация» убираем отметку «Принудительная проверка доступа для приложений», как показано на скриншоте ниже:

Рис. 13 Отключение принудительной проверки

В панели «Политика программных ограничений» ставим «галочку» около пункта «Применить политику программных ограничений» и в уровнях избираем «Неограниченный»:

Рис. 14 Настройка политики программных ограничений

Для устранения ошибки «Различаются версии клиента и сервера, в клиентском приложении COM-администратор» из описания выше, нужно перейти во вкладку «Удостоверение» и установить «Указанный пользователь». В этом поле необходимо внести информацию о пользователе, который имеет администраторские права, либо учётную запись домена, если вход был произведён с него, как показано ниже:

Рис. 15 Исправление ошибки «Различаются версии клиента и сервера, в клиентском приложении COM-администратор»

Кликаем «Применить» и «ОК».

После всех вышеперечисленных действий был сформирован класс V83.COMConnector, который следует использовать, чтобы подключиться к базам с информацией, следовательно – ошибка полностью устранена.

Специалист компании «Кодерлайн»

Айдар Фархутдинов

После обновления платформы 1С при синхронизации данных может появляться сообщение об ошибке -2147221005(0x800401F3). Данная ошибка обычно сопровождается строкой «Недопустимая строка с указанием класса» и связана с неверным кодом программы, не зарегистрированными в системе компонентами и другими релевантными факторами.

Например, во время синхронизации возникает ошибка Обмен данными.ОбменЗарплата3Бухгалтерия3.Отправка данных со следующим содержимом:

Не удалось подключится к другой программе: -2147221005(0x800401F3): Недопустимая строка с указанием класса 
{ОбщийМодуль.ОбщегоНазначенияСлужебныйКлиентСервер.Модуль(393)}:		COMConnector = Новый COMObject(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя()); // "V83.COMConnector"
{ОбщийМодуль.ОбщегоНазначения.Модуль(2830)}:	Возврат ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьВнешнееСоединениеСБазой(Параметры, ПодключениеНедоступно, КраткоеОписаниеОшибки);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(12564)}:		ЗаполнитьПараметрыПодключенияВнешнегоСоединения(СтруктураНастроек));
{ОбщийМодуль.ОбменДаннымиПовтИсп.Модуль(1185)}:        РегистрыСведений.НастройкиТранспортаОбменаДанными.НастройкиТранспорта(
{ОбщийМодуль.ОбменДаннымиПовтИсп.Модуль(1164)}:	Результат = ВнешнееСоединениеДляУзлаИнформационнойБазы(УзелИнформационнойБазы);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6701)}:	ВнешнееСоединение = ОбменДаннымиПовтИсп.ПолучитьВнешнееСоединениеДляУзлаИнформационнойБазы(
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(3952)}:			ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыПоВнешнемуСоединению(Отказ,
{Обработка.ВыполнениеОбменаДанными.МодульМенеджера(38)}:		ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(
{(1)}:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}:	Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1036)}:		ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:		ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса 
-2147221005(0x800401F3): Недопустимая строка с указанием класса

Причины возникновения ошибки -2147221005(0x800401F3)

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

Тем не менее к числу наиболее популярных причин ошибки -2147221005(0x800401F3) относятся следующие:

  • Пользователь использует устаревшую конфигурацию 1С;
  • Наличие некорректного кода программы (к примеру, обращение к устаревшему «V82.COMConnector» вместо «V83.COMConnector»);
  • В системе не зарегистрирована библиотека comcntr.dll;
  • У пользователя, запускающего определённый комплекс 1С, нет достаточных прав для работы с ним (к примеру, запуск выполняется из гостевой учётной записи, вместо учётной записи администратора).

Обновление конфигурации до последней версии

Вопрос обновления конфигурации 1С на примере «1С:Бухгалтерия 3.0» я рассматривал ранее. Поэтому здесь не имеет смысла описывать данный процесс.

Запускайте 1С с правами администратора

Убедитесь, что вы запускаете систему под учётной записью администратора, а не ограниченного в правах «Гостя» или аналога.

Измените код программы

В некоторых случаях код программы может устареть и не соответствовать текущей версии 1С. Эффективным решением ошибки -2147221005(0x800401F3) является замена строки кода:

COMConnector = Новый COMObject(«V82.COMConnector»);

на строку:

COMConnector = Новый COMObject(«V83.COMConnector»);

После указанной замены проблема может быть решена.

Регистрация в системе компоненты comcntr.dll

Довольно часто ошибка возникает после обновления платформы, когда во время установки новой версии не регистрируется компонента comcntr.dll.

Для регистрации компоненты вручную необходимо выполнить в PowerShell от имени администратора следующие команды:

C:WindowsSysWOW64regsvr32 /u "c:Program Files1cv88.3.17.1851bincomcntr.dll" или C:WindowsSysWOW64regsvr32 /u "c:Program Files (x86)1cv88.3.17.1851bincomcntr.dll"

Затем

C:WindowsSysWOW64regsvr32 "c:Program Files1cv88.3.17.1851bincomcntr.dll" или C:WindowsSysWOW64regsvr32 "c:Program Files (x86)1cv88.3.17.1851bincomcntr.dll"

«8.3.17.1851» вам необходимо заменить на вашу версию платформы 1С.

C:WindowsSysWOW64regsvr32

После регистрации библиотеки скорей всего синхронизация заработает.

Синхронизация данных ЗУП-БП

Последние статьи:

Данная пошаговая инструкция, это альтернативный вариант решения проблемы с регистрацией COM компоненты 1С Предприятия comcntr.dll.
Первоначально воспользуйтесь вариантом регистрации — regsvr32. Подробней: «Регистрация COM компоненты 1С Предприятия comcntr.dll (V83.ComConnector)». И только в случае неудачи, используйте вариант приведенный ниже.

Создаём коннектор. Запускаем консоль «Службы компонентов».

«Панель управления»«Администрирование» — выбираем «Службы компонентов».

В открывшемся окне «Службы компонентов» добавляем новый элемент, для этого переходим «Компьютеры»«Мой компьютер» — из списка выбираем «Приложения COM+».

В контекстном меню выбираем «Создать»«Приложение».

Откроется Мастер установки приложений COM+.

Нажимаем «Далее».

master-ustanovki-prilozhenij-COM+-nazhimaem-dalee

«Установка или создание нового приложения» выбираем второй вариант «Создать новое приложение».

sozdat-novoe-prilozhenie

В поле «Введите имя нового приложения:» вводим «V83COMConnector».

«Способ активации» устанавливаем «Серверное приложение».

Нажимаем «Далее».

vvedite-imja-novogo-prilozhenija

На следующем этапе выбираем учетную запись под которой запускается приложение.

Устанавливаем «Текущий (вошедший в систему) пользователь».

Нажимаем «Далее».

tekushhij-voshedshij-v-sistemu-polzovatel

На этапе «Добавление ролей приложения» нажимаем «Далее».

dobavlenie-rolej-prilozhenija

На этапе «Добавление пользователей для ролей» нажимаем «Далее».

dobavlenie-polzovatelej-dlja-rolej
Нажимаем «Готово».

zavershenie-mastera-ustanovki-COM+

В ветке только что созданного нами приложения переходим в подветку «Компоненты» и создаем компонент.

В контекстном меню выбираем «Создать»«Компонент».

Откроется Мастер установки компонентов COM+.

Нажимаем «Далее».

otkroetsja-master-ustanovki-komponentov-COM+

Выбираем первый вариант «Установка новых компонентов».

ustanovka-novyh-komponentov

В открывшемся диалоге выбираем необходимый файл comcntr.dll и нажимаем «Открыть».

Окно Мастера установки компонентов COM+ измениться нажимаем «Далее».

vybiraem-neobhodimyj-fajl-comcntr.dll

Мастер собрал все необходимые сведения для выполнения установки, нажимаем «Готово».

master-sobral-vse-neobhodimye-svedenija-dlja-vypolnenija-ustanovki

Обратите внимание: после установки необходимо изменить свойства объекта.

Для этого переходим к ветке V83COMConnector.

Открываем свойства созданного компонента, переходим в ветку V83COMConnector«Свойства».

В открывшемся окне переходим на вкладку «Безопасность».

В «Авторизация» снимаем флаг «Принудительная проверка доступа для приложений».

prinuditelnaja-proverka-dostupa-dlja-prilozhenij

В «Политика программных ограничений» устанавливаем флаг «Применить политику программных ограничений» и выбираем «Уровень ограничений:»«Неограниченный».

politika-programmnyh-ogranichenij

Если вы получаете данную ошибку:

«Ошибка отключения пользователей базы 1С, Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля, ProgID: «V83.ComConnector» (HRESULT=8000401A)»

Переходим на вкладку «Удостоверение», устанавливаем «Указанный пользователь:» и вводим данные учетной записи с правами Администратора. В случае если используете домен, укажите доменную учетную запись.

Нажимаем «Применить»«ОК».

Класс V83.COMConnector успешно зарегистрирован и может использоваться для подключения к информационным базам.

Ошибка -2147221005(0x800401F3) возникает в 1С преимущественно при инициации синхронизации данных в ручном порядке, но может появиться и без видимых причин, во время фоновой работы. Количество случаев резко увеличивается после каждого обновления 1С Бухгалтерии. Чтобы обмен данными с базой заработал нормально, придется выполнить несколько действий вручную, так как без вмешательства извне здесь не обойтись.

Ошибка при вызове конструктора (COMObject) по причине: -2147221005(0x800401F3): Недопустимая строка с указанием класса

Причины

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

Основные причины ошибки -2147221005(0x800401F3):

  • отсутствует регистрация определенного СОМ-объекта, к которому сейчас происходит обращение;
  • недостаточно прав для выполнения процедуры, хотя обычно в этом случае появляется другая ошибка;
  • попытка запроса устаревшего или отсутствующего объекта.

Как исправить ошибку -2147221005(0x800401F3)?

Как следует из перечня причин ошибки, может быть несколько решений данного сбоя. И первым делом стоит проверить права пользователя, который запустил процедуру, спровоцировавшую ошибку. Возможно, нужно повысить его полномочия, расширив доступ к важным компонентам. К примеру, служба Агента сервера 1С запускается с технологической записью, но обмен данными требует использование файловой ИБ. В этом случае следует добавить разрешение NTFS для конкретного доступа. Это довольно банальное действие, поэтому расписывать не имеет смысла.

Регистрация объектов

Очень часто причиной сбоя становится незарегистрированная библиотека comcntr.dll, но не она одна. Чтобы провести регистрацию, нужно ввести в командную строку несколько команд: C:WindowsSysWOW64regsvr32 /u “c:Program Files1cv88.3.17.1851bincomcntr.dll” и C:WindowsSysWOW64regsvr32 “c:Program Files1cv88.3.17.1851bincomcntr.dll”. Если результат будет неожиданным, скорее всего в вашей системе вместо Program Files нужно использовать Program Files (x86).

Если в тексте сообщения есть указание проблемного COM-объекта, нужно поработать с ним. Например, у некоторых пользователей проблема в MSXML2.XMLHTTP.4.0. Решением будет его регистрация или редактирование объекта. В конкретном случае нужно просто запустить редактор реестра, в поиск ввести MSXML2.XMLHTTP.4.0 и заменить значение с 4.0 на 6.0.

Отказ от устаревших объектов

Еще одна из наиболее вероятных проблем – обращение к устаревшему объекту. Если у вас где-то в коде есть строка COMConnector = Новый COMObject(«V82.COMConnector»);, то нужно заменить на актуальную версию V83.COMConnector. То же самое и с другими объектами, которые сейчас не поддерживаются.

Преимущественно одно из действий помогает устранить ошибку -2147221005(0x800401F3) в 1С. За редкими исключениями все должно работать стабильно. Мы же ожидаем, что вы напишете – удалось ли решить проблему и что было сделано.

Понравилась статья? Поделить с друзьями:
  • Ошибка при подключении компьютера в домен
  • Ошибка при подключении компоненты защиты конфигурации
  • Ошибка при подключении клавиатуры код 43
  • Ошибка при подключении ккм порт занят
  • Ошибка при подключении камеры ростелеком