Недопустимая строка с указанием класса 0x800401f3

Как быть, что делать, как исправить, если при запуске обработки появляется ошибка:
: Ошибка при вызове конструктора (COMОбъект)
v8 = Новый COMОбъект(«V82.COMConnector»);
по причине:
Недопустимая строка с указанием класса

Решение:

Обратите внимание, что у Вас каталог может быть и не «8.2.15.310» а другой.
«8.2.15.310» — это каталог с именем (номером версии) платформы 1С. Значение, которое нужно сюда подставить
отображается в 1С:

No news availble

Предлагаем решение Ваших задач 1С.

  • Организуем вам индивидуальное экспресс обучение программам 1С.
  • Мы поможем Вам начать работать с программами 1С.
  • Мы поможем Вам настроить ваши отчеты в 1С.
  • Установим и настроим 1С под ваши задачи.
  • Поможем сделать ввод начальных остатков по складам и контрагентам
  • Перенесем данные из старых систем.
  • Подскажем как избежать ошибок.

Доработка и сопровождение 1С:

  • Доработаем существующие или создадим новые печатных формы и документы.
  • Разработаем внешние отчеты по Вашим требованиям.
  • Напишем внешние обработоки по загрузке документов из учетных (торговых) систем в бухгалтерию.
  • Разработаем приложения для выгрузки данных на сайты.

Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.

Вы здесь

Что делать, если возникает ошибка «Недопустимая строка с указанием класса» и регистрация библиотеки «COM connector» при помощи regsvr32 не помогает?

Ошибка связана с тем, что библиотека зарегистрирована под архитектуру х64, а вызов производится из под х86. Для исправления ситуации можно вручную указать системе нужную версию компоненты.

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

2. Создадим новое приложение COM+ через «Службы компонентов — Компьютеры — Мой компьютер — Приложения COM+ — Создать — Приложение».

3. На первой странице мастера установки приложений COM+ нажмем «Далее».

4. Нажемем кнопку «Создать новое приложение».

5. Введем имя нового приложения «V83COMConnector», выберем «Серверное приложение», нажмем «Далее».

6. Выберем «Текущий (вошедший в систему) пользователь», нажем «Далее».

7. Не добавляя роль, нажмем «Далее».

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

9. Для вновь созданного приложения создадим новый компонент.

10. На первом шаге мастера установки компонентов COM+ нажмем «Далее».

11. Нажмем кнопку «Установка новых компонентов».

12. Выберем библиотеку comcntr.dll из текущего релиза платформы, например, «C:Program Files1cv88.3.14.1779in comcntr.dll «.

13. Ничего не меняя, нажмем «Далее».

14. Завершим установку компонентов COM+, нажав на кнопку «Готово».

15. Откроем свойства приложения «V83COMConnector».

16. Снимим галку «Принудительная проверка доступа для приложения», установим уровень органичений «Неограниченный».

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

Суть и причины «Недопустимая строка с указанием класса»

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

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

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

Давайте разберёмся, как исправить ошибку 2147221005 «Недопустимая строка с указанием класса» в вашей системе 1С.

Обновите вашу конфигурацию 1С до актуальной версии

Первым делом убедитесь, что вы используете самую свежую версию конфигурации 1С. При подключении к нужным базам для выполнения обмена она может попытаться использовать устаревшую платформу (к примеру, 8.2), которая фактически отсутствует. Потому обновите вашу версию конфигурации до актуального релиза, а потом попробуйте осуществить требуемое подключение.

Используйте свежую версию 1С

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

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

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

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

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

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

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

Зарегистрируйте в системе библиотеку comcntr.dll

Если вы пользуетесь Виндовс 64, то необходимо провести корректную регистрацию в системе библиотеки comcntr.dll . Нажмите на Win+R, введите следующую строку:

C:WindowsSysWOW64
egsvr32 «c:Program Files(x86)1cv88.3.12.1469incomcntr.dll»

Вместо «8.3.12.1469» укажите установленную у вас версию технологической платформы. После этого нажмите на ввод. Указанная регистрация может помочь избавиться от ошибки 2147221005 в 1С.

Проверьте наличие установленного в системе Excel

Наличие установленного в системе Excel является необходимым элементом при обращении к нему системы 1С. Потому рекомендуем убедиться, что Эксель в системе установлен корректно, для чего нажмите Win+R, введите там Excel , и нажмите ввод. Если программа запустилась, тогда всё работает корректно. Если нет, тогда следует установить (переустановить) Excel (комплекс «MS Office») на вашей машине (машинах).

Используйте специализированные форумы 1С

