В процессе работы кассира часто возникают ситуации, когда после инициации оплаты по карте клиент решает изменить состав чека или вовсе отказывается от покупки. В конфигурациях 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
В этом случае при нажатии кнопки «Оплатить» в 1С не будет появляться внешних окон. Система будет выглядеть «зависшей» до момента завершения операции на терминале. Это исключает возможность кассира закрыть окно некорректно, вынуждая его либо дождаться таймаута, либо нажать кнопку «Отмена» (красный крестик) на самом физическом терминале.
Вариант Б: Управление таймаутом
Если терминал слишком долго ждет карту (например, 90 секунд), можно попросить техническую поддержку банка сократить время ожидания (параметр Timeout в настройках терминала). Это уменьшит время простоя кассы при ошибочных операциях.
Проблема часто обостряется на стыке старых прошивок терминала и новых драйверов 1С. Выясним, какие версии программного обеспечения наиболее стабильны. Опытным путем установлено, что корректная обработка прерываний лучше всего работает на версиях sb_pilot 33.17.3.0 и выше.
Рекомендуемые действия по обновлению:
SberBankES_v2.dll. Она должна соответствовать актуальной версии из дистрибутива драйвера, поставляемого вместе с обновлением 1С.sc552 на кассовом компьютере до последней актуальной версии (UPOS 34 и выше).Разберем ситуацию, если кассир все же закрыл окно «крестиком», а покупатель приложил карту. В современных версиях 1С:Розница и 1С:Управление торговлей предусмотрены механизмы защиты.
Если возникло подозрение, что оплата прошла на терминале, но не зафиксировалась в программе, необходимо выполнить операцию «Проверка статуса оплаты». В форме оплаты платежной картой обычно присутствует кнопка «Операции с картой» или «Сервис», где можно выбрать пункт проверки последней транзакции. 1С опросит терминал, и если оплата была успешной, чек будет автоматически закрыт в программе без повторного списания средств. Для своевременного контроля подобных расхождений в УТ 11 подойдет отчет для поиска непробитых чеков по эквайринговым операциям.
Подведем итог: для стабильной работы необходимо обучить персонал использовать клавишу ESC для программной отмены и кнопку «Отмена» (X) на самом терминале для физического прерывания операции. Использование «крестика» в интерфейсе Windows для закрытия окна эквайринга является грубой ошибкой эксплуатации, приводящей к рассинхронизации статусов между банком и учетной системой.