Как устранить дублирование оплат по эквайрингу Тинькофф (терминалы PAX) в 1С:Розница?

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

При работе в режиме рабочего места кассира (РМК) пользователи конфигурации 1С:Розница 2.3 (в частности версии 2.3.18.23 и выше) часто сталкиваются с неприятной ситуацией: при попытке оплаты чека картой терминал инициирует транзакцию, клиент успешно совершает оплату, однако окно ожидания в 1С не закрывается, и терминал выводит запрос на оплату повторно. Если кассир или клиент не проявят бдительность, это может привести к двойному списанию денежных средств с карты покупателя. Если же подождать около 30-40 секунд, система может "отвиснуть" и завершить фискализацию чека корректно.

В этой статье мы подробно разберем причины возникновения данной ошибки, проанализируем взаимодействие 1С с драйверами INPAS и предложим пошаговый алгоритм решения проблемы для терминалов PAX D230, PAX S300 и аналогичных моделей. Также рассмотрим аварийное пробитие чека при ошибке эквайринга.

Причина 1: Некорректная разрядность и версия компоненты драйвера

Основным виновником нестабильного поведения системы является драйвер эквайринга. Проанализируем техническую сторону: в современных дистрибутивах часто поставляется компонента a_inpasdc1c83n версии 1.1.17.28. Эта версия поддерживает как 32-битные (x86), так и 64-битные (x64) платформы 1С. Практика внедрений показывает, что именно в x64-реализации этой компоненты заложена ошибка обработки обратного вызова (callback) от терминала — её поможет выявить мониторинг журнала регистрации с уведомлениями в Telegram.

Когда терминал завершает транзакцию и отправляет сигнал "Успешно" в 1С, 64-битный драйвер может неверно интерпретировать состояние сессии или "потерять" пакет данных. 1С, не получив подтверждения, считает запрос незавершенным и инициирует его повторно, что и приводит ко второму окну оплаты.

Что необходимо сделать:

  1. Отказаться от использования новой универсальной компоненты a_inpasdc1c83n (с суффиксом "n").
  2. Установить "старую" стабильную компоненту a_inpasDC1c83, которая поддерживает только 32-битную платформу.
  3. Если ваша база 1С работает под управлением 64-битного клиента, вам все равно следует попробовать переключить оборудование на использование x86 драйвера через механизм регистрации библиотек (regsvr32) или вызов 32-битного сеанса 1С для рабочего места кассира.

Причина 2: Конфликт таймаутов в 1С и Smart Connector

Терминалы PAX, работающие с банком Тинькофф, часто используют промежуточное программное обеспечение Smart Connector. Разберем ситуацию: в настройках 1С по умолчанию таймаут ответа от терминала может составлять 30 секунд. Если банковский сервер отвечает чуть дольше (например, из-за медленного Wi-Fi на терминале D230), 1С разрывает соединение по таймауту именно в тот момент, когда терминал уже получил одобрение от банка.

В результате драйвер пытается завершить транзакцию, но логика Библиотеки подключаемого оборудования (БПО) заставляет систему отправить повторный запрос, чтобы "уточнить" статус. Это выглядит как повторное окно оплаты.

Решение по настройке таймаутов:

  1. Зайдем в раздел "Администрирование" — "Подключаемое оборудование" (удобно через централизованное администрирование рабочих мест и ККТ).
  2. Откроем карточку вашего эквайрингового терминала и перейдем в "Настройки".
  3. Найдем параметр "Таймаут" (или "Время ожидания ответа"). Установим значение в диапазоне 60–90 секунд.
  4. Аналогичный параметр проверим в конфигурационном файле Smart Connector (если он используется), установив там значение не меньше, чем в 1С.

Причина 3: Энергосбережение USB-портов (для PAX S300)

