Что делать, если оплата по карте прошла, а кассовый чек не пробился?

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

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

Почему возникает такая ошибка?

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

  1. Таймаут соединения: Банк подтверждает транзакцию и отправляет сигнал на терминал, но из-за медленного интернета или задержек в локальной сети ответ не успевает дойти до 1С в отведенное время. Программа считает операцию прерванной.
  2. Окончание чековой ленты: Если бумага закончилась в момент печати фискального признака, касса может заблокировать операцию, хотя банковская часть уже успешно завершена.
  3. Ошибки драйвера ККТ: Некорректная работа службы fptr10 (для касс Атол) или аналогичных драйверов для других марок может привести к тому, что команда на печать чека «зависает».

Шаг 1: Сверка итогов на банковском терминале

Первым делом нам необходимо убедиться, что транзакция действительно была успешной и деньги не вернутся покупателю автоматически. Рассмотрим подробнее, как это сделать. Необходимо на самом банковском терминале запустить операцию «Сверка итогов» или распечатать «Краткий отчет». Если в итоговой сумме за смену присутствует сумма несостоявшегося чека (в нашем примере — 524 рубля), значит, эквайринговая часть операции завершена успешно.

Важный совет: Найдите на слип-чеке терминала (если он напечатался) или в отчете терминала номер RRN. Этот уникальный идентификатор транзакции поможет нам в дальнейшем при формировании корректировок.

Шаг 2: Решение проблемы внутри 1С через «отвязку» терминала

Одним из самых эффективных способов, предложенных участниками форума, является временное изменение настроек оборудования. Это позволяет провести документ в базе 1С и пробить чек, не провоцируя терминал на повторное списание денег.

Разберем по шагам этот алгоритм:

  1. Переходим в раздел НСИ и администрирование (или «Настройки» в зависимости от конфигурации), далее — РМК и оборудование.
  2. Открываем список Подключаемое оборудование.
  3. Находим наш банковский терминал. В настройках эквайрингового терминала необходимо найти флаг Без подключения оборудования или временно изменить тип подключения на «Автономный терминал». Это разорвет прямую связь между 1С и физическим устройством.
  4. Возвращаемся в рабочее место кассира (РМК) или документ продажи. Пробиваем чек, выбирая вид оплаты «Платежная карта».
  5. Поскольку терминал «отвязан», программа не будет посылать запрос в банк, а просто сформирует команду на печать чека в фискальный накопитель.
  6. Критически важно: После того как чек успешно распечатан, верните настройки оборудования в исходное состояние, чтобы следующие продажи проходили в обычном интегрированном режиме.

Шаг 3: Ручное пробитие через драйвер кассы

Если 1С категорически отказывается проводить операцию (например, документ заблокирован или выдает программную ошибку), можно воспользоваться утилитой драйвера ККТ. Посмотрим на пример работы с драйвером Атол (10-я версия):

  1. Закройте 1С, чтобы освободить порт кассы.
  2. Запустите Тест драйвера ККТ.
  3. Установите флаг Включено.
  4. Перейдите в раздел Чек. В типе чека выберите «Приход».
  5. В таблице предметов расчета укажите наименование товара, цену и количество.
  6. Перейдите на вкладку Оплата. Укажите сумму и выберите тип оплаты — Безналичными (обычно это Тип 2, но зависит от настроек вашей кассы).
  7. Нажмите Сформировать чек.

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

Шаг 4: Юридически корректное оформление (Чек коррекции)

Согласно 54-ФЗ, если оплата фактически принята, а чек не выбит своевременно, это является нарушением. Чтобы избежать штрафов, проанализируем ситуацию с точки зрения налоговой. Современные форматы фискальных данных (ФФД 1.1 и 1.2) позволяют использовать Чек коррекции.

В 1С для этого существует специальный документ Чек коррекции. При его создании укажите:

Такой подход делает операцию абсолютно прозрачной для ФНС и избавляет вас от необходимости писать объяснительные записки в налоговую инспекцию.

Как предотвратить повторение проблемы?

Чтобы минимизировать количество таких «зависаний» в будущем, рекомендуется выполнить следующие настройки в системе:

Проанализируем технические параметры драйвера. В настройках параметров эквайринга в 1С часто есть поле Таймаут ответа. По умолчанию он может составлять 30-45 секунд. Увеличьте его до 60-90 секунд. Это даст системе больше времени на обработку запроса в условиях медленного отклика банковского сервера.

Также проверьте настройки энергосбережения USB-портов на кассовом компьютере. Часто система «усыпляет» порт для экономии энергии, что приводит к разрыву связи с терминалом или кассой в самый неподходящий момент. Отключите эту функцию в диспетчере устройств.

Резюме для технического специалиста

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

Пример логики проверки статуса в коде может выглядеть так:


РезультатОперации = ЭквайринговаяСистема.ВыполнитьОплатуПоКарте(Сумма, ДанныеКарты);
Если Не РезультатОперации.Результат Тогда
    // Если здесь возникла ошибка связи с кассой, но банк вернул успех
    // Необходимо предусмотреть механизм подтверждения без повторной транзакции
    ЗаписатьСтатусВРегистр("ТребуетсяРучноеПодтверждение", Сумма);
КонецЕсли;

Подведем итог: Главное в данной ситуации — не паниковать и не проводить повторную оплату с покупателя. Сначала убедитесь в списании денег через отчет терминала, а затем используйте метод «отвязки» оборудования в 1С или драйвер ККТ для фискализации продажи. Это обеспечит соответствие данных в учетной системе, банке и налоговой отчетности.

← На главную