При обновлении операционной системы до Windows 10 или переходе на 64-битную платформу «1С:Предприятие» пользователи и системные администраторы нередко сталкиваются со сбоем работы торгового оборудования. Типичная ситуация: представитель банка устанавливает драйвер эквайрингового терминала (например, ПО от INPAS), однако при попытке выполнить проверку устройства в настройках подключаемого оборудования или при пробитии чека 1С выдает сообщение: «Не удалось подключить устройство: Класс не зарегистрирован, ProgID: "DualConnector.SAPacket"».
Разберем детально, почему возникает данная неполадка и какими способами можно восстановить корректный обмен данными между 1С и банковским терминалом.
Проанализируем архитектуру взаимодействия компонентов, чтобы понять корни сбоя:
regasm.exe в ветку системного реестра SysWOW64. Если на рабочем месте запускается 64-битный клиент платформы (1cv8c.exe), он выполняет поиск COM-объекта с указанным ProgID исключительно в 64-битной ветке реестра. Не обнаружив там запись о DualConnector.SAPacket, система сообщает, что класс не зарегистрирован.RegisterDC.bat от имени администратора текущей рабочей директорией становится C:\Windows\System32. Если скрипт не содержит директивы явного перехода в каталог размещения библиотек, утилиты регистрации не могут обнаружить файл DualConnector.dll, и процесс завершается без фактической регистрации.%TEMP% и %APPDATA%. Наличие русских букв в имени учетной записи операционной системы может приводить к аварийному завершению работы драйвера при попытке сформировать временный файл обмена или лог-файл.Если на рабочем месте используется 64-битная платформа 1С, зарегистрируем библиотеку в соответствующей ветке реестра вручную с помощью 64-битной версии утилиты сборки .NET Framework.
Разберем по шагам, как это выполнить:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe" "C:\Program Files (x86)\INPAS\DualConnector\DualConnector.dll" /tlb /codebase
После выполнения данной команды 64-битный клиент 1С получит прямой доступ к COM-классу DualConnector.SAPacket, и ошибка регистрации перестанет появляться.
Когда драйвер терминала конфликтует с кириллическим именем пользователя Windows, пересоздавать учетную запись и заново настраивать рабочее место необязательно. Достаточно перенаправить пути к временным папкам в нейтральный каталог.
Рассмотрим порядок действий:
C:\Temp.sysdm.cpl в окне «Выполнить»).TEMP и TMP, заменим их значения на созданный путь: C:\Temp.Если нет возможности модифицировать системные регистрации через командную строку или поставщик оборудования предоставил сборку DualConnector только в 32-битном исполнении (V1.x), применим альтернативный подход:
DualConnector.dll уже зарегистрирована штатным инсталлятором банка, что исключит возникновение ошибки.После устранения ошибки с COM-классом обратим внимание на сопутствующие параметры подключения терминала:
COM1 до COM9. Если система выделила порт с более высоким номером (например, COM15), вручную переназначим его в свойствах порта на свободный младший номер..NET Framework 3.5 (включает .NET 2.0 и 3.0), так как вспомогательные библиотеки драйвера могут обращаться к его библиотекам времени выполнения.