В процессе работы кассира часто возникают ситуации, когда после инициации оплаты по карте клиент решает изменить состав чека или вовсе отказывается от покупки. В конфигурациях 1С:Розница 2.3, УТ 11 и других современных решениях, использующих драйвер эквайринга Сбербанка версии 2.х, пользователи столкнулись с неприятной особенностью: при закрытии диалогового окна оплаты нажатием на «крестик», терминал не получает команду отмены. В результате сумма продолжает висеть на пин-паде, и если клиент приложит карту, деньги будут списаны, хотя в 1С операция будет считаться прерванной. Разберем подробно, почему так происходит и как правильно настроить систему.
Для начала проанализируем ситуацию с технической точки зрения. В старых версиях интеграции 1С взаимодействовала с терминалом напрямую через динамическую библиотеку (DLL). В новых версиях драйвера (начиная с 2.х) используется механизм «обертки» над консольным приложением sb_pilot.exe. Когда кассир нажимает на кнопку закрытия окна (крестик в углу формы), операционная система принудительно завершает процесс визуального отображения окна драйвера. Однако сама библиотека sb_pilot в этот момент не успевает отправить терминалу сигнал Abort (прерывание) по протоколу обмена.
Терминал остается в режиме ожидания ответа от банковского хоста или физического взаимодействия с картой. Для устройства сессия не была разорвана корректно. Это создает риск «фантомных» оплат, когда чек в 1С не пробит, а средства со счета покупателя ушли. Рассмотрим основные способы решения этой проблемы.
Как показывает практика и подтверждают инженеры Сбербанка, корректное прерывание операции через программное обеспечение возможно только при передаче определенного управляющего сигнала. Закрытие окна мышкой таким сигналом не является.
Рассмотрим правильный алгоритм действий кассира:
sb_pilot посылает команду отмены на пин-пад, и терминал мгновенно возвращается в режим ожидания (очищает сумму).Проанализируем возможности настройки поведения драйвера через конфигурационный файл. Файл pinpad.ini обычно располагается в папке с установленным ПО Сбербанка (часто это C:\sc552\ или путь, указанный в настройках драйвера в 1С).
Существует параметр ShowScreens, который определяет, будет ли отображаться то самое консольное окно, которое кассиры привыкли закрывать «крестиком». Рассмотрим два варианта настройки:
Вариант А: Скрытие окна
ShowScreens=0
Вариант Б: Управление таймаутом
Если терминал слишком долго ждет карту (например, 90 секунд), можно попросить техническую поддержку банка сократить время ожидания (параметр Timeout в настройках терминала). Это уменьшит время простоя кассы при ошибочных операциях.
Проблема часто обостряется на стыке старых прошивок терминала и новых драйверов 1С. Выясним, какие версии программного обеспечения наиболее стабильны. Опытным путем установлено, что корректная обработка прерываний лучше всего работает на версиях sb_pilot 33.17.3.0 и выше.
Рекомендуемые действия по обновлению:
SberBankES_v2.dll. Она должна соответствовать актуальной версии из дистрибутива драйвера, поставляемого вместе с обновлением 1С.sc552 на кассовом компьютере до последней актуальной версии (UPOS 34 и выше).Разберем ситуацию, если кассир все же закрыл окно «крестиком», а покупатель приложил карту. В современных версиях 1С:Розница и 1С:Управление торговлей предусмотрены механизмы защиты.
Если возникло подозрение, что оплата прошла на терминале, но не зафиксировалась в программе, необходимо выполнить операцию «Проверка статуса оплаты». В форме оплаты платежной картой обычно присутствует кнопка «Операции с картой» или «Сервис», где можно выбрать пункт проверки последней транзакции. 1С опросит терминал, и если оплата была успешной, чек будет автоматически закрыт в программе без повторного списания средств.
Подведем итог: для стабильной работы необходимо обучить персонал использовать клавишу ESC для программной отмены и кнопку «Отмена» (X) на самом терминале для физического прерывания операции. Использование «крестика» в интерфейсе Windows для закрытия окна эквайринга является грубой ошибкой эксплуатации, приводящей к рассинхронизации статусов между банком и учетной системой.