Если не один из указанных советов вам не помог, обратитесь к помощи форумов, которые посещают множество программистов и специалистов 1С. В частности, рекомендуем такие форумы как forum.infostart.ru, cyberforum.ru/1c-standard, is.ideasoft.in.ua где вам могут помочь в решении возникшей дисфункции.

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

При синхронизации 1С ЗУП 3.0 — БП 3.0 при проверке подключения выскакивает ошибка :

Не удалось подключиться к другой программе: -2147221164(0x80040154): Класс не зарегистрирован.

В чем может быть дело? В каком направлении рыть??

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

( голосов, в среднем: из 5)

Поддержите нас, расскажите друзьям!

СПРОСИТЕ в комментариях!

Это проблема связана с соединением другой базы данных по COM объекту.
Очень вероятно что не хватает прав.

Думаю, тут скорее дело в том, что на COM-компонент не зарегистрирован в системе.
Нужно запустить командную строку под именем администратора, затем выполнить regsvr32 . Компонент чаще всего находится в папке с платформой в папке bin (выглядит это приблизительно вот так: «C:Program Files (x86)1cv88.3.6.2449in»). И называется comcntr32.dll.

Спасибо большое, помогло!

Огромное спасибо! Помогло. Вы супер!

Илья, добрый день!
А для 32-х и 64-х платформ 1С различаются процедуры?

Спасибо, тоже помогло!

В командной строке ( CMD в поиске) в моем случае вводил: regsvr32 «C:Program Files (x86)1cv88.3.12.1529incomcntr.dll»

Все время забываю об этой длл. СПАСИБО, что напоминаете.

Для 64-х платформы:
C:WindowsSysWOW64RegSvr32.exe «C:Program Files1cv88.3.15.1656incomcntr.dll»

При использовании данного сайта, вы подтверждаете свое согласие на использование файлов cookie в соответствии с настоящим уведомлением в отношении данного типа файлов. Если вы не согласны с тем, чтобы мы использовали данный тип файлов, то вы должны соответствующим образом установить настройки вашего браузера или не использовать сайт.

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

Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Версия компоненты ‘comcntr’ отличается от версии корневого модуля ‘core83’

Часто бывает, что при настроенной синхронизации после обновления платформы появляется ошибка «Произошла исключительная ситуация (V83.COMConnector.1): Версия компоненты ‘comcntr’ отличается от версии корневого модуля ‘core83’». Так происходит потому, что автоматически не зарегистрировалась компонента comcntr.dll из-за проблем с правами пользователя на компьютере.

Решить данную проблему можно двумя способами.

Переустановить платформу под правами Администратора или под пользователем, у которого есть такие права.

Если не получилось как в способе №1, то можно вручную зарегистрировать самому эту компоненту.

Перед этим нам необходимо изменить Параметры контроль учетной записи.

Для Windows 7 нам необходимо зайти в Пуск затем в Панель управления.

Для Windows 10 нам необходимо в левом нижнем углу панели задач в строке поиска набрать Панель управления и перейти по открывшейся ссылке.

В правом верхнем углу Панели управления выбрать Просмотр-Мелкие значки и затем в списке перейти в Учетные записи пользователей.

Там выбрать Изменить параметры контроля учетных записей.


Затем поставить ползунок в самом нижнем положении.

И перезапустить компьютер.

После перезагрузки необходимо:

Для Windows 7 надо перейти в Пуск, затем в строке поиска ввести cmd.exe,нам покажет что найдена Командная строка и, щелкнув по ней правой клавишей мыши, выбрать «Запуск от имени администратора».

Для Windows 10 нам необходимо в левом нижнем углу панели задач в строке поиска набрать Командная панель или cmd.exe и, щелкнув по ней правой клавишей мыши, выбрать «Запуск от имени администратора».

У нас откроется Командная строка, где нам необходимо ввести команду:

1.Для платформы x86

Regsvr32 «C:Program Files (х86)1cv8номер версии вашей платформыincomcntr.dll» (regsvr32пробел»C:Program Files (х86)1cv8номер версии вашей платформыincomcntr.dll»).

2.Для платформы х64

Regsvr32 «C:Program Files1cv8номер версии вашей платформыincomcntr.dll» (regsvr32пробел»C:Program Files1cv8номер версии вашей платформыincomcntr.dll»).

Затем нажать клавишу Enter.

Если все сделали правильно, то увидите вот такое окно.

После этого необходимо перезагрузить компьютер. Как включится, пробуйте снова сделать синхронизацию.

