При работе с конфигурацией 1С:Розница (включая специализированные решения, такие как «Аптека») пользователи часто сталкиваются с ошибкой при попытке совершить операцию по платежной карте. Сообщение системы гласит: «Не удалось загрузить драйвер устройства. Тип не определен (AddIn.SberAcquiringTerminal.SberAcquiringTerminal)». Эта проблема обычно проявляется после обновления платформы или конфигурации и блокирует возможность приема безналичной оплаты.
Рассмотрим подробно причины возникновения этой ошибки и разберем по шагам методы её решения, основываясь на практическом опыте системных администраторов и специалистов 1С.
Проанализируем наиболее частую причину: использование 64-битного клиента 1С. Большинство библиотек (DLL), поставляемых банками для интеграции терминалов, исторически разработаны для 32-битных систем (x86). Если вы установили версию платформы 1С:Предприятие x64, она не сможет инициализировать 32-битный COM-объект драйвера Сбербанка.
Для решения этой проблемы выполним следующие действия:
Как показывает практика, это решение является самым эффективным для драйверов старого образца, которые работают через COM-интерфейс.
Выясним особенности работы, когда 1С запущена на сервере, а терминал подключен к локальному компьютеру пользователя. В этом случае возникает вопрос: где должен находиться драйвер?
Проанализируем ситуацию: 1С ищет компоненту там, где исполняется код. Если операция выполняется в контексте сервера (как в сообщении [На 1с_Server]), то драйвер должен быть доступен серверу. Однако терминал физически подключен к клиенту.
Рассмотрим правильный алгоритм настройки для RDP:
SberAcq_1C.dll и сопутствующие файлы, такие как pilot_nt.dll) должен быть установлен и зарегистрирован на сервере, если там запускается сеанс 1С.Иногда система «теряет» связь с компонентой. Попробуем перерегистрировать DLL-файл вручную. Разберем по шагам, как это сделать правильно:
C:\sc552 или папка в каталоге bin платформы 1С).regsvr32 "C:\путь_к_файлу\SberAcq_1C.dll"
Важный нюанс: при первом запуске 1С после регистрации или обновления, крайне рекомендуется запустить сам клиент 1С от имени Администратора один раз. Это позволит программе корректно прописать пути в ветке реестра HKEY_CLASSES_ROOT, к которой у обычного пользователя часто нет прав доступа.
Драйверы эквайринга часто написаны на языке C++ и требуют наличия в Windows определенных системных библиотек. Если в системе отсутствует нужный пакет Microsoft Visual C++ Redistributable (обычно версий 2010, 2013 или 2015), Windows просто не сможет загрузить файл драйвера, и 1С выдаст ошибку «Тип не определен».
Рекомендуется установить пакеты Visual C++ обеих разрядностей (x86 и x64) для обеспечения максимальной совместимости всех компонентов торгового оборудования.
В современных версиях «1С:Розница» поддерживается работа с драйверами по технологии Native API. В отличие от COM-технологии (AddIn.Sber...), Native API не требует сложной регистрации в реестре и часто поставляется в виде самораспаковывающихся макетов внутри самой 1С.
Посмотрим, как обновить драйвер через интерфейс программы:
Если ни один из способов не помог, проанализируем ситуацию с помощью системных утилит. Мы можем использовать утилиту, отслеживающую зависимости библиотек. Если открыть файл SberAcq_1C.dll в такой утилите, она подсветит красным цветом те файлы, которых не хватает в папке C:\Windows\System32 или в папке с самим драйвером.
Также стоит убедиться, что в каталоге с установленной платформой 1С (папка bin) не осталось «мусорных» файлов от старых версий драйверов, которые могут конфликтовать с новыми библиотеками. Рекомендуется очистить временные файлы 1С (кэш), так как компоненты часто кэшируются в локальных папках пользователя AppData\Local\1C\....
Подводя итог, можно сказать: в 90% случаев ошибка AddIn.SberAcquiringTerminal решается установкой 32-битной версии клиента 1С и правильной регистрацией библиотек от имени администратора. Совместное использование этих методов гарантирует стабильную работу эквайринга в 1С.