При настройке эквайрингового оборудования ИНПАС, работающего по протоколу UNIPOS, системные администраторы часто сталкиваются с ситуацией (поможет централизованное администрирование рабочих мест и касс), когда на 32-битных системах всё работает «из коробки», а на 64-битных Windows (например, Windows 7 x64 или Windows 10 x64) возникает критическая ошибка. В журнале регистрации 1С это отображается как: «Для идентификатора a_inpasDC1c83 (версия не указана) не удалось получить внешнюю компоненту». Рассмотрим подробно, почему это происходит и как решить данную проблему, учитывая все технические нюансы взаимодействия 32-битной платформы 1С и 64-битной операционной системы.
Проанализируем ситуацию: как правило, в розничной торговле (где часто требуется автоматизация нескольких УТМ ЕГАИС) используется 32-битная версия платформы 1cv8.exe. Внешняя компонента a_inpasDC1c83 также является 32-битной библиотекой. В 64-битной среде Windows механизмы регистрации библиотек и обращения к реестру разделены. Если компонента зарегистрирована некорректно или системе не хватает зависимых библиотек именно 32-битной разрядности, 1С не сможет инициализировать драйвер, даже если он физически присутствует в системе — эту техническую проблему решает драйвер весов без регистрации COM-компонент.
Одной из главных ошибок является попытка регистрации библиотеки (будь то драйвер терминала или внешняя компонента SignotecPad) через стандартную команду без указания пути к правильному обработчику. В Windows x64 для 32-битных библиотек необходимо использовать regsvr32.exe, расположенный в папке SysWOW64. Разберем правильный алгоритм регистрации:
Пример команды для регистрации (путь к DLL может отличаться в зависимости от места установки драйвера):
C:\Windows\SysWOW64\regsvr32.exe "C:\Program Files (x86)\INPAS\DualConnector\a_inpasDC1c83.dll"
Если регистрация прошла успешно, вы увидите сообщение DllRegisterServer в ... успешно. Если возникла ошибка (как бывает и при чтении данных с ID карт) — значит, в системе отсутствуют пакеты Visual C++, о которых мы поговорим далее.
Компонента a_inpasDC1c83 написана с использованием определенных сред разработки и требует наличия соответствующих Runtime-библиотек. Часто на «чистых» кассовых узлах отсутствуют старые версии пакетов. Проанализируем, что именно нужно установить:
Важно: даже если у вас установлена 64-битная Windows, для работы 32-битной 1С и её компонент нужны именно x86 версии этих пакетов. Без них DLL-файл компоненты просто не сможет загрузиться в память (ошибка «загрузка модуля не удалась»).
Разберем ситуацию, когда 1С «не видит» установленный драйвер из-за разницы в ветках реестра. 32-битные приложения в 64-битной ОС ищут настройки в узле HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\. Иногда установщик ИНПАС прописывает данные в основную ветку SOFTWARE, которая невидима для 32-битной платформы 1С.
Проверьте наличие ключей в ветке:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\INPAS\DualConnector
Если ветка пуста, попробуйте переустановить драйвер от имени администратора или вручную экспортировать/импортировать настройки из основной ветки в узел Wow6432Node.
В Windows 7 и выше механизмы контроля учетных записей (UAC) могут блокировать распаковку внешней компоненты. Программа «1С:Розница» при первом обращении к оборудованию пытается извлечь компоненту из макета и сохранить её в локальный кэш пользователя. Посмотрим на этот процесс подробнее:
Если вы уже пробовали разные версии драйверов, в кэше 1С могла остаться «битая» ссылка на старую компоненту. Выясним, как её очистить. Перейдите по следующему пути (вставьте в проводник):
%AppData%\1C\1cv8\ExtCompT
Полностью удалите содержимое этой папки при закрытой 1С. После этого при запуске теста оборудования платформа будет вынуждена заново инициализировать a_inpasDC1c83, что часто решает проблему «не удалось получить компоненту».
Хотя более новые версии DualConnector ориентированы на .NET 4.x, многие реализации COM-объектов в эквайринге всё еще требуют .NET Framework 3.5 (который включает в себя версии 2.0 и 3.0). Убедитесь, что этот компонент включен в панели управления Windows («Включение или отключение компонентов Windows»). Наличие версии 4.8 не всегда заменяет необходимость версии 3.5 для старых библиотек связи.
Внешняя компонента a_inpasDC1c83.dll не работает в вакууме. Для её успешного функционирования в той же папке (или в системной SysWOW64) должны находиться файлы:
p3_inpas.dll — основная библиотека протокола.dc_config.xml — файл конфигурации параметров связи.Если 1С распаковала в свой кэш только основной файл a_inpasDC1c83, но не нашла рядом зависимых библиотек, тест оборудования завершится ошибкой. В этом случае рекомендуется вручную скопировать все файлы из папки установленного DualConnector в каталог с платформой 1С (папка bin), хотя это и является «грубым» методом решения.
Таким образом, мы рассмотрели комплекс мер по исправлению ошибки. Последовательное выполнение этих шагов — от установки Visual C++ x86 до принудительной регистрации через SysWOW64 — гарантированно позволяет запустить эквайринг ИНПАС на любой современной 64-битной операционной системе в связке с 1С. В качестве альтернативного решения для конфигураций на обычных формах подойдёт обработка обслуживания эквайринговых терминалов ИНПАС UNIPOS с нативной поддержкой x86 и x64.