Как отменить операцию на терминале Сбербанка при закрытии окна оплаты в 1С

Системный администратор 1С v8.3 (Управляемые формы) 1С:Розница Торговля и дистрибуция
← На главную

В процессе работы кассира часто возникают ситуации, когда после инициации оплаты по карте клиент решает изменить состав чека или вовсе отказывается от покупки. В конфигурациях 1С:Розница 2.3, УТ 11 и других современных решениях, использующих драйвер эквайринга Сбербанка версии 2.х, пользователи столкнулись с неприятной особенностью: при закрытии диалогового окна оплаты нажатием на «крестик», терминал не получает команду отмены. В результате сумма продолжает висеть на пин-паде, и если клиент приложит карту, деньги будут списаны, хотя в 1С операция будет считаться прерванной. Разберем подробно, почему так происходит и как правильно настроить систему.

Анализ технической причины проблемы

Для начала проанализируем ситуацию с технической точки зрения. В старых версиях интеграции 1С взаимодействовала с терминалом напрямую через динамическую библиотеку (DLL). В новых версиях драйвера (начиная с 2.х) используется механизм «обертки» над консольным приложением sb_pilot.exe. Когда кассир нажимает на кнопку закрытия окна (крестик в углу формы), операционная система принудительно завершает процесс визуального отображения окна драйвера. Однако сама библиотека sb_pilot в этот момент не успевает отправить терминалу сигнал Abort (прерывание) по протоколу обмена.

Терминал остается в режиме ожидания ответа от банковского хоста или физического взаимодействия с картой. Для устройства сессия не была разорвана корректно. Это создает риск «фантомных» оплат, когда чек в 1С не пробит, а средства со счета покупателя ушли. Рассмотрим основные способы решения этой проблемы.

Способ 1. Использование клавиши ESC для отмены

Как показывает практика и подтверждают инженеры Сбербанка, корректное прерывание операции через программное обеспечение возможно только при передаче определенного управляющего сигнала. Закрытие окна мышкой таким сигналом не является.

Рассмотрим правильный алгоритм действий кассира:

  1. Если необходимо отменить операцию, когда окно оплаты уже активно, кассиру следует нажать клавишу ESC на клавиатуре.
  2. Важный нюанс: фокус ввода должен находиться именно на маленьком сером окне драйвера Сбербанка. Если кассир успел кликнуть в основное окно 1С, фокус теряется, и нажатие ESC будет обработано самой 1С, а не драйвером эквайринга.
  3. При нажатии ESC в активном окне драйвера, программа sb_pilot посылает команду отмены на пин-пад, и терминал мгновенно возвращается в режим ожидания (очищает сумму).

Способ 2. Настройка параметров в файле pinpad.ini

Проанализируем возможности настройки поведения драйвера через конфигурационный файл. Файл pinpad.ini обычно располагается в папке с установленным ПО Сбербанка (часто это C:\sc552\ или путь, указанный в настройках драйвера в 1С).

Существует параметр ShowScreens, который определяет, будет ли отображаться то самое консольное окно, которое кассиры привыкли закрывать «крестиком». Рассмотрим два варианта настройки:

Вариант А: Скрытие окна


ShowScreens=0
В этом случае при нажатии кнопки «Оплатить» в 1С не будет появляться внешних окон. Система будет выглядеть «зависшей» до момента завершения операции на терминале. Это исключает возможность кассира закрыть окно некорректно, вынуждая его либо дождаться таймаута, либо нажать кнопку «Отмена» (красный крестик) на самом физическом терминале.

Вариант Б: Управление таймаутом Если терминал слишком долго ждет карту (например, 90 секунд), можно попросить техническую поддержку банка сократить время ожидания (параметр Timeout в настройках терминала). Это уменьшит время простоя кассы при ошибочных операциях.

Способ 3. Обновление компонент и ПО Сбербанка (UPOS)

Проблема часто обостряется на стыке старых прошивок терминала и новых драйверов 1С. Выясним, какие версии программного обеспечения наиболее стабильны. Опытным путем установлено, что корректная обработка прерываний лучше всего работает на версиях sb_pilot 33.17.3.0 и выше.

Рекомендуемые действия по обновлению:

  • Проверьте версию файла SberBankES_v2.dll. Она должна соответствовать актуальной версии из дистрибутива драйвера, поставляемого вместе с обновлением 1С.
  • Свяжитесь с сервисным инженером Сбербанка для обновления папки sc552 на кассовом компьютере до последней актуальной версии (UPOS 34 и выше).
  • Убедитесь, что в настройках «Подключаемого оборудования» в 1С выбрана правильная версия драйвера (2.х для новых релизов конфигураций).
  • Как предотвратить потерю денег при случайном закрытии окна

    Разберем ситуацию, если кассир все же закрыл окно «крестиком», а покупатель приложил карту. В современных версиях 1С:Розница и 1С:Управление торговлей предусмотрены механизмы защиты.

    Если возникло подозрение, что оплата прошла на терминале, но не зафиксировалась в программе, необходимо выполнить операцию «Проверка статуса оплаты». В форме оплаты платежной картой обычно присутствует кнопка «Операции с картой» или «Сервис», где можно выбрать пункт проверки последней транзакции. 1С опросит терминал, и если оплата была успешной, чек будет автоматически закрыт в программе без повторного списания средств.

    Подведем итог: для стабильной работы необходимо обучить персонал использовать клавишу ESC для программной отмены и кнопку «Отмена» (X) на самом терминале для физического прерывания операции. Использование «крестика» в интерфейсе Windows для закрытия окна эквайринга является грубой ошибкой эксплуатации, приводящей к рассинхронизации статусов между банком и учетной системой.

    ← На главную