Ошибка при вызове конструктора comobject не найден указанный модуль

Содержание:

1. Почему может возникнуть ошибка при вызове конструктора (COM-объект 1С)?

2. С помощью чего можно исправить ошибку при вызове конструктора (COM-объект 1С)?

3. Параметры при вызове конструктора (COM-объект 1С), которые регистрируют компоненты строки кода перед регистрируемым dll-файлом    

1.      Почему может возникнуть ошибка при вызове конструктора (COM-объект 1С)?

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

Сегодня мы разберем одну из ошибок, которые появляются при работе с базой, а именно ошибку при вызове конструктора (COM-объект 1С).

Ситуацию такую, мы можем наблюдать при загрузке с Excel при использовании (COM-объекта 1С), при обмене между базами. Ситуаций, когда возникает данное сообщение с возникшей проблемой довольно много при работе с программой.

Как правило, данная ошибка возникает из-за того, что при установке платформы1С не произошла автоматическая регистрация 64-х разрядной компоненты, которая отвечает за использование COM-соединения 1С 8.3. А почему это произошло, спросите? Все очень просто и в то же время сложно, если не знаешь, в чем все ядро проблемы. А причина в том, что те, у кого выдаются такие ошибки, используют 32(86) – разрядную операционную систему и ставят вместо платформы необходимой разрядности их системы, платформу 1С предназначенную для совсем другой системы.   

2. С помощью чего можно исправить ошибку при вызове конструктора (COM-объект 1С)?

Исправить данную ошибку, довольно легко. Для этого необходимо всего лишь зарегистрировать библиотеку dll в реестре при помощи командной строки или программы PowerShell, в зависимости от того, что любите использовать, и команды regsvr32.

Для того чтобы выполнить команду, достаточно будет в строке написать такой текст команды «regsvr32 «C:Program Files1cv88.3.ХХ.ХХХХbincomcntr.dll»». Вместо «ХХ.ХХХХ» необходимо указать необходимый релиз платформы, библиотеку которой, необходимо зарегистрировать в реестре системы.

Если все выполнено правильно и регистрация произошла успешно, то должно выдать сообщение, как на скриншоте, об успешной регистрации библиотеки.

Администратор: Командная строка   

3. Параметры при вызове конструктора (COM-объект 1С), которые регистрируют компоненты строки кода перед регистрируемым dll-файлом

Также есть некоторые особенности команды, которая регистрирует компоненты.

На данный момент я знаю только 4 параметра (которые при написании строки кода указываются перед регистрируемым dll-файлом):

·        /u — параметр, отменяет регистрацию

·        /i — параметр, который позволяет при необходимости, в зависимости от библиотеки.

·        /n —параметр используется только для установки компоненты 1С, в основном пишется вместе с предыдущим (/I);

·        /s – возможность отключить все сообщения при регистрации;

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

Кстати, существуют специальные программы-инструменты, которые помогают регистрировать компоненты, без знания команд и утилит администрирования, зарегистрировать библиотеку и продолжить работать дальше.

Таких программ достаточно много и писать, какое-то одно название смысла нет.

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

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

Олег Мороз

В этой статье речь пойдет об ошибках в COM-соединениях. Один из вариантов ошибки –
это «Ошибка при вызове конструктора (COMObject):
-2147221164(0x80040154): Класс не зарегистрирован…»
. Бывают и другие варианты
сообщений, все я перечислять не буду, в большинстве случаев — это означает, что
при установке платформы компонента comcntr.dll не смогла зарегистрироваться
автоматически.
COM — соединения используются в обменах между конфигурациями.

У меня в готовых решениях есть обработка
загрузки сотрудников из ЗУП, в которой тоже используется
COM — соединение и у
пользователей тоже может появиться ошибка. В случае с моей обработкой, при
проверке соединения, может появиться сообщение, что невозможно установить
соединение с конфигурацией ЗУП.  Это
может произойти, если Вы неправильно указали настройки подключения, неправильно
настроены права пользователя, через которого Вы подключаетесь или чаще всего – проблема
в компоненте comcntr.dll, которая при смене платформы автоматически не
зарегистрировалась. Вот и рассмотрим, как ее зарегистрировать вручную.

Первое что нужно сделать, это запустить
командную строку от имени администратора.

В командной строке Windows набираете cmd, в
писке выбора появится программа с таким названием, устанавливаете курсор на эту
программу и выбираете из контекстного меню «Запуск под администратором» (см.
картинку ниже).

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

Затем ввести команду (можно двумя способами):

1.     
regsvr32
«C:Program Files (x86)1cv8[
версия платформы]bincomcntr.dll»

2.     
C:Program
Files (x86)1cv8[
версия платформы]bin>regsvr32 comcntr.dll

Прежде чем ввести эти команды нужно
переместиться по каталогам. Допустим, при запуске командной строки появляется
совсем другой каталог, пример можно увидеть на картинке ниже.

командная строка

Для смены каталога нужно написать cd, после которого установить пробел, а
затем указать тот путь, который нам нужен, например
C:Program Files (x86)1cv8[версия платформы]bin, затем после указания пути к каталогу нажимаете Enter. Смотрите пример смены каталога на
картинке ниже.

смена каталога в cmd

Вот теперь
рядом с каталогом можно ввести
regsvr32 comcntr.dll, нажать Enter и
зарегистрировать компоненту (смотрите пример на картинке ниже).

запуск regsvr3

Если все
сделали правильно, то получите сообщение (см. картинку ниже).

успешное выполнение регистрации компоненты comcntr.dll

Если компоненту не удалось
зарегистрировать, проверьте как вы запустили командную строку, возможно, что
забыли запустить от имени администратора. Если все в порядке, то нужно отключить
службу агента сервера 1С:Предприятия и все программы, использующие эту DLL. 

После сообщения об успешной регистрации,
можно вновь запустить обмен или обработку, с которой у вас возникли проблемы.  

Я
   Конфигуратор1с

24.03.11 — 12:07

Пытаюсь из одной базы законектится к другой

Написал

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

   Соединение = Com.Connect(«Srvr=server;Ref=test;»);

на первой же строке пишет

{Форма.Форма.Форма(3)}: Ошибка при вызове конструктора (COMObject)

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

по причине:

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

   sorokl

1 — 24.03.11 — 12:12

Не знаю как для 8.2, а для 8.1 было так
Соед = Новый COMObject(«V81.Application»);

   Конфигуратор1с

2 — 24.03.11 — 12:17

(1) на Соед = Новый COMObject(«V82.Application»); тоже ругается.

   бомболюк

3 — 24.03.11 — 12:20

А 8.2 то стоит на том компе, на котором сие запускаешь?

   Rebelx

4 — 24.03.11 — 12:20

а 8.2 стоит?

   GenV

5 — 24.03.11 — 12:21

(0) выполни regsvr32 %Каталог BIN 1C 8.2%comcntr.dll

   Конфигуратор1с

6 — 24.03.11 — 12:21

Так я из 82 запускаю 82. Естественно оно стоит там.

   бомболюк

7 — 24.03.11 — 12:25

тогда поищи в реестре строку «V82.COMConnector», и если есть то я хз, но может каких нить прав не хватает

   Конфигуратор1с

8 — 24.03.11 — 12:26

(5) Ошибка при выполнении — LoadLibrary(«%Каталог»)  —  Не найден указанный модуль

   Sergey_KR

9 — 24.03.11 — 12:26

V8 = Новый COMОбъект(«V82.ComConnector»);

        Попытка
        база = V8.Connect(«Srvr=имяСервера;Ref=имяБазы;Usr=логин;Pwd=пароль»);
    Исключение
        Предупреждение(«База данных не открыта!!!»);
        Возврат;
    КонецПопытки;

   Конфигуратор1с

10 — 24.03.11 — 12:27

та я щас наверное 8.2 на компе переставлю
. А то пишет при открытии предприятия в одной базе — не найден клас

   GenV

11 — 24.03.11 — 12:30

(8) Ну, так ищи библиотечку :) Она отвечает за твой объект.

   GenV

12 — 24.03.11 — 12:45

11+ Только дошло: надеюсь додумался %Каталог BIN 1C 8.2% заменить на реальный путь?

  

Конфигуратор1с

13 — 24.03.11 — 13:08