Добрый день, коллеги! Назрел такой насущный вопрос:
Есть сервер 1С, его обновили до версии 1С.Предприятия 8.3.12.1685. И есть терминальный сервер, с которого работают с базами, размещенными на сервере 1С. Оба сервера под управлением Windows Server 2012 R2.
На сервере 1С размещена база Бух 3.0 и Зуп 3.1. Между ними на предыдущей платформе, 8.3.11.2954 была настроена синхронизация. На 8.3.11.2954 синхронизация работала нормально, но для обновления Бух до последней конфигурации были вынуждены перейти на 8.3.12.1685(предвосхищая возможный вопрос — нет, тестового сервера нет). После перехода выяснилось, что синхронизация не работает. При попытке соединения(например, в окне проверки настроек) получаю сообщение:

1. Возможные проблемы с использованием функционала систем

2. Решение проблем с использованием командной строки сервера

1. Возможные проблемы с использованием функционала систем

После установки новой платформы 1С на серверных станциях со временем могут возникать проблемы с использованием функционала систем. К примеру, при использовании синхронизации потоков. Это связано с библиотекой comcntr.dll. При полной установке платформы 1С данная библиотека регистрируется в реестре автоматически, но при неполной установке платформы данную библиотеку необходимо зарегистрировать самостоятельно.

Зарегистрировать данную библиотеку необходимо на сервере, где находится база. Производить регистрацию библиотеки comcntr.dll необходимо под администраторскими правами. Запустить командную строку и прописать команду регистрации библиотеки в реестре.

Решение проблем с использованием командной строки сервера

Для 32-битной версии сервера в командной строке сервера вводится следующая команда: C:\Windows\System32\regsvr32 » C:\ProgramFiles(x86)\1cv8\\bin\comcntr.dll” и нажать Enter.

При успешной регистрации на экране появится сообщение:

Для 64-битной версии сервера в командной строке сервера вводится немного другая команда: C:\Windows\SysWOW64\regsvr32 «C:\ProgramFiles(x86)\1cv8\ \bin\comcntr.dll” и нажать Enter. При успешной регистрации на экране появится точно такое же сообщение, как и при регистрации в 32-битной версии сервера.

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

Для этого необходимо ввести в командной строке команду деинсталяции. Для 32-битной версии сервера:

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

Подключаемся через COM к базе 1С

Для реализации COM соединения в 1С используется специальный механизм под названием COMConnector. Этот объект устанавливается вместе с платформой и применяется для связи информационных баз. Следует учесть, что для версий 8.2 и 8.3 используются разные по наименованию объекты – «V82.COMConnector» и «V83.COMConnector» соответственно.

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

Чтобы иметь возможность подключиться к другой базе и запросить нужную информацию вы должны знать следующие данные:

  1. Какого она типа – файловая или клиент-серверная;
  2. Где она располагается;
  3. Под каким именем и паролем в нее можно зайти;
  4. Какие данные вас интересуют.

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

ПараметрыПодключенияФайловойИБ = "Filе=""Путь_к_базе""; Usr=""Имя_пользователя"";Pwd=""Пароль""";ПараметрыПодключенияКлиентСервернойИБ = "Srvr=""Имя_Сервера""; Ref=""Имя_базы""; Usr=""Имя_пользователя""; Pwd=""Пароль""";

Функция подключения проста и не должна вызвать вопросов, если все параметры указаны верно. Для ускорения отладки и анализа возможных ошибок лучше заключить подключение в конструкцию «Попытка». Возвращать функция будет значение типа «COM объект», с которым и предстоит работать, получая нужные данные.

&НаСервереФункция ПодключитьсяКбазе() экспортПараметрыПодключенияИБ = "Filе=""Е:\базы 1с\ЕRР""; Usr=""Администратор"";Pwd=""1""";V83COMCon= Новый СОMОбъект("V83.COMConnector");Попытка Возврат V83COMCon.Connect(ПараметрыПодключенияИБ);Исключение Сообщить(ОписаниеОшибки()); Возврат Неопределено;КонецПопытки;КонецФункции

Через COM соединение вы можете не только выбирать данные, но и добавлять их в базу, к которой подключаетесь. Помните, что передавать через COM объект мы можем 4 примитивных типа данных. Другие типы придется задавать с помощью встроенных в платформу функций поиска. Учтите, что глобальные функции платформы вызываются тоже через COM-соединение.

Получаем данные из базы 1С

После того как получили нужный объект, необходимо прочитать данные из другой базы. Для этого мы применяем запрос через COM соединение в 1С 8.3 с помощью полученного значения типа «COM объект» из функции. Важно сначала подключиться к базе, а затем уже выполнять запрос. Выполнение происходит через метод NewObject с указанием в качестве параметра типа объекта в строковом виде – «Запрос».

