Ситуация, когда фискальный регистратор успешно пробивает чек возврата, а интегрированный банковский терминал выдает ошибку или «глючит», является одной из самых неприятных в розничной торговле. В результате мы получаем расхождение: по данным ОФД и кассы деньги клиенту возвращены, а по факту транзакция по банковской карте не состоялась. Рассмотрим подробнее, как технически грамотно «разрулить» эту ситуацию в программе 1С:Управление торговлей 10.3, чтобы выровнять остатки и не продублировать фискальные данные.
В типовой логике 1С:УТ 10.3 и драйверов торгового оборудования процесс возврата обычно идет последовательно: сначала программа инициирует транзакцию на эквайринговом терминале, и только при ее успешном завершении отправляет команду на фискализацию чека в ККТ. Однако из-за сбоев связи, таймаутов или специфических настроек драйвера может произойти разрыв: команда на ККТ ушла и выполнилась, а подтверждение от терминала либо не пришло, либо терминал отменил операцию в последний момент.
Проанализируем основные способы исправления этой ошибки, от манипуляций с оборудованием до вмешательства в код и регистры.
Этот метод позволяет провести операцию по банковскому терминалу через интерфейс 1С, не отправляя повторно данные в налоговую (ОФД). Разберем алгоритм по шагам:
ЧекККМ с видом «Возврат» проведется корректно.Если вы обладаете навыками программирования или имеете доступ к конфигуратору, можно использовать более «хирургический» метод. Он позволяет обмануть логику программы в момент пробития. Выясним, как это сделать:
Найдем в модуле документа или в общих модулях (обычно это ТОСервер или модули, связанные с обработкой торговых операций) процедуру, отвечающую за печать чека. Проанализируем код и найдем место, где вызывается функция ПечататьЧек().
Установим точку останова (F9) на строке, следующей сразу после вызова банковской транзакции, но перед вызовом печати на ККТ. Далее выполним следующие действия:
Важно: этот способ требует четкого понимания того, какие регистры накопления (например, ОплатыЧековККМ) должны обновиться при проведении документа.
Если банковский терминал позволяет выполнять операции вручную, мы можем провести возврат без прямого участия 1С. Рассмотрим, как это синхронизировать с базой:
РозничныеПродажи и ОплатыЧековККМ, не обращаясь к физическому устройству.Если терминал интегрирован, на компьютере обычно установлена утилита от банка. Посмотрим на примере ПО sb_pilot. Мы можем запустить возврат напрямую через командную строку, минуя драйверы 1С:
cd C:\sc552\
loadparm.exe 4000
Где 4000 — это код операции возврата для многих версий софта Сбербанка. После этого терминал активируется и предложит провести транзакцию. После завершения останется только скорректировать данные в 1С с помощью документа «Корректировка записей регистров», если типовые документы отказываются проводиться без печати чека.
Поскольку ситуация привела к техническому сбою, необходимо правильно оформить документы для бухгалтерии и налоговой отчетности. Проанализируем необходимые действия:
Оплаты чеков ККМ корректно отражают уменьшение выручки, иначе возникнет ошибка при закрытии смены и формировании Отчета о розничных продажах.Рассмотренные методы позволяют гибко подойти к решению проблемы в зависимости от ваших прав доступа и технической подготовки. Помните, что главное — обеспечить совпадение фактически выплаченных денег с данными, ушедшими в ОФД, и внутренним учетом в 1С:УТ 10.3.