(12) если честно — со второго раза))).
Вообщем таки перебиваю 1сину — на других компах работает(((. Значит глюки у меня на машине

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

  1. 13.11.2018, 09:23

    #31

    Akbar11 вне форума


    Пришел за помощью


    Цитата Сообщение от avm3110
    Посмотреть сообщение

    А сколько есть попыток угадать какую именно библиотеку ставил «2 раза»? Где ставил (на клиенте или на сервере)? под какими правами (пользователя или админа)?

    Да и по синтаксису… У тебя в диагностике:

    Что явно указывает на ошибку — «лишняя запятая». Параметр «Excel.Application» должен быть

    первым :mad:
    правильно:
    ExcelApplication = Новый COMObject(«Excel.Application»);

    Теперь ошибка немного другая

    {ВнешняяОбработка.Загрузка ВITIL.Форма.Форма.Форма(123)}: Ошибка при вызове конструктора (COMObject)
    ExcelApplication = Новый COMObject(«Excel.Application»);
    по причине:
    -2147024891(0x80070005): Отказано в доступе.


  2. 13.11.2018, 12:13

    #32

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от Akbar11
    Посмотреть сообщение

    Регистрировал библиотеку на клиенте, под администратором. Той платформы которую запускаю

    Продолжаю занудно. Какую библиотеку регистрируете? Какой командой? У вас база файловая или клиент-сервер?
    Опишите поподробнее — как именно регистрируете «под администратором».


  3. 14.11.2018, 06:04

    #33

    Akbar11 вне форума


    Пришел за помощью


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от avm3110
    Посмотреть сообщение

    Продолжаю занудно. Какую библиотеку регистрируете? Какой командой? У вас база файловая или клиент-сервер?
    Опишите поподробнее — как именно регистрируете «под администратором».

    Регистрация библиотеки командой regsvr32 «C:Program Files1cv88.3.10.2466bincomcntr.dll»
    Клиент — сервер
    Процес, нажимаю вин + Q, пишу командная строка строка, контекстное меню запустить от имени админа, запускаю, Логин + пароль и регистрирую библиотеку


  4. 14.11.2018, 07:05

    #34

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от Akbar11
    Посмотреть сообщение

    Регистрация библиотеки командой regsvr32 «C:Program Files1cv88.3.10.2466bincomcntr.dll»
    Клиент — сервер
    Процес, нажимаю вин + Q, пишу командная строка строка, контекстное меню запустить от имени админа, запускаю, Логин + пароль и регистрирую библиотеку

    Мдя-я-я… все как в анекдоте…
    «Пьяный ходит вокруг фонаря ночью и о чем-то материться. Прохожий хочет помочь и участливо спрашивает в чем дело.
    Да я ключи потерял и уже полчаса не могу найти — следует ответ.
    прохожий оглядывает место под фонарем и удивляется. Да тут же ровный асфальт, сухо и отлично видно что ключей тут нет. Ты уверен что именно тут потерял?
    Да нет.. потерял я в грязной луже, вон там в подворотне. Но там же очень темно искать и очень грязно и очень мокро — поэтому я ищу именно тут».

    Уважаемый… У Вас диагностика «не зарегистрирован класс Excel.Application». Ну и что же вы хотите добиться «упорством достойного лучшего применения» регистрируя библиотеку 1с предприятия???? :mad:


  5. Пользователь сказал cпасибо:


  6. 14.11.2018, 07:10

    #35

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от Akbar11
    Посмотреть сообщение

    Теперь ошибка немного другая
    {ВнешняяОбработка.Загрузка ВITIL.Форма.Форма.Форма(123)}: Ошибка при вызове конструктора (COMObject)
    ExcelApplication = Новый COMObject(«Excel.Application»);
    по причине:
    -2147024891(0x80070005): Отказано в доступе.

    А эта ошибка показывает, что пользователю под которым выполняется строка
    ExcelApplication = Новый COMObject(«Excel.Application»);
    нет прав на создание ком-объекта.

    У вас база клиент-серверная или файловая? Для файловой запустите 1с с правами администратора и попробуйте выполнить внешнюю обработку под админом с полными правами и правами администрирования.


  7. 14.11.2018, 08:14

    #36

    Akbar11 вне форума


    Пришел за помощью


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от avm3110
    Посмотреть сообщение

    А эта ошибка показывает, что пользователю под которым выполняется строка
    ExcelApplication = Новый COMObject(«Excel.Application»);
    нет прав на создание ком-объекта.

    У вас база клиент-серверная или файловая? Для файловой запустите 1с с правами администратора и попробуйте выполнить внешнюю обработку под админом с полными правами и правами администрирования.

    В файловой все работает, даже не под админимон


  8. 14.11.2018, 13:33

    #37

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от Akbar11
    Посмотреть сообщение

    В файловой все работает, даже не под админимон

    Поднимите файловую на сервере и там попробуйте.

    Если интерактивно в файловой будет работать, а в запущенном клиенте на сервере в клиент-сервере — нет. нужно смотреть права пользователя под которым работает 1С предприятие. А есть еще ряд настоек которые нужно будет проверять.

    Пришлите вначале результаты этого тестирования


  9. 27.11.2018, 03:06

    #38

    Akbar11 вне форума


    Пришел за помощью


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от avm3110
    Посмотреть сообщение

    Поднимите файловую на сервере и там попробуйте.

    Если интерактивно в файловой будет работать, а в запущенном клиенте на сервере в клиент-сервере — нет. нужно смотреть права пользователя под которым работает 1С предприятие. А есть еще ряд настоек которые нужно будет проверять.

    Пришлите вначале результаты этого тестирования

    Здравствуйте. В файловой на сервере все работает

    Последний раз редактировалось Akbar11; 27.11.2018 в 03:23.


  10. 27.11.2018, 03:26

    #39

    Akbar11 вне форума


    Пришел за помощью


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    На сервере ошибка

    {ВнешняяОбработка.Загрузка ВITIL.Форма.Форма.Форма(123)}: Ошибка при вызове конструктора (COMObject)
    ExcelApplication = Новый COMObject(«Excel.Application»);
    по причине:
    -2147467262(0x80004002): Интерфейс не поддерживается


  11. 27.11.2018, 07:59

    #40

    avm3110 вне форума


    Гордость форума PRO


    По умолчанию Re: Ошибка при вызове конструктора (COMObject)

    Цитата Сообщение от Akbar11
    Посмотреть сообщение

    В файловой на сервере все работает
    На сервере ошибка

    ну е-е-е-е… еще раз.. выше уже писал… Если на одном и том же компе одна и та же база поднята в файловом режиме, а затем в клиент-серверном (когда и сервер и клиент это один и тот же ком). И при этом на файловом «все работает», а на клиент-сервере подобная ошибка — следовательно проблема в правах под которым работает база.

    При файл серверном — это права пользователя под которым идет запуск базы, а на клиент сервере это права пользователя под которым крутиться сервер 1С предприятия.

    Решение — смотреть и фиксить эти права. Например как описано тут: — http://buh.ruboard.ru/public/196323/


Похожие темы

  1. Ответов: 1

    Последнее сообщение: 08.06.2017, 00:12

  2. Ответов: 9

    Последнее сообщение: 16.04.2014, 12:50

  3. Ответов: 0

    Последнее сообщение: 27.02.2014, 22:04

  4. Ответов: 2

    Последнее сообщение: 12.08.2013, 13:34

  5. Ответов: 1

    Последнее сообщение: 27.06.2013, 19:33

Социальные закладки

Социальные закладки


Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
  • BB коды Вкл.
  • Смайлы Вкл.
  • [IMG] код Вкл.
  • [VIDEO] код Вкл.
  • HTML код Выкл.

Правила форума

Ошибка при вызове конструктора (COMObject) по причине: Интерфейс не поддерживается

Ошибка происходит при попытке загрузить из Excel в 1С, когда код обработчика выполняется не на клиенте, а на сервере и в большинстве случаев текст ошибки говорит об отсутствии прав у пользователя сервера 1С.

Быстрый переход

  • Особенности
  • Устранение:
    • Может оказаться, что  «Microsoft Excel Application» отсутствует в списке, в данном случае
  • Заключение

Особенности

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

Убедиться в причине ошибки возможно, если посмотреть логи системы.

Устранение:

  • на сервере убиваем excel (taskkill /im excel.exe /f)
  • открываем оснастку «Службы компонентов» (Пуск->Администрирование->Службы компонентов)
  • в ней раскрываем ветку Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM
  • справа в списке находим Microsoft Excel Application, открываем Свойства, вкладка Удостоверение, выбираем пользователя с администраторскими правами, ОК.

Может оказаться, что  «Microsoft Excel Application» отсутствует в списке, в данном случае

  1. Запускаем REGEDIT
  2. Открываем ветку ComputerHKEY_CLASSES_ROOTAppIDEXCEL.EXE, если ее нет, то создаем
  3. Создаем в ней строковый параметр AppID  = {00020812-0000-0000-C000-000000000046}
  4. Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть  32 битные компоненты.
  5. После этого в Component Services должен появиться «Microsoft Excel Application»

Чтобы решить эту проблему, я включил пользователя USRV82, под которым запускается сервер приложений 1С Предприятия 8.3, в группу Distributed COM Users, но ошибка сразу не ушла, потребовалась перезагрузка.

Для правки использовалась оснастка Локальные пользователи и группы (lusrmgr.msc) — это инструмент, предназначенный для управления локальными пользователями и группами.

Локальный пользователь или группа — это учетная запись, которой могут быть предоставлены разрешения и права на вашем компьютере.

Осложняло проблему то, что ошибка плавала: периодически выходила, либо в момент создания объекта, либо уже в момент вызова методов excel-application.

Так что нельзя однозначно сказать, что же решило проблему.

Заключение

В большинстве случаев уйти от дополнительной настройки операционной системы возможно,  если использовать вызова Com-Объекта на клиенте. При правильной установке объектов они работают даже при различных по битности 1с и Excel, OS.

В моем же случае клиентские компьютеры работали на Ubuntu, поэтому вся обработка перенесена на сервер.

Бывает такое: вы прописываете для компонента пользователя и пароль.

Затем через некоторое время меняете пароль и компонент перестает работать: выходит такая же ошибка «Интерфейс не поддерживается». Следует просто вбить новый пароль.

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

Ошибка при вызове конструктора (COMObject) COMConnector = Новый COMObject(ИмяCOMСоединителя()); // «V82.COMConnector» по причине: -2147221164(0x80040154): Класс не зарегистрирован

Описание ошибки:
Встретил ошибку при настройке выполнении обмена между УТ 11.1 и БП 2.0 после обновления платформы до версии 8.3

Найденные решения:

Столкнулся с ошибкой после обновленя платформы до версии 1С: Предприятие 8.3.5.10.68 с версии 8.2. При этом уже был и работал односторонний обмен из конфигурации 1С: Управление торговлей, редакция 11.1, в конфигурацию 1С: Бухгалтерия предприятия, редакция 2.0. Непосредственно возникает в базе бухгалтерии при попытке выполнить обмен или проверить параметры соединения между базами:
 Ошибка при установке подключения ко второй информационной базе: Не удалось подключится к другой программе: {ОбщийМодуль.ОбщегоНазначения.Модуль(8738)}: Ошибка при вызове конструктора (COMObject)
        COMConnector = Новый COMObject(ИмяCOMСоединителя()); // «V82.COMConnector»
по причине:
-2147221164(0x80040154): Класс не зарегистрирован
 

 После недолгих размышлений и анализа кода места возникновения ошибки было установлено, что системный администратор при установке сервера 1С: Предприятия не установил из пакета установки COM-соединение. Повторная установка c установкой COM-соединения решила проблему.

Ошибка при вызове конструктора (COMObject) COMConnector = Новый COMObject(ИмяCOMСоединителя()); // "V82.COMConnector" по причине: -2147221164(0x80040154): Класс не зарегистрирован

При этом отмечено, что при настройке параметров соединения между базами при непосредственном подключении ко второй базе уже в версиях Управление торговлей 11.1.7.60 и Бухгалтерия предприятия 2.0.64.2 не указывается версия платформы, как это было раньше (не могу сказать, с каких релизов произошло это изменение, точнее отказ от части функционала), т.е. если проанализировать коду то считается, что по умолчанию обе базы должны работать на одной и той же версии платформы.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

27-09-2014

Журавлев А.С.
(Сайт www.azhur-c.ru)

Алексей Герзанов aka Gerzoid 11.12.2022 2 мин

Ошибка 2147221005 (0x800401F3) при обновлении конфигурации на сервере

После установки новой версии платформы на сервер, я столкнулся с ошибкой вызова конструктора (COMObject) при обновлении конфигурации.

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

Текст ошибки при обновлении конфигурации на сервере

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

Раньше я регистрировал библиотеку вручную:

  1. Нажимаем кнопки Win + R.
  2. В окне вводим команду:
    regsvr32 "C:Program Files1cv88.3.xx.xxxxbincomcntr.dll"
    
  3. Нажимаем Ок.

Но в текущей ситуации я получал ошибку:

Ошибка 2147221005 (0x800401F3) при обновлении конфигурации на сервере

Текст ошибки при регистрации comcntr.dll

Не удалось загрузить модуль “comcntr.dll». Проверьте, что двоичный файл хранится на указанном пути или запустите отладку, чтобы диагностировать проблемы с  этим двоичным файлом или зависимыми DLL-файлами.

Не найден указанный модуль.

Поэтому предлагаю надежный и главное легкий способ регистрации библиотеки comcntr.dll:

  1. Откройте каталог с установленной платформой C:Program Files1cv88.3.xx.xxxxbin. В директории найдите файл RegMSC.cmd (он регистрирует утилиту администрирования сервера).
  2. Ошибка 2147221005 (0x800401F3) при обновлении конфигурации на сервере

  3. Щелкните правой кнопкой мыши на файле и выберите Изменить.

    Ошибка 2147221005 (0x800401F3) при обновлении конфигурации на сервере

  4. Замените в тексте слово radmin.dll на comcntr.dll.

    Ошибка 2147221005 (0x800401F3) при обновлении конфигурации на сервере

  5. Сохраните наш новый файл в каталог платформы, все в той же папке C:Program Files1cv88.3.xx.xxxxbin, назвав его как угодно, например, RegCOM.cmd и запустите его от имени администратора.

    Или можете скачать файл RegCOM.cmd с нашего сайта, переместить в каталог C:Program Files1cv88.3.xx.xxxxbin и запустить от имени администратора.

    Ошибка 2147221005 (0x800401F3) при обновлении конфигурации на сервере

  6. Библиотека будет успешно зарегистрирована.

    Ошибка 2147221005 (0x800401F3) при обновлении конфигурации на сервере

  7. Повторите попытку обновления конфигурации.

    Ошибка 2147221005 (0x800401F3) при обновлении конфигурации на сервере

Алексей Герзанов aka Gerzoid

Алекс Гезанов

Работаю в сервисном центре по ремонту и обслуживанию бытовой техники. За более чем 10 лет трудовой деятельности, я сталкивался с решением большого количества проблем в работе ОС Windows, периферийных устройств, бытовой техники, игровых консолей Playstation и т. д.

Рисунок 1 – Ошибка «Не найден указанный модуль»

Данная ошибка может свидетельствовать о том, что библиотека 1С «comcntr.dll» не установлена на компьютере пользователя. В этом случае необходимо установить основные компоненты «1С:Предприятие» (см. Рисунок 2).

Рисунок 2 – Установка основных компонентов 1С

Также данная ошибка возникнет, если эта библиотека не зарегистрирована в реестре Windows. Такая ситуация может возникнуть при переустановке платформы 1С. Регистрация библиотеки можно осуществить командной строкой: regsvr32 «C:Program Files (x86)1cv88.X.X.XXXXbincomcntr.dll»;, где 8.X.X.XXXX — версия установленной платформы (например regsvr32 «C:Program Files (x86)1cv88.3.5.1119bincomcntr.dll»).

Как правило, ошибка возникает при фоновом обмене данными между базами 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. Как устранить ошибку -2147221005(0x800401F3) в 1С?
  2. Причины
  3. Как исправить ошибку -2147221005(0x800401F3)?
  4. Регистрация объектов
  5. Отказ от устаревших объектов
  6. 2147221005(0x800401F3): Недопустимая строка с указанием класса — что делать?
  7. Суть и причины дисфункции
  8. Обновите вашу конфигурацию 1С до актуальной версии
  9. Запускайте 1С с правами админа
  10. Измените код программы
  11. Зарегистрируйте в системе библиотеку comcntr.dll
  12. Проверьте наличие установленного в системе Excel
  13. Используйте специализированные форумы 1С
  14. Заключение
  15. COMОбъект: -2147221005(0x800401F3): Недопустимая строка с указанием класса
  16. Ошибка -2147221005(0x800401F3): Недопустимая строка с указанием класса
  17. Подготовительные действия
  18. Подходы к решению
  19. Ошибка при вызове конструктора (COMОбъект) -2147221005(0x800401F3)

Ошибка -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С. За редкими исключениями все должно работать стабильно. Мы же ожидаем, что вы напишете – удалось ли решить проблему и что было сделано.

Источник

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

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

Суть и причины дисфункции

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C:WindowsSysWOW64regsvr32 «c:Program Files(x86)1cv88.3.12.1469bincomcntr.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С.

Источник

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

Все же, в какой ветке реестра Windows прописывается регистрация платформы?
(36) Статью в (22) читал, но по другому поводу: Альфа-Авто обычно ведет Com-обмены с УПП/КА1. Когда поддержка КА1 кончилась, создали базу ERP/КА2, но она потребовала более высокую версию платформы. С OLE-обменом возникли проблемы: https://i.ibb.co/pdrH9Wy/COM.jpg. Меняю версию зарегистрированной платформы, тогда нормально. Даже функции написал:

Но это только для пользователей с административными правами, пришлось от них отказаться. А метод COM (не OLE) нормально работает. Нашел на http://catalog.mista.ru/public/1042208/ метод открытия объекта по ссылке в другой базе (подобно OLE), написал:

— указывает необходимость перехода по ссылке. Поддерживаются ссылки формата e1c:
Если указана внешняя ссылка — выполняется поиск запущенного клиентского приложения с той же строкой соединения, которая указана в параметре. В найденном клиентском приложении не должно быть открыто модальное или блокирующее окно. После этого выполняется попытка перехода по локальной ссылке из исходной навигационной ссылки и активизируется основное окно приложения. В случае неудачи клиентское приложение продолжает работу. Если исходная навигационная ссылка не содержит локальной ссылки (содержит только адрес информационной базы), то попытка перехода не выполняется, активируется основное окно найденного клиентского приложения.
Если подходящего клиентского приложения не найдено, строка соединения определяется из параметра командной строки /URL.
Если указана локальная ссылка — клиентское приложение запускается в общем порядке. После запуска выполнится попытка перехода по переданной локальной ссылке.
Для ссылок формата http(s) всегда запускается (или находится активный) тонкий клиент.

© ООО «1С-Софт», 1996-2019. Все права защищены.

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Ошибка при вызове конструктора (COMОбъект) -2147221005(0x800401F3)

Добрый день уважаемые форумчане.
Прошу помощи у гуру.

Есть виртуалка созданная на Hyper-v. Пользователи сидят под RDP.
на ней крутиться 1с Бухгалтерия ред. 3.0
есть обработка МодульОбменаСБанкомV3 от банка «ОТКРЫТИЕ»
Проблема что при выполнении выгрузки в банк вылетает ошибка

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

при этом на локальном пк обработка работает без ошибок.
а на этой вируалке вылетает ошибка из под оперционки Win Server 2012 и Win 10.

1 Администрирование — Службы компонентов – Компьютеры – Мой компьютер – Приложения COM+ — Создать приложение – Создать новое приложение – вводим имя «V82.COMConnector»(переключатель «Серверное приложение») – Указанный пользователь (Администратор)
2 В появившейся ветке V82COMConnector – подветка Компоненты – создание нового компонента – Установка новых компонентов — bincomcntr.dll
3 Правой кнопкой по ветке V82COMConnector – Свойства – Безопасность – Снял галку «Принудительная проверка доступа для приложений» — Поставил галку «Применить политику программных ограничений» — Уровень ограничений «Неограниченный»

Еще в профилях пользователей C:Documents and Settings….Application Data1C1CEStart1CEStart.cfg изменяем параметр UseHWLicenses=0 на UseHWLicenses=1
—————————————————————————————

ничего не помогло . Отказаться от RDP сервера не можем.

В чем может быть трабл ? как его побороть ?

Источник

83.COMConnector класс не зарегистрирован

Случается, что при попытке подключения к информационной базе через com-соединение возникает ошибка при вызове конструктора (COMОбъект): «Класс не зарегистрирован» или «Недопустимая строка с указанием класса».

Первым делом необходимо зарегистрировать DLL в системе

Regsvr32 «C:Program Files1cv88.3.7.1776bincomcntr.dll»

В случае, если не помогает — создаём коннектор руками:

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

•Переходим к ветке Компьютеры — Мой компьютер — Приложения COM+.

•В контекстном меню выбираем Создать — Приложение. Откроется Мастер установки приложений COM+.

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

•Выбираем «Создать новое приложение».

•Вводим имя «V83COMConnector». Устанавливаем переключатель «Серверное приложение». Нажимаем «Далее».

•На следующем шаге устанавливаем «Текущий пользователь». Нажимаем «Далее».

•Нажимаем «Готово».

•В появившейся ветке V83COMConnector переходим к подветке Компоненты.

•В контекстном меню выбираем Создать — Компонент. Откроется Мастер установки компонентов COM+.

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

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

•Выбираем файл <каталог 1С>bincomcntr.dll.

•Нажимаем «Далее» — «Готово».

•Переходим к ветке V83COMConnector.

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

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

•Нажимаем «ОК».

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

Бывало так, что вместо Текущий пользователь нужно прописать USR1CV8

Mikhail Volkov

12.11.20 — 15:11

Перестало работать OLE-соединение «V83.Application»: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса. Тема заезженная, везде предлагают выполнить перерегистрацию платформы. Стоит 8.3.10.2466 х64, но клиентская часть 32-разрядная, делаю (под админом): regsvr32 «c:Program Files1cv88.3.10.2466bincomcntr.dll» (или надо regsvr32 «c:Program Files (x86)1cv88.3.10.2466bincomcntr.dll»?). Дальше надо сервер перезагрузить, или необязательно?

Читал статьи Ошибка V82.COMConnector на сервере 64. Решение проблемы (http://catalog.mista.ru/1c/articles/197627/) и Решение проблемы «Недопустимая строка

с указанием класса (https://efsaver.ru/docs/reshenie-problemy-nedopustimaya-stroka-s-ukazaniem-klassa.html), кое-что изменил/добавил в приложение COM+ V8COMConnector. Чтобы изменения вступили в силу, как перезапустить?

Mikhail Volkov

1 — 12.11.20 — 15:36

Службы компонентов/Действие/Пуск?

Kigo_Kigo

2 — 12.11.20 — 15:40

не помню что конкретно сделал, но статья с инфостарта не помогла, по моему привел разрядность к одному знаменателю

Kigo_Kigo

3 — 12.11.20 — 15:41

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

ДенисЧ

4 — 12.11.20 — 15:42

Взять regsvr32 не из system, а из SysWOW ?

Mikhail Volkov

5 — 12.11.20 — 15:50

Не помогло… Службу Агент сервера 1С:Предприятия 8.3 (x86-64) перезапустить, выкинет пользователей?

(1) У Альфа-Авто должна быть 32-разрядная клиентская часть, иначе торговое оборудование не работает.

(4) Полностью C:WindowsSysWOW64regsvr32 «c:Program Files1cv88.3.10.2466bincomcntr.dll»? Не Program Files (x86)?

ДенисЧ

6 — 12.11.20 — 15:52

(5) Если SysWOW, то (x86)

И наоборот

Kigo_Kigo

7 — 12.11.20 — 15:52

(5) как ты пытаешься вызвать х64 ком объект с х32 разрядного клиента? ответ, никак, регистрируй на клиенте х32 компненту

Mikhail Volkov

8 — 12.11.20 — 15:53

(4) Чтоб в силу вступило, что сделать?

Kigo_Kigo

9 — 12.11.20 — 15:55

(8) Ничего, так должно все работать, у тебя из сабжа не создается ком объект, потому что он ее не видит, а точнее видит другой разрядности, это не проблема подключений к базе через ком(сервер х64,х32, не важно), это проблема создания объекта как такого

Kassern

10 — 12.11.20 — 15:56

(0) делай обертку через службы компонентов для библиотеки comcntr.dll

Mikhail Volkov

11 — 12.11.20 — 16:09

(9) Дык, как правильно ее регистрировать?

(10) Вроде все сделано. Описание: 1CV83 COM Connector Class, DLL: C:Program Files1cv88.3.10.2466bincomcntr.dll

Kigo_Kigo

12 — 12.11.20 — 16:22

(11) а у тебя точно регистрация проходит?

Kigo_Kigo

13 — 12.11.20 — 16:24

И так, делает reg.bat файл , вставляем туда строку

C:WindowsSystem32regsvr32.exe «C:Program Files1cv88.3.15.1830bincomcntr.dll»

pause

сохраняем, запускаем от имени администратора, пробуй, скрин о регистрации сюда

Kigo_Kigo

14 — 12.11.20 — 16:25

(13) Пути поменять на свои, лучше полные

Kigo_Kigo

15 — 12.11.20 — 16:26

для х32 путь в C:Program Files (x86)

arsik

16 — 12.11.20 — 16:31

Mikhail Volkov

17 — 12.11.20 — 16:55

(13) Успешное выполнение: https://ibb.co/z5h2fHc. Ошибка осталась. 1С надо перезапускать?

(16) Что им должен увидеть?

Вроде дело не в регистрации, в чем-то другом… Может служба какая-то отвалилась… Какая? Работало же раньше…

Kigo_Kigo

18 — 12.11.20 — 17:01

1С конечно надо перезапустить

Mikhail Volkov

19 — 12.11.20 — 17:03

(18) Не помогло.

ZDenis

20 — 12.11.20 — 17:51

(19) У тебя com соединение на сервере ведь создается, причем тут клиентская часть. Вот на сервере и регистрируй dll. Причем, если сервер 64х, то и dll нужно соответствующую. Сперва лучше отмени уже сделанную регистрацию, чтобы в реестре путаницы не было.

МимохожийОднако

21 — 12.11.20 — 17:59

В БСП и типовых конфигурациях есть функция ЗарегистрироватьCOMСоединитель()

TormozIT

22 — 12.11.20 — 18:14

О да тут похоже все не понимают, что COMСоединитель и OLEAutomation (V8*.Application) — разные вещи и имеют существенные отличия в отношении контроля совместимости версий платформы и способа регистрации.

Кто хочет прокачать теорию, читайте тут все разжевано http://catalog.mista.ru/1c/articles/387577/

Кому нужно решение, в (16) уже дали ссылки — там все сделано очень универсально (как и весь ИР). Картинка на странице описания правда старовата уже. Запускать эту приблуду надо на том компьютере, где будет создаваться COM-объект (COM-клиент).

Mikhail Volkov

23 — 12.11.20 — 19:49

(20) (22) Уже всяко пробовал, в том числе с ключом /u (с отменой регистрации). Другой вариант: переустановить платформу, при этом она зарегистрирует все компоненты заново. Но это крайний вариант. Вроде дело не в регистрации…

Службы компонентов как перезапустить? Хотя сервер перезагрузил (все вышли), не помогло!?

Mikhail Volkov

24 — 12.11.20 — 22:16

Где, в какой ветке реестра Windows прописывается регистрация платформы?

TormozIT

25 — 12.11.20 — 22:43

(23) Если ты пробовал все, что я рекомендовал, то покажи скриншот с COM классами в ИР.

Mikhail Volkov

26 — 13.11.20 — 05:33

(25) Как это сделать? Это с помощью инструментов (16)? У меня их нет.

TormozIT

27 — 13.11.20 — 07:54

(26) Почему у тебя их нет? Что ты делал, чтобы они у тебя появились?

Mikhail Volkov

28 — 13.11.20 — 08:09

(27) Управление COM классами 1С

Просмотр и регистрация COM классов платформы 1С.

Все разрядности

Все типы классов

Все издания платформы

Генерация конфигурационного файла разрешения отладки COM-соединения

Можно указать для каждого класса нужную версию платформы из списка установленных

Пожалуй стоит поставить…

А «Регистрация утилиты администрирования серверов (8.3.10.2466)» — то, нет? Объект: «C:Program Files (x86)1cv88.3.10.2466binRegMSC.cmd» выполнил:  C:Program Files (x86)1cv88.3.10.2466bin>regsvr32 /n /i:user radmin.dll — Успешное выполнение DllInstall в radmin.dll, но ошибка осталась.

TormozIT

29 — 13.11.20 — 08:14

(28) Поздравляю. Ты сделал первый шаг в правильном направлении — осознал, что «стоит поставить». Представляй, что я крепко держу тебя за руку, и потому делай уверенно следующий шаг.

XLife

30 — 13.11.20 — 08:15

«C:Program Files (x86)1cv88.3.10.2466bin1cv8.exe» /regserver

Mikhail Volkov

31 — 13.11.20 — 08:21

(29) Не понял, что скачивать: ИНСТРУМЕНТЫ РАЗРАБОТЧИКА ПОРТАТИВНЫЕ 1С 8.2+ V5.67P или 1С 8.3 V5.67E (1С 8.2 смущает)?

(30) В командной строке (под админом)?

XLife

32 — 13.11.20 — 08:24

(31) да… а потом на всякий случай: regsvr32 «C:Program Files (x86)1cv88.3.10.2466bincomcntr.dll»

МимохожийОднако

33 — 13.11.20 — 08:27

(31) не смущайся. Скачивай

TormozIT

34 — 13.11.20 — 08:31

(31) Там не 8.2, а 8.2+. Качай портативные

Mikhail Volkov

35 — 13.11.20 — 08:33

(32) Сообщений не выдало, процесс OLE-соединения вроде пошел… сразу ошибку (0) не выкинула. О, Подключение выполнено к базе: ‘Srvr=»ANDROMEDA»;Ref=»PATRCA»;’ 13.11.2020 10:27:23 — успех! Посмотрю как в рабочей базе…

TormozIT

36 — 13.11.20 — 08:44

(35) Только это не из-за (32), а из-за (30). Ну хоть кто то здесь знает разницу из (22).

Mikhail Volkov

37 — 13.11.20 — 11:29

Все же, в какой ветке реестра Windows прописывается регистрация платформы?

(36) Статью в (22) читал, но по другому поводу: Альфа-Авто обычно ведет Com-обмены с УПП/КА1. Когда поддержка КА1 кончилась, создали базу ERP/КА2, но она потребовала более высокую версию платформы. С OLE-обменом возникли проблемы: https://i.ibb.co/pdrH9Wy/COM.jpg. Меняю версию зарегистрированной платформы, тогда нормально. Даже функции написал:

// Определяет версию подключаемого приложения, при не соответствии требуемой переключает ее для OLE

// для пользователей с административными правами

Функция ВерсияПодключаемогоПриложения(СтрокаПодключения) Экспорт

    СисИнфо = Новый СистемнаяИнформация;

    ТекущаяВерсия = СисИнфо.ВерсияПриложения;

    Если Найти(ТекущаяВерсия, «8.3») = 0 Тогда

        Возврат ТекущаяВерсия;

    КонецЕсли;

    ТребуемаяВерсия = ?(ПодключенаВысокаяВерсия(СтрокаПодключения), ВысокаяВерсия, ПрежняяВерсия);

    х86 = Не ПодключенаВысокаяВерсия(СтрокаПодключения);

    WshShell = Новый COMОбъект(«WScript.Shell»);    Ключ = «»;

    Значение = ЗначениеКлючаЗарегистрированнойВерсииV83Application(WshShell, Ключ);

    // Перключение версии OLE    

//    Если Не ПустаяСтрока(Значение) И Найти(Значение, ТребуемаяВерсия) = 0 Тогда    // ТекущаяВерсия <> ТребуемаяВерсия

//        Значение = СтрЗаменить(Значение, «Program Files» + ?(х86, «», » (x86)»), «Program Files» + ?(х86, » (x86)», «»));

//        Значение = СтрЗаменить(Значение, ТекущаяВерсия, ТребуемаяВерсия);

//        WshShell.RegWrite(Ключ, Значение);

//        ЗапуститьПриложение(«taskkill.exe /f /im dllhost.exe»,, Истина);

//        Сообщить(«Переключили версию платформы на » + ТребуемаяВерсия, СтатусСообщения.Информация);

//    КонецЕсли;

    Возврат ?(ПустаяСтрока(Значение), ТекущаяВерсия, ТребуемаяВерсия);

КонецФункции // ВерсияПодключаемогоПриложения()

// Переключает на старую версию платформы для OLE-соединения, если она переключена на новую версию

// для пользователей с административными правами

Процедура ЗвершитьПодключениеOLE() Экспорт

    WshShell = Новый COMОбъект(«WScript.Shell»);    Ключ = «»;

    Значение = ЗначениеКлючаЗарегистрированнойВерсииV83Application(WshShell, Ключ);

    Если ПустаяСтрока(Значение) Или Найти(Значение, «Program Files (x86)1cv8» + ПрежняяВерсия) > 0 Тогда

        Возврат;

    КонецЕсли;

    WshShell.RegWrite(Ключ, «C:Program Files (x86)1cv8» + ПрежняяВерсия + «bin1cv8.exe»);

    ЗапуститьПриложение(«taskkill.exe /f /im dllhost.exe»,, Истина);

КонецПроцедуры // ЗвершитьПодключениеOLE()

Функция ЗначениеКлючаЗарегистрированнойВерсииV83Application(WshShell, Ключ) Экспорт

    // значение HKEY_LOCAL_MACHINESOFTWAREClassesCLSID{e92b75e3-2ea1-4fec-b493-cef3ec59fca6}LocalServer32 должно быть C:Program Files1cv88.3.14.1779bin1cv8.exe

    CLSID = «{E92B75E3-2EA1-4FEC-B493-CEF3EC59FCA6}»;

    Ключ  = «HKEY_CLASSES_ROOTWow6432NodeCLSID» + CLSID + «LocalServer32»;

    Значение = «»;

    Попытка

        Значение = WshShell.RegRead(Ключ);

    Исключение

        Сообщить(«Произошла исключительная ситуация (WshShell.RegRead): Неверная ссылка на корень в разделе реестра » + Ключ + » — недостаточно прав на реестр Windows», СтатусСообщения.Внимание);

    КонецПопытки;

    Возврат Значение;

КонецФункции // ЗначениеКлючаЗарегистрированнойВерсииV83Application()

Но это только для пользователей с административными правами, пришлось от них отказаться. А метод COM (не OLE) нормально работает. Нашел на http://catalog.mista.ru/public/1042208/ метод открытия объекта по ссылке в другой базе (подобно OLE), написал:

// Открытие объекта по ссылке в базе ERP/КА2, работающей на более высокой версии платформы

//

Процедура ОткрытьОбъектВБазеВысокойВерсии(Ссылка) Экспорт

    Если обЗначениеНеЗаполнено(Ссылка) Тогда

        Предупреждение(«Объект в » + БазаОрганизации(ОрганизацияТекущегоПодключенияКА()) + «не найден!», 60);

        Возврат;

    КонецЕсли;

    ИмяСервера     = Сред(ОбъектКА.СтрокаСоединенияИнформационнойБазы(), 7, Найти(ОбъектКА.СтрокаСоединенияИнформационнойБазы(), «;Ref=») — 8);    // «andromeda:1641»;

    ИмяБазы         = Сред(ОбъектКА.СтрокаСоединенияИнформационнойБазы(), Найти(ОбъектКА.СтрокаСоединенияИнформационнойБазы(), «;Ref=») + 6, СтрДлина(ОбъектКА.СтрокаСоединенияИнформационнойБазы()) — Найти(ОбъектКА.СтрокаСоединенияИнформационнойБазы(), «;Ref=») — 7);    // «PatrERP»;

    Если Не БазаКАОткрытаПользователем() Тогда

        Предупреждение(«База ‘» + ИмяБазы + «‘ не открыта под пользователем ‘» + СокрЛП(ПараметрыСеанса.Пользователь) + «‘», 60);

        Возврат;

    КонецЕсли;

    Объект = Ссылка.ПолучитьОбъект();

    ТипОбъекта     = СокрЛП(Объект.Метаданные().ПолноеИмя());

    GUID         = ОбъектКА.XMLСтрока(Ссылка.УникальныйИдентификатор());

    НавигационныйGUID = Сред(GUID, 20 ,4) + Сред(GUID, 25, 12) + Сред(GUID, 15, 4) + Сред(GUID, 10, 4) + Сред(GUID, 1, 8);

    ПутьОбъекта  = «e1cib/data/» + ТипОбъекта + «?ref=» + НавигационныйGUID;    

    НазваниеОкна = СокрЛП(ОбъектКА.Константы.ЗаголовокСистемы.Получить());    // «КА2 ИП Патрушева Г.М.»;

    НазваниеОкна = СтрЗаменить(НазваниеОкна, «»»», «»»»»»);

    НазваниеОкна = СтрЗаменить(НазваниеОкна, » «, «»» «»»);

    СерверБаза     = ИмяСервера + «» + ИмяБазы;

    СерверБаза     = «/S»»» «»»» + СерверБаза + «»»» «»»/URL»»» «»»» + ПутьОбъекта;    // после СерверБаза? » /N»»Администратор»» /P»»2001221″

    ПутьКФайлу     = «corp.akitworkspace$1c1с_Архивы»;

    ПолныйПутьКФайлу = ПутьКФайлу + «ОткрытьСсылкуВДругойБазе.exe»;

    ПолныйПутьОткрытияОбъекта = «»»»»»;    // вроде не нужно СтрЗаменить(«c:Program Files1cv8common1cestart.exe ENTERPRISE » + СерверБаза,» «,»»» «»»);

    Файл = Новый Файл(ПолныйПутьКФайлу);

    Если Не Файл.Существует() Тогда

        Сообщить(«Файл: ‘» + ПолныйПутьКФайлу + «‘ не существует.», СтатусСообщения.Информация);

        Возврат;

    КонецЕсли;

    Приложение = ПолныйПутьКФайлу

         + » » + НазваниеОкна

         + » » + ПутьОбъекта

         + » » + СерверБаза

         + » » + ПолныйПутьОткрытияОбъекта;

//    Сообщить(Приложение, СтатусСообщения.Информация);

    ЗапуститьПриложение(Приложение);

КонецПроцедуры // ОткрытьОбъектВБазеВысокойВерсии()

acht

38 — 13.11.20 — 11:40

(37) > ПолныйПутьКФайлу = ПутьКФайлу + «ОткрытьСсылкуВДругойБазе.exe»;

/URL <адрес>

— указывает необходимость перехода по ссылке. Поддерживаются ссылки формата e1c:

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

Если подходящего клиентского приложения не найдено, строка соединения определяется из параметра командной строки /URL.

Если указана локальная ссылка — клиентское приложение запускается в общем порядке. После запуска выполнится попытка перехода по переданной локальной ссылке.

Для ссылок формата http(s) всегда запускается (или находится активный) тонкий клиент.

© ООО «1С-Софт», 1996-2019. Все права защищены.

Mikhail Volkov

39 — 13.11.20 — 11:55

(38) Что-то не понял к чему это, о чем?

Mikhail Volkov

40 — 13.11.20 — 12:42

Не сразу заметил эту (0) ошибку, потому что в ЖР в отборе на вкладке Данные отмечаю лишь объекты заслуживающие внимание (например, по кассе). Тогда ошибки по другим объектам не видны. Можно как-то настроить отбор, чтобы события с ошибками все отображались. А события Информация — только отмеченные на вкладке Данные?

acht

41 — 13.11.20 — 13:13

(39) ОткрытьСсылкуВДругойБазе.exe не нужен

Mikhail Volkov

42 — 13.11.20 — 13:55

  

Mikhail Volkov

43 — 13.11.20 — 17:33

На счет ЖР (40), смотреть либо ошибки, либо отмеченные объекты? Вместе никак?

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

Ошибка недопустимой строки

Содержание

  1. Суть и причины дисфункции
  2. Обновите вашу конфигурацию 1С до актуальной версии
  3. Запускайте 1С с правами админа
  4. Измените код программы
  5. Зарегистрируйте в системе библиотеку comcntr.dll
  6. Проверьте наличие установленного в системе Excel
  7. Используйте специализированные форумы 1С
  8. Заключение

Суть и причины дисфункции

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

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

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

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

Это интересно: ошибка 2147221164 (0x80040154) при регистрации класса.

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

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

Компьютер с символикой 1С на экране

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

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

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

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

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

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

на строку:

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

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

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

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

C:WindowsSysWOW64regsvr32 «c:Program Files(x86)1cv88.3.12.1469bincomcntr.dll»

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

Интересно знать: решение ошибки запроса POST к ресурсу /e1cib/logForm.

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

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

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

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

Читайте также: 1С нарушение целостности системы – как решить.

Заключение

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

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

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

Содержание статьи:

  • 1 Суть и причины «Недопустимая строка с указанием класса»
  • 2 Обновите вашу конфигурацию 1С до актуальной версии
  • 3 Запускайте 1С с правами админа
  • 4 Измените код программы
  • 5 Зарегистрируйте в системе библиотеку comcntr.dll
  • 6 Проверьте наличие установленного в системе Excel
  • 7 Используйте специализированные форумы 1С
  • 8 Заключение

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

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

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

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

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

Это интересно: ошибка 2147221164 (0x80040154) при регистрации класса.

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

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

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

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

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

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

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

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

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

на строку:

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

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

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

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

C:WindowsSysWOW64regsvr32 «c:Program Files(x86)1cv88.3.12.1469bincomcntr.dll»

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

Интересно знать: решение ошибки запроса POST к ресурсу /e1cib/logForm.

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

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

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

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

Читайте также: 1С нарушение целостности системы – как решить.

Заключение

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

Leave a comment

Содержание:

1.     Что такое COM и COM объект 1С

         COM – это объектная модель данных, выстроенная на Майкрософт компоненте, которая является независимой от платформы и распределённой объектной системой. Данная объектная модель служит для создания компонентов в двоичном программном обеспечении, при условии взаимодействия компонентов.

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

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

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

2.     Ошибка вызова конструктора COMОбъекта в 1С

         Ошибка возникает в некоторых случаях, когда бывает, что во время установки системы 1С не регистрируется файл с названием «comcntr.dll», из-за чего работать с COM соединением сервера 1С нельзя ни при каких условиях.

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

3.     Устранение ошибки при вызове конструктора COMОбъект

Ошибка при вызове конструктора COMОбъект в 1С имеет следующее отображение: «2147221164 (0х80040154): Класс не зарегистрирован» либо «Ошибка при вызове конструктора COMОбъект: Недопустимая строка с указанием класса 1С»), вид ошибки представлен на скриншоте ниже:

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

·        Для начала, переходим в режим администратора и запускаем командную строку. Важно обратить внимание, что в командной строке должно быть написано: «C:windowssystem32» (либо 64 в конце, если это 64-х битная версия операционной системы). Получаем, что корректный путь для корневой строки должен выглядеть таким образом:

·        Следующий шаг – это написать команду «regsvr32», она будет выглядеть так: «C:Program Files1cv88.3.ХХ.ХХХХbincomcntr.dll». Стоит отметить, что нужно прописать свой точный номер релиза платформы, а путь к самой библиотеке нужно брать в кавычки, конечный итог продемонстрирован ниже:

После этих действий, ошибка полностью устранена. В скриншотах-примерах была показана версия платформы 1С под номером «8.3.11.2867 х64».

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

Лев Туренко

  

Mikhail Volkov

12.11.20 — 15:11

Перестало работать OLE-соединение «V83.Application»: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса. Тема заезженная, везде предлагают выполнить перерегистрацию платформы. Стоит 8.3.10.2466 х64, но клиентская часть 32-разрядная, делаю (под админом): regsvr32 «c:Program Files1cv88.3.10.2466bincomcntr.dll» (или надо regsvr32 «c:Program Files (x86)1cv88.3.10.2466bincomcntr.dll»?). Дальше надо сервер перезагрузить, или необязательно?

Читал статьи Ошибка V82.COMConnector на сервере 64. Решение проблемы (http://catalog.mista.ru/1c/articles/197627/) и Решение проблемы «Недопустимая строка

с указанием класса (https://efsaver.ru/docs/reshenie-problemy-nedopustimaya-stroka-s-ukazaniem-klassa.html), кое-что изменил/добавил в приложение COM+ V8COMConnector. Чтобы изменения вступили в силу, как перезапустить?

  

Mikhail Volkov

1 — 12.11.20 — 15:36

Службы компонентов/Действие/Пуск?

  

Kigo_Kigo

2 — 12.11.20 — 15:40

не помню что конкретно сделал, но статья с инфостарта не помогла, по моему привел разрядность к одному знаменателю

  

Kigo_Kigo

3 — 12.11.20 — 15:41

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

  

ДенисЧ

4 — 12.11.20 — 15:42

Взять regsvr32 не из system, а из SysWOW ?

  

Mikhail Volkov

5 — 12.11.20 — 15:50

Не помогло… Службу Агент сервера 1С:Предприятия 8.3 (x86-64) перезапустить, выкинет пользователей?

(1) У Альфа-Авто должна быть 32-разрядная клиентская часть, иначе торговое оборудование не работает.

(4) Полностью C:WindowsSysWOW64regsvr32 «c:Program Files1cv88.3.10.2466bincomcntr.dll»? Не Program Files (x86)?

  

ДенисЧ

6 — 12.11.20 — 15:52

(5) Если SysWOW, то (x86)

И наоборот

  

Kigo_Kigo

7 — 12.11.20 — 15:52

(5) как ты пытаешься вызвать х64 ком объект с х32 разрядного клиента? ответ, никак, регистрируй на клиенте х32 компненту

  

Mikhail Volkov

8 — 12.11.20 — 15:53

(4) Чтоб в силу вступило, что сделать?

  

Kigo_Kigo

9 — 12.11.20 — 15:55

(8) Ничего, так должно все работать, у тебя из сабжа не создается ком объект, потому что он ее не видит, а точнее видит другой разрядности, это не проблема подключений к базе через ком(сервер х64,х32, не важно), это проблема создания объекта как такого

  

Kassern

10 — 12.11.20 — 15:56

(0) делай обертку через службы компонентов для библиотеки comcntr.dll

  

Mikhail Volkov

11 — 12.11.20 — 16:09

(9) Дык, как правильно ее регистрировать?

(10) Вроде все сделано. Описание: 1CV83 COM Connector Class, DLL: C:Program Files1cv88.3.10.2466bincomcntr.dll

  

Kigo_Kigo

12 — 12.11.20 — 16:22

(11) а у тебя точно регистрация проходит?

  

Kigo_Kigo

13 — 12.11.20 — 16:24

И так, делает reg.bat файл , вставляем туда строку

C:WindowsSystem32regsvr32.exe «C:Program Files1cv88.3.15.1830bincomcntr.dll»

pause

сохраняем, запускаем от имени администратора, пробуй, скрин о регистрации сюда

  

Kigo_Kigo

14 — 12.11.20 — 16:25

(13) Пути поменять на свои, лучше полные

  

Kigo_Kigo

15 — 12.11.20 — 16:26

для х32 путь в C:Program Files (x86)

  

arsik

16 — 12.11.20 — 16:31

  

Mikhail Volkov

17 — 12.11.20 — 16:55

(13) Успешное выполнение: https://ibb.co/z5h2fHc. Ошибка осталась. 1С надо перезапускать?

(16) Что им должен увидеть?

Вроде дело не в регистрации, в чем-то другом… Может служба какая-то отвалилась… Какая? Работало же раньше…

  

Kigo_Kigo

18 — 12.11.20 — 17:01

1С конечно надо перезапустить

  

Mikhail Volkov

19 — 12.11.20 — 17:03

(18) Не помогло.

  

ZDenis

20 — 12.11.20 — 17:51

(19) У тебя com соединение на сервере ведь создается, причем тут клиентская часть. Вот на сервере и регистрируй dll. Причем, если сервер 64х, то и dll нужно соответствующую. Сперва лучше отмени уже сделанную регистрацию, чтобы в реестре путаницы не было.

  

МимохожийОднако

21 — 12.11.20 — 17:59

В БСП и типовых конфигурациях есть функция ЗарегистрироватьCOMСоединитель()

  

TormozIT

22 — 12.11.20 — 18:14

О да тут похоже все не понимают, что COMСоединитель и OLEAutomation (V8*.Application) — разные вещи и имеют существенные отличия в отношении контроля совместимости версий платформы и способа регистрации.

Кто хочет прокачать теорию, читайте тут все разжевано http://catalog.mista.ru/1c/articles/387577/

Кому нужно решение, в (16) уже дали ссылки — там все сделано очень универсально (как и весь ИР). Картинка на странице описания правда старовата уже. Запускать эту приблуду надо на том компьютере, где будет создаваться COM-объект (COM-клиент).

  

Mikhail Volkov

23 — 12.11.20 — 19:49

(20) (22) Уже всяко пробовал, в том числе с ключом /u (с отменой регистрации). Другой вариант: переустановить платформу, при этом она зарегистрирует все компоненты заново. Но это крайний вариант. Вроде дело не в регистрации…

Службы компонентов как перезапустить? Хотя сервер перезагрузил (все вышли), не помогло!?

  

Mikhail Volkov

24 — 12.11.20 — 22:16

Где, в какой ветке реестра Windows прописывается регистрация платформы?

  

TormozIT

25 — 12.11.20 — 22:43

(23) Если ты пробовал все, что я рекомендовал, то покажи скриншот с COM классами в ИР.

  

Mikhail Volkov

26 — 13.11.20 — 05:33

(25) Как это сделать? Это с помощью инструментов (16)? У меня их нет.

  

TormozIT

27 — 13.11.20 — 07:54

(26) Почему у тебя их нет? Что ты делал, чтобы они у тебя появились?

  

Mikhail Volkov

28 — 13.11.20 — 08:09

(27) Управление COM классами 1С

Просмотр и регистрация COM классов платформы 1С.

Все разрядности

Все типы классов

Все издания платформы

Генерация конфигурационного файла разрешения отладки COM-соединения

Можно указать для каждого класса нужную версию платформы из списка установленных

Пожалуй стоит поставить…

А «Регистрация утилиты администрирования серверов (8.3.10.2466)» — то, нет? Объект: «C:Program Files (x86)1cv88.3.10.2466binRegMSC.cmd» выполнил:  C:Program Files (x86)1cv88.3.10.2466bin>regsvr32 /n /i:user radmin.dll — Успешное выполнение DllInstall в radmin.dll, но ошибка осталась.

  

TormozIT

29 — 13.11.20 — 08:14

(28) Поздравляю. Ты сделал первый шаг в правильном направлении — осознал, что «стоит поставить». Представляй, что я крепко держу тебя за руку, и потому делай уверенно следующий шаг.

  

XLife

30 — 13.11.20 — 08:15

«C:Program Files (x86)1cv88.3.10.2466bin1cv8.exe» /regserver

  

Mikhail Volkov

31 — 13.11.20 — 08:21

(29) Не понял, что скачивать: ИНСТРУМЕНТЫ РАЗРАБОТЧИКА ПОРТАТИВНЫЕ 1С 8.2+ V5.67P или 1С 8.3 V5.67E (1С 8.2 смущает)?

(30) В командной строке (под админом)?

  

XLife

32 — 13.11.20 — 08:24

(31) да… а потом на всякий случай: regsvr32 «C:Program Files (x86)1cv88.3.10.2466bincomcntr.dll»

  

МимохожийОднако

33 — 13.11.20 — 08:27

(31) не смущайся. Скачивай

  

TormozIT

34 — 13.11.20 — 08:31

(31) Там не 8.2, а 8.2+. Качай портативные

  

Mikhail Volkov

35 — 13.11.20 — 08:33

(32) Сообщений не выдало, процесс OLE-соединения вроде пошел… сразу ошибку (0) не выкинула. О, Подключение выполнено к базе: ‘Srvr=»ANDROMEDA»;Ref=»PATRCA»;’ 13.11.2020 10:27:23 — успех! Посмотрю как в рабочей базе…

  

TormozIT

36 — 13.11.20 — 08:44

(35) Только это не из-за (32), а из-за (30). Ну хоть кто то здесь знает разницу из (22).

  

Mikhail Volkov

37 — 13.11.20 — 11:29

Все же, в какой ветке реестра Windows прописывается регистрация платформы?

(36) Статью в (22) читал, но по другому поводу: Альфа-Авто обычно ведет Com-обмены с УПП/КА1. Когда поддержка КА1 кончилась, создали базу ERP/КА2, но она потребовала более высокую версию платформы. С OLE-обменом возникли проблемы: https://i.ibb.co/pdrH9Wy/COM.jpg. Меняю версию зарегистрированной платформы, тогда нормально. Даже функции написал:

// Определяет версию подключаемого приложения, при не соответствии требуемой переключает ее для OLE

// для пользователей с административными правами

Функция ВерсияПодключаемогоПриложения(СтрокаПодключения) Экспорт

    СисИнфо = Новый СистемнаяИнформация;

    ТекущаяВерсия = СисИнфо.ВерсияПриложения;

    Если Найти(ТекущаяВерсия, «8.3») = 0 Тогда

        Возврат ТекущаяВерсия;

    КонецЕсли;

    ТребуемаяВерсия = ?(ПодключенаВысокаяВерсия(СтрокаПодключения), ВысокаяВерсия, ПрежняяВерсия);

    х86 = Не ПодключенаВысокаяВерсия(СтрокаПодключения);

    WshShell = Новый COMОбъект(«WScript.Shell»);    Ключ = «»;

    Значение = ЗначениеКлючаЗарегистрированнойВерсииV83Application(WshShell, Ключ);

    // Перключение версии OLE    

//    Если Не ПустаяСтрока(Значение) И Найти(Значение, ТребуемаяВерсия) = 0 Тогда    // ТекущаяВерсия <> ТребуемаяВерсия

//        Значение = СтрЗаменить(Значение, «Program Files» + ?(х86, «», » (x86)»), «Program Files» + ?(х86, » (x86)», «»));

//        Значение = СтрЗаменить(Значение, ТекущаяВерсия, ТребуемаяВерсия);

//        WshShell.RegWrite(Ключ, Значение);

//        ЗапуститьПриложение(«taskkill.exe /f /im dllhost.exe»,, Истина);

//        Сообщить(«Переключили версию платформы на » + ТребуемаяВерсия, СтатусСообщения.Информация);

//    КонецЕсли;

    Возврат ?(ПустаяСтрока(Значение), ТекущаяВерсия, ТребуемаяВерсия);

КонецФункции // ВерсияПодключаемогоПриложения()

// Переключает на старую версию платформы для OLE-соединения, если она переключена на новую версию

// для пользователей с административными правами

Процедура ЗвершитьПодключениеOLE() Экспорт

    WshShell = Новый COMОбъект(«WScript.Shell»);    Ключ = «»;

    Значение = ЗначениеКлючаЗарегистрированнойВерсииV83Application(WshShell, Ключ);

    Если ПустаяСтрока(Значение) Или Найти(Значение, «Program Files (x86)1cv8» + ПрежняяВерсия) > 0 Тогда

        Возврат;

    КонецЕсли;

    WshShell.RegWrite(Ключ, «C:Program Files (x86)1cv8» + ПрежняяВерсия + «bin1cv8.exe»);

    ЗапуститьПриложение(«taskkill.exe /f /im dllhost.exe»,, Истина);

КонецПроцедуры // ЗвершитьПодключениеOLE()

Функция ЗначениеКлючаЗарегистрированнойВерсииV83Application(WshShell, Ключ) Экспорт

    // значение HKEY_LOCAL_MACHINESOFTWAREClassesCLSID{e92b75e3-2ea1-4fec-b493-cef3ec59fca6}LocalServer32 должно быть C:Program Files1cv88.3.14.1779bin1cv8.exe

    CLSID = «{E92B75E3-2EA1-4FEC-B493-CEF3EC59FCA6}»;

    Ключ  = «HKEY_CLASSES_ROOTWow6432NodeCLSID» + CLSID + «LocalServer32»;

    Значение = «»;

    Попытка

        Значение = WshShell.RegRead(Ключ);

    Исключение

        Сообщить(«Произошла исключительная ситуация (WshShell.RegRead): Неверная ссылка на корень в разделе реестра » + Ключ + » — недостаточно прав на реестр Windows», СтатусСообщения.Внимание);

    КонецПопытки;

    Возврат Значение;

КонецФункции // ЗначениеКлючаЗарегистрированнойВерсииV83Application()

Но это только для пользователей с административными правами, пришлось от них отказаться. А метод COM (не OLE) нормально работает. Нашел на http://catalog.mista.ru/public/1042208/ метод открытия объекта по ссылке в другой базе (подобно OLE), написал:

// Открытие объекта по ссылке в базе ERP/КА2, работающей на более высокой версии платформы

//

Процедура ОткрытьОбъектВБазеВысокойВерсии(Ссылка) Экспорт

    Если обЗначениеНеЗаполнено(Ссылка) Тогда

        Предупреждение(«Объект в » + БазаОрганизации(ОрганизацияТекущегоПодключенияКА()) + «не найден!», 60);

        Возврат;

    КонецЕсли;

    ИмяСервера     = Сред(ОбъектКА.СтрокаСоединенияИнформационнойБазы(), 7, Найти(ОбъектКА.СтрокаСоединенияИнформационнойБазы(), «;Ref=») — 8);    // «andromeda:1641»;

    ИмяБазы         = Сред(ОбъектКА.СтрокаСоединенияИнформационнойБазы(), Найти(ОбъектКА.СтрокаСоединенияИнформационнойБазы(), «;Ref=») + 6, СтрДлина(ОбъектКА.СтрокаСоединенияИнформационнойБазы()) — Найти(ОбъектКА.СтрокаСоединенияИнформационнойБазы(), «;Ref=») — 7);    // «PatrERP»;

    Если Не БазаКАОткрытаПользователем() Тогда

        Предупреждение(«База ‘» + ИмяБазы + «‘ не открыта под пользователем ‘» + СокрЛП(ПараметрыСеанса.Пользователь) + «‘», 60);

        Возврат;

    КонецЕсли;

    Объект = Ссылка.ПолучитьОбъект();

    ТипОбъекта     = СокрЛП(Объект.Метаданные().ПолноеИмя());

    GUID         = ОбъектКА.XMLСтрока(Ссылка.УникальныйИдентификатор());

    НавигационныйGUID = Сред(GUID, 20 ,4) + Сред(GUID, 25, 12) + Сред(GUID, 15, 4) + Сред(GUID, 10, 4) + Сред(GUID, 1, 8);

    ПутьОбъекта  = «e1cib/data/» + ТипОбъекта + «?ref=» + НавигационныйGUID;    

    НазваниеОкна = СокрЛП(ОбъектКА.Константы.ЗаголовокСистемы.Получить());    // «КА2 ИП Патрушева Г.М.»;

    НазваниеОкна = СтрЗаменить(НазваниеОкна, «»»», «»»»»»);

    НазваниеОкна = СтрЗаменить(НазваниеОкна, » «, «»» «»»);

    СерверБаза     = ИмяСервера + «» + ИмяБазы;

    СерверБаза     = «/S»»» «»»» + СерверБаза + «»»» «»»/URL»»» «»»» + ПутьОбъекта;    // после СерверБаза? » /N»»Администратор»» /P»»2001221″

    ПутьКФайлу     = «corp.akitworkspace$1c1с_Архивы»;

    ПолныйПутьКФайлу = ПутьКФайлу + «ОткрытьСсылкуВДругойБазе.exe»;

    ПолныйПутьОткрытияОбъекта = «»»»»»;    // вроде не нужно СтрЗаменить(«c:Program Files1cv8common1cestart.exe ENTERPRISE » + СерверБаза,» «,»»» «»»);

    Файл = Новый Файл(ПолныйПутьКФайлу);

    Если Не Файл.Существует() Тогда

        Сообщить(«Файл: ‘» + ПолныйПутьКФайлу + «‘ не существует.», СтатусСообщения.Информация);

        Возврат;

    КонецЕсли;

    Приложение = ПолныйПутьКФайлу

         + » » + НазваниеОкна

         + » » + ПутьОбъекта

         + » » + СерверБаза

         + » » + ПолныйПутьОткрытияОбъекта;

//    Сообщить(Приложение, СтатусСообщения.Информация);

    ЗапуститьПриложение(Приложение);

КонецПроцедуры // ОткрытьОбъектВБазеВысокойВерсии()

  

acht

38 — 13.11.20 — 11:40

(37) > ПолныйПутьКФайлу = ПутьКФайлу + «ОткрытьСсылкуВДругойБазе.exe»;

/URL <адрес>

— указывает необходимость перехода по ссылке. Поддерживаются ссылки формата e1c:

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

Если подходящего клиентского приложения не найдено, строка соединения определяется из параметра командной строки /URL.

Если указана локальная ссылка — клиентское приложение запускается в общем порядке. После запуска выполнится попытка перехода по переданной локальной ссылке.

Для ссылок формата http(s) всегда запускается (или находится активный) тонкий клиент.

© ООО «1С-Софт», 1996-2019. Все права защищены.

  

Mikhail Volkov

39 — 13.11.20 — 11:55

(38) Что-то не понял к чему это, о чем?

  

Mikhail Volkov

40 — 13.11.20 — 12:42

Не сразу заметил эту (0) ошибку, потому что в ЖР в отборе на вкладке Данные отмечаю лишь объекты заслуживающие внимание (например, по кассе). Тогда ошибки по другим объектам не видны. Можно как-то настроить отбор, чтобы события с ошибками все отображались. А события Информация — только отмеченные на вкладке Данные?

  

acht

41 — 13.11.20 — 13:13

(39) ОткрытьСсылкуВДругойБазе.exe не нужен

  

Mikhail Volkov

42 — 13.11.20 — 13:55

  

Mikhail Volkov

43 — 13.11.20 — 17:33

На счет ЖР (40), смотреть либо ошибки, либо отмеченные объекты? Вместе никак?

Ответ на данный вопрос актуален в контексте натройки обменов между базами 1С с помощью прямого подключения. Один из вариантов установки/регистрации компоненты com-соединения приведен на странице: Ошибка при вызове конструктора (COMObject) по причине: -2147221164(0x80040154): Класс не зарегистрирован На ней описан вариант установки компоненты при установке/переустановке компонентов платформы 1С: Предприятие из стандартного пакета установки. Но случается и так, что все-таки com-компонента по каким-то таинственным пирчинам все же не регистрируется при вышеуказанной операции.

На это есть альтернативный вариант с помощью командной строки операционной системы. Забегая немного вперед, и чтобы обезопасить себя от ошибок при регистрации com-компоненты comcntr.dll через командную строку, подобных приведенной на скрине

1С 8 как зарегистрировать компоненту comcntr.dll в Windows x32 x64

Чтобы избежать ошибки «Модуль comcntr.dll загружен, но не удалось выполнить вызов DllRegisterServer, код ошибки 0x80070005» запускайте командную строку с правами администратора

1С 8.3 8.2 регистрация com-компоненты через командную строку

А дальше уже все зависит от разрядности операционной системы, в которой Вы хотите зарегистрировать компоненту com-соединения 1C: Предприятия.

В системе с разрядностью x32(x86) для платформы 1С: Предприятие 8.2

C:Program Files (x86)1cv82<номер_релиза>bin> regsvr32 comcntr.dll

, где <номер_релиза> — номер текущего используемого релиза плафтормы 1С 8.

Для платформы 1С: Предприятие 8.3 командная строка для регистрации com-компоненты будет выглядеть примерно так:

C:Program Files (x86)1cv8<номер_релиза>bin> regsvr32 comcntr.dll

, на скрине, приведенном ниже в качестве прbмерf для случая регистрациb comcntr.dll в ОС x86 значение <номер_релиза> — «8.3.9.1818»

1с предприятие 8 установка компоненты com-соединения comcntrl Windows x86

Теперь рассмотрим вариант для системы с разрядностью x64 для платформы 1С: Предприятие 8.2, альтернативный вариант:

C:WindowsSysWOW64>regsvr32 «C:Program Files (x86)1cv82<номер_релиза>bincomcntr.dll»

Для Windows x64 регистрация com-соединения 1С 8.3 платформы разрядности x64 может выглядеть так:

C:WindowsSysWOW64>regsvr32 «C:Program Files1cv8<номер_релиза>bincomcntr.dll»

1С 8.2 8.3 как зарегистрировать компоненту com-соединения comcntr.dll в Windows x64

ИЛИ как в примере для случая x64-разрядной операционной системы Windows

1С 8.3 как зарегистрировать компоненту comcntr.dll в ОС Windows x32 x64

В том случае, если у Вас клиент-серверный вариант работы базы 1С 8, то необходимо зарегистрировать компоненту как на самом сервер, где установлен Агент сервера 1С:Предприятия, так и на рабочих местах на которых используется COM-соединение при подключении к базам (чаще всего при обмене между базами).

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

Ошибка regsvr32 «Не удалось загрузить модуль»: почему возникает и как исправить

Прошли времена, когда для написания компьютерной программы от программиста требовалось только знание одного или нескольких языков программирования без привязки к конкретной операционной системе. Сегодня даже относительно простые программы используют готовые наборы библиотек, являющиеся встроенными или устанавливаемыми компонентами ОС. В некоторых случаях использование этих библиотек вызывается некорректно, особенно если вы используете взломанное программное обеспечение, и тогда для их регистрации требуется использование утилиты regsvr32.exe, запускаемой из командной строки. Но и эта операция часто заканчивается неудачно, с ошибочным сообщением «Не удалось загрузить модуль <Имярек>». Сегодня мы рассмотрим, почему возникает ошибка и как от неё избавиться.

Ошибка regsvr32 «Не удалось загрузить модуль» в Windows

Почему возникает ошибка regsvr32

Итак, утилита regsvr32.exe, являющаяся частью операционной системы Windows (начиная с версии 95), – это инструмент, основным предназначением которого является регистрация различных компонентов ОС. Прежде всего – использующих технологию OLE, а таковыми являются, например, элементы ActiveX, позволяющие интегрировать программы в среду Windows вне зависимости от того, на каком языке программирования они написаны. Разумеется, это относится и к любым другим динамическим библиотекам, использующим формат DLL.

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

Вот как раз для этих целей и нужен инструмент regsvr32.exe, который регистрирует новые компоненты в системе, если этого не сделала инсталлируемая программа. Утилита запускается только из командной строки, и её отработка отнюдь не всегда происходит успешно. Иногда вместо успешной регистрации библиотеки пользователь наблюдает ошибочное сообщение regsvr32 «Не удалось загрузить модуль <Имя компоненты>».

Ошибка regsvr32 «Не удалось загрузить модуль»

Причины ошибки могут быть разными: от неправильного пути размещения самой утилиты до ошибочных действий пользователя. Как правило, с этой ошибкой чаще всего сталкиваются геймеры, нередко устанавливающие на компьютер пиратские копии игр. Обычно те модули, которые отвечают за обход лицензирования или взлом, требуют регистрации недостающих динамических библиотек вручную. Впрочем, иногда такие действия требуются и при установке «хороших» и даже достаточно популярных и известных программ, например, при установке Creative Cloud от компании Adobe. Программы обработки видео и графики также могут использовать незарегистрированные компоненты DLL, которые приходится устанавливать вручную. Если эта операция заканчивается неудачно, это не приговор, и сегодня мы рассмотрим, что делать, если regsvr32 не смогла найти указанный модуль и завершилась аварийно.

Способы регистрации DLL в Windows

Регистрировать недостающие компоненты можно и с использованием консоли «Выполнить», но через командную строку это будет намного надёжнее. Все регистрируемые библиотеки помещаются в системный каталог, каковым для Windows 95/98/ME является system, для Windows XP/Vista/NT и более поздних 32-битных версий – system32, для 64-разрядных ОС – либо SysWOW64, либо system32. Все эти особенности нужно знать.

Разрядность в Windows

Но чаще всего ошибочное сообщение regsvr32 «Не удалось загрузить модуль» появляется из-за того, что у утилиты не было необходимых прав для выполнения некоторых операций, необходимых при регистрации компонент. Другими словами, вы запустили утилиту как обычный пользователь, не обладающий полномочиями администратора. К счастью, это легко исправимо.

Для этого в ранних версиях Windows (вплоть до «семёрки») необходимо кликнуть по кнопке «Пуск», выбрать пункт «Все программы», пролистать список вниз до подпункта «Стандартные» и найти там «Командную строку». Кликнуть по ней ПКМ и в появившемся контекстном меню выбрать пункт «Запуск от имени администратора».

Командная строка в Windows 7

В «восьмёрке» и «десятке» это выполняется проще, достаточно просто нажать кнопку «Пуск», найти «Командную строку» и щёлкнуть по ней ПКМ с выбором нужного аргумента.

Командная строка в Windows 10

Некоторые предпочитают запускать интерпретатор через проводник – в этом случае действия аналогичные: кликаем по файлу regsvr32.exe правой кнопкой мыши и выбираем опцию «Запуск от имени администратора».

Второй по частоте встречаемости причиной невозможности зарегистрировать нужную библиотеку или компоненту является ошибка с размещением этой компоненты. Даже опытные пользователи копируют нужный файл в каталог System32, просто по привычке. Для 64-разрядной версии Windows системной папкой, в которой размещаются все регистрируемые компоненты, является SysWOW64. Всё, что от вас потребуется, – убедиться, что вы скопировали библиотеку в нужную папку. И если это не так, исправить свою ошибку, а затем снова запустить командную строку с правами администратора и выполнить команду:

regsvr32.exe c: windows /system32/<полное имя регистрируемой библиотеки с расширением>

Команда для регистрации DLL

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

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

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

Сканирование реестра в CCleaner

Не помешает также проверить компьютер антивирусом, запустив полное сканирование, – файл regsvr32.exe может оказаться попросту заражённым.

Dr.Web CureIt! в Windows

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

Регистрация компоненты comcntr.dll (для COM соединения с базой 1С)

Если фоновый процесс COM-соединения завершается с ошибкой:

<Обработка.ОбменДаннымиXML.МодульОбъекта(15947)>: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Invalid class string

Нужно зарегистрировать библиотеку ComConnector comcntr.dll из каталога программы.

. Перед этим нужно отключить службу агента сервера 1С:Предприятия и все программы, использующие эту DLL .

В 32-битной версии сервера проблема решилась бы командой: regsvr32 «C:Program Files (x86)1cv88.3.5.1119bincomcntr.dll»

но в 64-битной версии команда будет примерно такой * : C:WindowsSysWOW64regsvr32 «C:Program Files (x86)1cv88.3.5.1119bincomcntr.dll»

При удачном выполнении Вы увидите:

Если команда регистрации не помогла, то нужно предварительно удалить регистрацию библиотеки comcntr.dll, запустив ту же команду вызова regsvr32 с ключом /u

Если и это не помогло, попробуйте переустановить платформу 1С в режиме Исправить и отметьте COM соединение

Распечатать

Похожие FAQ

Еще в этой же категории

Ключевые слова и Изображения

Слова упорядочены по частоте использования в тексте
Изображения

Регистрация компоненты comcntr.dll (для COM соединения с базой 1С)Регистрация компоненты comcntr.dll (для COM соединения с базой 1С)

83.COMConnector класс не зарегистрирован

Случается, что при попытке подключения к информационной базе через com-соединение возникает ошибка при вызове конструктора (COMОбъект): «Класс не зарегистрирован» или «Недопустимая строка с указанием класса».

Первым делом необходимо зарегистрировать DLL в системе

Regsvr32 «C:Program Files1cv88.3.7.1776bincomcntr.dll»

В случае, если не помогает — создаём коннектор руками:

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

•Переходим к ветке Компьютеры — Мой компьютер — Приложения COM+.

•В контекстном меню выбираем Создать — Приложение. Откроется Мастер установки приложений COM+.

•Выбираем «Создать новое приложение».

•Вводим имя «V83COMConnector». Устанавливаем переключатель «Серверное приложение». Нажимаем «Далее».

•На следующем шаге устанавливаем «Текущий пользователь». Нажимаем «Далее».

•В появившейся ветке V83COMConnector переходим к подветке Компоненты.

•В контекстном меню выбираем Создать — Компонент. Откроется Мастер установки компонентов COM+.

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

•Выбираем файл <каталог 1С>bincomcntr.dll.

•Нажимаем «Далее» — «Готово».

•Переходим к ветке V83COMConnector.

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

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

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

Бывало так, что вместо Текущий пользователь нужно прописать USR1CV8

  • Ошибка при выгрузке сзв тд
  • Ошибка при вызове конструктора comobject 2147221164 0x80040154 class not registered
  • Ошибка при выгрузке отчета фсс
  • Ошибка при вызове конструктора comobject 2147221005 0x800401f3 invalid class string
  • Ошибка при выгрузке декларации усн не указан объект налогообложения