После обновления конфигурации 1С:Розница до версии 2.3.20.38 и выше многие пользователи сталкиваются с неприятной ситуацией: при проверке подключения эквайрингового терминала Сбербанка через стандартную форму настроек программа выдает ошибку «Тест не пройден». При этом драйвер используется актуальный — 1С:Эквайринговые терминалы Сбербанк 2.x (версия 2.7.2.2), а папка C:\sbrf со всеми необходимыми библиотеками настроена верно. В этой статье мы подробно разберем, почему это происходит, стоит ли паниковать и как привести систему в рабочее состояние.
Проанализируем техническую сторону вопроса. В новых релизах 1С произошел переход на использование драйверов, построенных по технологии Native API (это те, что имеют приписку 2.x в названии). Раньше взаимодействие шло через технологию COM (библиотека sbrfcom.dll).
Разберем, что происходит при нажатии кнопки «Тест устройства» в интерфейсе 1С. Программа отправляет запрос драйверу, ожидая получить структурированный ответ в формате XML или JSON. Однако компонента Сбербанка в текущей реализации при выполнении сервисной команды «Тест» может возвращать пустой ответ или статус, который программный код 1С интерпретирует как ошибку. Важный нюанс: методы, отвечающие за саму оплату, возврат и сверку итогов, работают по другим алгоритмам. Именно поэтому мы наблюдаем парадоксальную ситуацию: тест в настройках горит красным, но терминал успешно принимает платежи.
Рассмотрим самый простой и действенный совет, который подтверждают многие специалисты: просто попробуйте провести операцию. Если после настройки драйвера и указания правильных параметров (порт, путь к папке C:\sbrf) тест не проходит, не спешите переустанавливать систему.
Посмотрим на ситуацию с визуальной точки зрения. Многие пользователи привыкли к красивому графическому окну с логотипом Сбербанка во время оплаты. В новом драйвере Native API вместо него появляется черное консольное окно. Это не является ошибкой.
Выясним причину: новый драйвер напрямую обращается к исполняемому файлу банковского ПО (например, loadparm.exe), который в новых версиях банковского протокола запускается в консольном режиме. Если черное окно мешает работе (например, не закрывается само или перекрывает важные элементы управления), рассмотрим варианты исправления:
EF_00_006, которые исправляют некорректную обработку ответов от эквайринга.sbrfcom.dll через команду:
regsvr32 "C:\sbrf\sbrfcom.dll"
Бывает ситуация, когда терминал заработал, но через пару дней 1С перестает его «видеть». Проанализируем настройки электропитания. Современные версии Windows очень агрессивно экономят энергию на USB-портах, что губительно для виртуальных COM-портов терминалов.
Разберем шаги по настройке стабильной связи и устранению сбоев оборудования:
Если вы используете 64-битную версию платформы 1С (процесс 1cv8.exe *64), крайне важно, чтобы библиотеки в папке C:\sbrf также поддерживали 64-битную архитектуру. Драйвер 2.7.2.2 универсален, но он полагается на внешние файлы pilot_nt.dll и gate.dll.
Проанализируем влияние переменных окружения. Иногда драйверу сложно найти зависимости. Чтобы помочь системе, попробуем добавить путь к папке банка в системную переменную PATH:
Path и добавьте в конец значение ;C:\sbrf (или ваш путь к библиотекам).Резюмируем: Если вы столкнулись с ошибкой теста в 1С:Розница 2.3 на новом драйвере Сбербанка — в 90% случаев это программная недоработка интерфейса самой 1С или драйвера, которая не влияет на продажи. Главный критерий успеха — прохождение реальной операции оплаты или сверки итогов.