Что делать, если в УТ 10.3 чек на возврат пробился, а банковский терминал не вернул деньги?

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

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

Причина возникновения проблемы

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

Проанализируем основные способы исправления этой ошибки, от манипуляций с оборудованием до вмешательства в код и регистры.

Способ 1: Использование эмулятора фискального регистратора

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

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

Способ 2: Метод точки останова в конфигураторе

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

Найдем в модуле документа или в общих модулях (обычно это ТОСервер или модули, связанные с обработкой торговых операций) процедуру, отвечающую за печать чека. Проанализируем код и найдем место, где вызывается функция ПечататьЧек().

Установим точку останова (F9) на строке, следующей сразу после вызова банковской транзакции, но перед вызовом печати на ККТ. Далее выполним следующие действия:

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

Важно: этот способ требует четкого понимания того, какие регистры накопления (например, ОплатыЧековККМ) должны обновиться при проведении документа.

Способ 3: Автономная работа с терминалом

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

  1. На самом терминале через сервисное меню выберем пункт «Возврат» (Refund). Потребуется ввести сумму и приложить карту клиента. В некоторых случаях нужен RRN (номер операции) из чека продажи.
  2. После того как терминал выдаст слип-чек о возврате, нам нужно закрыть задолженность в 1С.
  3. Поскольку фискальный чек уже пробит, нам нельзя проводить документ возврата через ККТ. В настройках эквайринга в 1С можно временно установить признак «Автономный терминал».
  4. Проведем документ в 1С. Программа просто зафиксирует факт возврата в регистрах РозничныеПродажи и ОплатыЧековККМ, не обращаясь к физическому устройству.

Способ 4: Прямой запуск банковского софта (на примере Сбербанка)

Если терминал интегрирован, на компьютере обычно установлена утилита от банка. Посмотрим на примере ПО sb_pilot. Мы можем запустить возврат напрямую через командную строку, минуя драйверы 1С:


cd C:\sc552\
loadparm.exe 4000

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

Юридическое обоснование и корректировка учета

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

Рассмотренные методы позволяют гибко подойти к решению проблемы в зависимости от ваших прав доступа и технической подготовки. Помните, что главное — обеспечить совпадение фактически выплаченных денег с данными, ушедшими в ОФД, и внутренним учетом в 1С:УТ 10.3.

← На главную