Как убрать ошибку «Недопустимая строка с указанием класса» в 1С 8.3

· Обновлено 12.07.2026 · ⏱ 8 мин · Редакция 1s-83.com

📋 Содержание

Ошибка Недопустимая строка с указанием класса с кодом -2147221005 (0x800401F3) означает, что Windows не нашла COM-компонент, который пытается запустить 1С 8.3. Класс не зарегистрирован в системе — отсюда и «недопустимая строка».

Чаще всего это всплывает при COM-подключении к базе (V83.COMConnector), при выгрузке в Excel или Word, при обмене между базами и в обработках, использующих внешние компоненты. Ниже — как понять, какой именно класс не найден, и как его зарегистрировать. Все команды рабочие, разложены по шагам.

Что означает ошибка -2147221005 (0x800401F3)

Полный текст в 1С обычно выглядит так:

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

Код 0x800401F3 — это системная константа Windows REGDB_E_CLASSNOTREG, дословно «класс не зарегистрирован». То есть 1С вызвала конструктор Новый COMОбъект("Имя.Класса"), а Windows не нашла такой класс в реестре.

💡 Ключевое слово — «класс не зарегистрирован». Дело не в 1С и не в базе. Проблема в том, что нужная COM-библиотека либо не установлена, либо не прописана в реестре Windows, либо у неё не совпадает разрядность с процессом 1С.

Какие «строки с указанием класса» встречаются чаще всего:

  • 🔌 V83.COMConnector — COM-соединитель для подключения к другой базе 1С.
  • 📊 Excel.Application — выгрузка/загрузка данных через Microsoft Excel.
  • 📝 Word.Application — печать в Word.
  • 🗄️ ADODB.Connection — прямые запросы к внешним БД.
  • 🧩 MSComctlLib... — компоненты из mscomctl.ocx в старых обработках.

Быстрая диагностика: с чего всё началось

Прежде чем что-то регистрировать, определите сценарий. Решение зависит от того, какой класс не найден.

🩺 Диагностика: выберите симптом

Регистрируем COMConnector (comcntr.dll)

Самый частый случай — обмен или подключение к другой базе через V83.COMConnector. За это отвечает файл comcntr.dll из каталога платформы. Если его не зарегистрировали при установке, получаем ровно нашу ошибку.

Шаг 1. Найдите путь к comcntr.dll

Файл лежит в подкаталоге bin установленной платформы. Пример пути:

C:\Program Files (x86)\1cv8\8.3.24.1548\bin\comcntr.dll

Версия в пути (8.3.24.1548) у вас будет своя. Откройте каталог 1cv8, зайдите в папку с максимальным номером версии — это актуальная платформа.

Шаг 2. Зарегистрируйте dll в нужной разрядности

Запустите командную строку от имени администратора и выполните одну из команд.

Для 32-битной платформы (папка Program Files (x86)):

C:\Windows\SysWOW64\regsvr32.exe "C:\Program Files (x86)\1cv8\8.3.24.1548\bin\comcntr.dll"

Для 64-битной платформы (папка Program Files):

C:\Windows\System32\regsvr32.exe "C:\Program Files\1cv8\8.3.24.1548\bin\comcntr.dll"

Если всё прошло, Windows покажет окно DllRegisterServer выполнено успешно.

⚠️ Обязательно запускайте cmd именно от администратора. Без прав администратора regsvr32 выдаст ошибку доступа к реестру, и класс так и не пропишется.

Шаг 3. Перезапустите 1С и проверьте

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

👣 Пошаговый помощник
Определите версию платформы
Откройте C:\Program Files (x86)\1cv8\ (или Program Files\1cv8) и запомните папку с наибольшим номером версии.

Проверяем разрядность: 32 или 64 бит

Вторая по частоте причина — несовпадение разрядности. COM-объект и процесс, который его вызывает, должны быть одной битности.

Классический конфликт: платформа 1С 64-битная, а Microsoft Office стоит 32-битный (или наоборот). Тогда Excel.Application не находится, хотя Office явно установлен.

Что вызывает COMЧто должно совпастьКак проверить
Клиент 1С (x86)32-битный Office и SysWOW64\comcntr.dllВ 1С «О программе» указана платформа
Клиент 1С (x64)64-битный Office и System32\comcntr.dllРазрядность Office: Файл → Учётная запись → Об Excel
Сервер 1С (обычно x64)64-битные компонентыЧерез какой процесс идёт вызов

Что делать при несовпадении:

  • 🔁 Проще всего привести к одной разрядности. Например, поставить 32-битный Office под 32-битную платформу.
  • 🧭 Если менять Office нельзя — запускайте нужную операцию в клиенте той же разрядности, что и внешний компонент.
  • 🖥️ Для серверных фоновых заданий учитывайте, что rphost обычно 64-битный — компоненты тоже нужны 64-битные.

💡 Разрядность Office проверяется так: откройте Excel → Файл → Учётная запись → Об Excel. В заголовке будет 32-разрядная или 64-разрядная.

Регистрируем недостающие библиотеки (ocx/dll)

Если ошибка вылезает в конкретной обработке, дело часто в старых компонентах — mscomctl.ocx, comdlg32.ocx, msflxgrd.ocx. Их нет в чистой Windows, а обработка их требует.

Порядок действий на примере mscomctl.ocx:

  1. Найдите файл mscomctl.ocx (идёт с обработкой либо ищется в дистрибутиве компонента).
  2. Скопируйте его в системную папку по разрядности:
    • 64-бит система, 32-бит компонент → C:\Windows\SysWOW64\
    • 32-бит система → C:\Windows\System32\
  3. Зарегистрируйте из cmd от администратора:
