Как исправить ошибку «Класс не зарегистрирован, ProgID: DualConnector.SAPacket» при подключении терминала к 1С?

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Торговля и дистрибуция
← На главную

При обновлении операционной системы до Windows 10 или переходе на 64-битную платформу «1С:Предприятие» пользователи и системные администраторы нередко сталкиваются со сбоем работы торгового оборудования. Типичная ситуация: представитель банка устанавливает драйвер эквайрингового терминала (например, ПО от INPAS), однако при попытке выполнить проверку устройства в настройках подключаемого оборудования или при пробитии чека 1С выдает сообщение: «Не удалось подключить устройство: Класс не зарегистрирован, ProgID: "DualConnector.SAPacket"».

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

Выясним причину возникновения ошибки

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

  1. Несовпадение разрядности клиента 1С и COM-сервера. Стандартный установщик INPAS DualConnector чаще всего регистрирует свои библиотеки через 32-битную версию утилиты regasm.exe в ветку системного реестра SysWOW64. Если на рабочем месте запускается 64-битный клиент платформы (1cv8c.exe), он выполняет поиск COM-объекта с указанным ProgID исключительно в 64-битной ветке реестра. Не обнаружив там запись о DualConnector.SAPacket, система сообщает, что класс не зарегистрирован.
  2. Ошибки комплектного установочного скрипта. При запуске штатного командного файла RegisterDC.bat от имени администратора текущей рабочей директорией становится C:\Windows\System32. Если скрипт не содержит директивы явного перехода в каталог размещения библиотек, утилиты регистрации не могут обнаружить файл DualConnector.dll, и процесс завершается без фактической регистрации.
  3. Влияние кириллицы в путях профиля пользователя. Некоторые версии библиотек DualConnector и связанные модули криптографии обращаются к переменным среды %TEMP% и %APPDATA%. Наличие русских букв в имени учетной записи операционной системы может приводить к аварийному завершению работы драйвера при попытке сформировать временный файл обмена или лог-файл.

Способ 1. Ручная регистрация библиотеки в 64-битной среде .NET

Если на рабочем месте используется 64-битная платформа 1С, зарегистрируем библиотеку в соответствующей ветке реестра вручную с помощью 64-битной версии утилиты сборки .NET Framework.

Разберем по шагам, как это выполнить:

  1. Закроем приложение «1С:Предприятие».
  2. Запустим командную строку Windows (cmd) с повышенными привилегиями (пункт меню «Запуск от имени администратора»).
  3. Выполним команду регистрации с ключами создания библиотеки типов и записи кодовой базы в реестр:
    
    "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe" "C:\Program Files (x86)\INPAS\DualConnector\DualConnector.dll" /tlb /codebase
    
  4. Убедимся, что в окне командной строки появилось сообщение об успешной регистрации типов и экспорте библиотеки типов.
  5. Запустим 1С от имени администратора для первого тестового обращения к оборудованию, чтобы компонента инициализировала необходимые внутренние параметры.

После выполнения данной команды 64-битный клиент 1С получит прямой доступ к COM-классу DualConnector.SAPacket, и ошибка регистрации перестанет появляться.

Способ 2. Устранение проблем с кириллицей в путях к временным файлам

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

Рассмотрим порядок действий:

  1. Создадим в корне системного диска отдельную папку с простым именем на латинице, например: C:\Temp.
  2. Откроем «Свойства системы» (сочетание клавиш Win + Pause/Break или команда sysdm.cpl в окне «Выполнить»).
  3. Перейдем на вкладку «Дополнительно» и нажмем кнопку «Переменные среды».
  4. В блоке «Переменные среды пользователя» найдем переменные TEMP и TMP, заменим их значения на созданный путь: C:\Temp.
  5. При необходимости аналогичные изменения внесем и в блок «Системные переменные».
  6. Завершим текущий сеанс пользователя Windows или перезагрузим компьютер, чтобы настройки переменных вступили в силу.

Способ 3. Переход на 32-битный клиент 1С

Если нет возможности модифицировать системные регистрации через командную строку или поставщик оборудования предоставил сборку DualConnector только в 32-битном исполнении (V1.x), применим альтернативный подход:

  1. Установим на рабочий компьютер 32-битный тонкий клиент платформы «1С:Предприятие».
  2. В настройках запуска информационного окна 1С укажем разрядность «32 (x86)».
  3. Запустим программу. В таком режиме 1С будет обращаться к стандартной 32-битной ветке реестра WOW6432Node, где библиотека DualConnector.dll уже зарегистрирована штатным инсталлятором банка, что исключит возникновение ошибки.

Дополнительные рекомендации по настройке оборудования

После устранения ошибки с COM-классом обратим внимание на сопутствующие параметры подключения терминала:

  1. Номер COM-порта. Если пин-пад подключен через USB-кабель в режиме эмуляции последовательного порта, проверим в «Диспетчере устройств» номер назначенного порта. Для стабильной работы большинства версий драйверов INPAS рекомендуется выбирать номер из диапазона от COM1 до COM9. Если система выделила порт с более высоким номером (например, COM15), вручную переназначим его в свойствах порта на свободный младший номер.
  2. Компоненты .NET Framework. На чистых установках Windows 10 убедимся, что в окне «Включение или отключение компонентов Windows» активирован компонент .NET Framework 3.5 (включает .NET 2.0 и 3.0), так как вспомогательные библиотеки драйвера могут обращаться к его библиотекам времени выполнения.
← На главную