&НаСервереПроцедура ТестСОMНаСервере()Соединение = ПодключитьсяКбазе();Если ТипЗнч(Соединение) Тип("Неопределено") Тогда ЗапросБПЗО = Соединение.NewObject("Запрос"); ЗапросБПЗО.Текст = "ВЫБРАТЬ первые 15 |СправочникПольз.Наименование КАК Наименование |ИЗ |Справочник.пользователи КАК СправочникПольз"; Выборка = ЗапросБПЗО.Выполнить().выбрать(); Пока Выборка.следующий() цикл Сообщить(Выборка.Номер); КонецЦикла;КонецЕсли;КонецПроцедуры

К примеру, чтобы получить информацию о пользователях определенного подразделения, зададим условие в запрос через параметры. Один параметр будет простого типа – строка, а подразделение – ссылкой элемента справочника «Структура предприятия». Результат запроса является таблицей с перечисленными полями того типа, какого они существуют в базе, к которой произошло COM соединение. Если необходимо их преобразовать в другие типы – воспользуйтесь стандартными функциями платформы:

  • Строка();
  • Число();
  • Дата().

ЗапросБПЗО = Соединение.NewObject("Запрос");ЗапросБПЗО.Текст = "ВЫБРАТЬ первые 15 | СправочникПольз.Наименование КАК Наименование |ИЗ | Справочник.Пользователи КАК СправочникПольз I ГДЕ | СправочникПольз.Подразделение = &НужноеПодразделение | И СправочникПольз.Наименование подобно ""%"" + &НужноеИмя+ ""%""";ЗапросБПЗО.УстановитьПараметр("НужноеПодразделение",Соединение.Справочники.СтруктураПредприятия.НайтиПоКоду("00-000023"));ЗапросБПЗО.УстановитьПараметр("НужноеИмя","Екатерина");Выборка = ЗапросБПЗО.Выполнить().выбрать();Пока Выборка.следующий() цикл Сообщить(Выборка.Наименование);КонецЦикла;

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

ЗапросБПЗО = Соединение.NewObject.("Запрос");ЗапросБПЗО.Текст = "ВЫБРАТЬ первые 15 | СправочникПольз.Наименование КАК Наименование | ИЗ | Справочник.Пользователи КАК СправочникПольз I ГДЕ | СправочникПольз.Подразделение В (&НужноеПодразделение) | И СправочникПольз.Наименование подобно ""%"" + &НужноеИмя+ ""%""";МассивПодразделений = Соединение.NewObject("Массив");МассивПодразделений.Добавить(Соединение.Справочники.СтруктураПредприятия.НайтиПоКоду("00-000023"));МассивПодразделений.Добавить(Соединение.Справочники.СтруктураПредприятия.НайтиПоКоду("00-000038"));МассивПодразделений.Добавить(Соединение.Справочники.СтруктураПредприятия.НайтиПоКоду("00-000046"));ЗапросБПЗО.УстановитьПараметр("НужноеПодразделение", МассивПодразделений);ЗапросБПЗО.УстановитьПараметр("НужноеИмя","Екатерина");Выборка = ЗапросБПЗО.Выполнить().выбрать();Пока Выборка.следующий() цикл Сообщить(Выборка.Наименование);КонецЦикла;

При переносе документов или элементов справочников всегда возникает вопрос о контроле переноса определенного объекта. С помощью COM соединений можно решить подобные проблемы через уникальный идентификатор. Нужно найти объект в подключаемой базе по идентификатору из текущей ИБ с помощью функции «ПолучитьСсылку», используя идентификатор в виде строки. Если такового не нашлось, вы можете создать его с помощью COM соединения.

СтрИдент = Строка(Справочники.Пользователи.НайтиПоКоду("00-0000313").УникальныйИдентификатор());Если НЕ ЗначениеЗаполнено(Соединение.Справочники.Пользователи.ПолучитьСсылку(Соединение.NewObject("УникальныйИдентификатор", СтрИдент))) тогда НовыйПользователь = Соединение.Справочники.Пользователи.СоздатьЭлемент(); НовыйПользователь.Наименование = Справочники.Пользователи.НайтиПоКоду("00-0000313").Наименование; НовыйПользователь.ФизическоеЛицо = Справочники.Пользователи.НайтиПоКоду("00-0000313").ФизическоеЛицо; НовыйПользователь.Записать();КонецЕсли;

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

Рис.1 Внешнее соединение
Рис.1 Внешнее соединение

Соединение..;ПеременнаяИзФункции = Соединение..;

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

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