C:\Windows\SysWOW64\regsvr32.exe C:\Windows\SysWOW64\mscomctl.ocx
  1. Перезапустите 1С.

⚠️ Не тащите .ocx из непроверенных источников. Заражённый компонент — прямой путь к трояну с правами системы. Берите файл только из дистрибутива нужной программы.

Если после регистрации выходит ошибка Модуль загружен, но точка входа DllRegisterServer не найдена — значит, этот файл вообще не является COM-библиотекой и regsvr32 тут не нужен.

Настройка DCOM при подключении по сети

Когда V83.COMConnector цепляется к базе на другом компьютере или к серверу 1С, одной регистрации мало. Нужны настройки DCOM и права.

Что проверить:

  • 👤 Пользователь, под которым идёт COM-подключение, должен иметь права на запуск и активацию DCOM-приложения.
  • 🔐 В оснастке dcomcnfg (Службы компонентов → Компьютеры → Мой компьютер → Настройка DCOM) должно быть приложение соединителя с корректными правами.
  • 🧱 Брандмауэр не должен резать RPC-порты между машинами.
  • 🗝️ Учётка должна существовать на обеих машинах (или в домене) с одинаковым паролем.

Для локального подключения (к базе на том же ПК) DCOM настраивать не нужно — хватает регистрации comcntr.dll.

Типичные ошибки при исправлении

Что чаще всего идёт не так:

  • Регистрируют не ту разрядность. Для 32-битной платформы нужен SysWOW64\regsvr32.exe, а не System32. Названия папок в Windows сбивают с толку: SysWOW64 — это как раз 32-битные компоненты.
  • Забыли права администратора. regsvr32 без админа не пишет в реестр — регистрация не проходит, а ошибка в 1С остаётся.
  • Указали старую версию платформы. После обновления путь к bin меняется — регистрируют dll от прошлой версии, а работает уже новая.
  • Не перезапустили все сеансы 1С. Фоновый сеанс или служба 1С висит в памяти со старым состоянием. Закрывайте всё, при необходимости — через диспетчер задач.
  • Лечат базу вместо системы. Проверка/исправление конфигурации тут не поможет: класс регистрируется в Windows, а не в базе 1С.

Проверка после исправления

Быстрый чек-лист, чтобы убедиться, что всё встало на место.

Проверка после регистрации COM
Выполнено: 0 / 6

Если не помогло

Регистрация прошла, а ошибка Недопустимая строка с указанием класса осталась? Идём дальше по списку.

  1. Проверьте, тот ли класс не найден. Точный текст ошибки в 1С часто содержит имя класса (Excel.Application, V83.COMConnector и т.д.). Регистрируйте именно тот компонент.
  2. Переустановите проблемный компонент. Для Excel/Word — восстановление Office (Панель управления → Программы → Изменить → Восстановить). Для COMConnector — «Изменить» установку платформы и включить компонент.
  3. Отмените регистрацию и зарегистрируйте заново. Сначала regsvr32 /u <путь>, потом обычная регистрация — иногда помогает при «битой» записи в реестре.
  4. Проверьте разрядность ещё раз. Это причина №1 из «незакрывающихся». Клиент x86 не увидит 64-битный компонент, даже идеально зарегистрированный.
  5. Посмотрите права пользователя Windows. Под ограниченной учёткой доступ к COM-объекту может быть закрыт политиками.

💡 Если операцию запускает не человек, а фоновое/регламентное задание на сервере — регистрируйте компоненты под тем аккаунтом, от которого работает служба 1С (USR1CV8 или ваша сервисная учётка).

Проверьте себя

✅ Проверьте себя
Что означает код 0x800401F3 в этой ошибке?
Куда регистрировать comcntr.dll для 32-битной платформы 1С?
Что делать, если 1С 64-бит, а Office 32-бит, и падает Excel.Application?

Частые вопросы

Что за ошибка «Недопустимая строка с указанием класса» в 1С 8.3?
Это COM-ошибка Windows с кодом -2147221005 (0x800401F3), REGDB_E_CLASSNOTREG — «класс не зарегистрирован». 1С пытается создать COM-объект, а нужная библиотека не прописана в реестре или не установлена.
Как исправить ошибку при подключении к другой базе через COM?
Зарегистрируйте comcntr.dll из папки bin актуальной версии платформы командой regsvr32 от администратора. Для 32-битной платформы используйте SysWOW64\regsvr32.exe, для 64-битной — System32\regsvr32.exe.
Почему ошибка появляется при выгрузке в Excel?
Не установлен Microsoft Office либо у Office и платформы 1С разная разрядность. Проверьте, что Office стоит, и приведите разрядность к одной (32↔32 или 64↔64).
Проблема в базе 1С или в Windows?
В Windows. Класс регистрируется в реестре операционной системы, а не в базе. Тестирование и исправление конфигурации здесь бесполезны.
Зарегистрировал dll, но ошибка осталась — что не так?
Три частые причины: не совпала разрядность (System32 вместо SysWOW64), не закрыты все сеансы 1С, либо зарегистрирована dll от старой версии платформы. Проверьте эти пункты.
Нужно ли настраивать DCOM?
Только при подключении по COM к базе на другом компьютере или к серверу 1С. Для локального подключения хватает регистрации comcntr.dll.

Материал подготовлен редакцией 1С 8.3 — независимый справочник. Проверено и обновлено: 12.07.2026. Независимый справочник. Мы не представляем фирму «1С» и не аффилированы с ней.