Если вы используете стационарный терминал PAX S300, подключенный по USB, проблема может крыться в настройках питания операционной системы Windows. Рассмотрим механизм: драйвер INPAS крайне чувствителен к микро-разрывам связи. Если Windows на мгновение снижает питание порта для экономии энергии, сессия драйвера "засыпает". При получении ответа от терминала драйвер не может передать его в 1С, сессия восстанавливается со сбоем, и происходит дублирование команды.

Инструкция по настройке питания:

  1. Нажмите правой кнопкой мыши на "Пуск" и выберите "Диспетчер устройств".
  2. Разверните ветку "Контроллеры USB".
  3. Для каждого устройства "Корневой USB-концентратор" и "Generic USB Hub" выполните следующие действия:
    • Нажмите правой кнопкой — "Свойства".
    • Перейдите на вкладку "Управление электропитанием".
    • Снимите галочку с пункта "Разрешить отключение этого устройства для экономии энергии".
  4. Перезагрузите компьютер.

Причина 4: Особенности сетевого подключения (для PAX D230)

Модель PAX D230 часто подключается по Wi-Fi. Нестабильный сигнал приводит к потере пакетов подтверждения (ACK/NAK) между кассой и терминалом. Если пакет подтверждения получения статуса оплаты потерян, драйвер инициирует повторную передачу данных.

Проанализируем сетевые настройки:

Выясним, какой IP-адрес назначен терминалу. Крайне важно, чтобы адрес был статическим. Если роутер переназначит IP-адрес терминалу в процессе работы, 1С отправит запрос "в пустоту", а затем, после обновления кэша ARP, может отправить его снова, создав очередь запросов на самом терминале.

Рекомендация: Закрепите IP-адрес за MAC-адресом терминала в настройках роутера и в настройках драйвера в 1С указывайте именно IP, а не имя хоста.

Причина 5: Фоновая фискализация и система взаимодействия

В новых версиях "1С:Розница" активно используется механизм фоновой фискализации и система взаимодействия для оповещения пользователя. Рассмотрим ситуацию, когда эти механизмы мешают работе эквайринга. Если в настройках включена фоновая печать чеков, 1С может сразу после отправки команды на эквайринг попытаться начать другие операции, не дожидаясь модального закрытия окна оплаты.

Что стоит проверить в 1С:

  1. В настройках РМК (включая РМК в режиме самообслуживания) попробуйте временно отключить опцию "Использовать фоновую фискализацию".
  2. Проверьте, не включена ли "Очередь чеков". Если чеки копятся в очереди, это может вызывать повторные обращения к оборудованию при попытке системы "протолкнуть" застрявший документ. В экстренных случаях применяют проведение Чека ККМ в РМК без фискализации — для этого подойдёт печать товарного чека без фискализации.
  3. В некоторых случаях помогает полная очистка кэша драйвера в папке пользователя: %AppData%\Roaming\Inpas\. Удалите содержимое логов и временных файлов транзакций, предварительно закрыв 1С.

Резюме и план действий

Для гарантированного устранения проблемы мы рекомендуем следовать данному алгоритму:

  1. Замените компоненту: Перейдите на версию a_inpasDC1c83 (x86), даже если используете современные релизы 1С. Это самое эффективное решение по отзывам технических специалистов.
  2. Увеличьте таймауты: Установите 90 секунд в настройках оборудования 1С.
  3. Настройте питание: Запретите Windows отключать USB-порты.
  4. Проверьте логи: Если проблема сохраняется, включите ведение лога в настройках драйвера. В логе ищите записи о повторных вызовах функции DoAmount или аналогичных методов инициации оплаты.

Помните, что специалисты банка часто не видят проблемы на своей стороне, так как с точки зрения банковского сервера терминал просто дважды запрашивает авторизацию. Проблема локализована именно в связке "Драйвер — БПО 1С", и вышеописанные шаги помогут вам восстановить стабильную работу торговой точки. Для этой задачи есть оплата частями Т-Банка для 1С:Розница.

← На главную