В процессе автоматизации розничной торговли интеграция учетной системы 1С с банковскими терминалами (эквайрингом) призвана ускорить обслуживание покупателей и исключить ошибки ручного ввода. Однако на практике администраторы и кассиры иногда сталкиваются с крайне неприятной ситуацией: покупатель прикладывает карту, терминал выдает чек «Одобрено» со списанием средств, но итоговый фискальный чек ККТ по какой-то причине не печатается (или печатается с задержкой). Спустя короткое время терминал самопроизвольно инициирует операцию «Авто-отмена», деньги возвращаются клиенту, а он уходит с товаром, фактически не оплатив его.
В этой статье мы подробно разберем, почему возникает этот сбой, проанализируем техническую логику взаимодействия 1С, драйвера эквайринга и кассового аппарата, а также рассмотрим пошаговые методы настройки оборудования, которые позволят навсегда забыть об этой проблеме.
Для понимания причин автоотмены важно знать, как устроена транзакция при полной интеграции терминала эквайринга с «1С:Розница». Процесс безналичной оплаты состоит из двух критически важных фаз:
Если на втором этапе происходит сбой — например, кассир замешкался и закрыл форму оплаты, сработал автоматический выход из РМК, в кассе закончилась лента или старый фискальный регистратор (такой как Атол 90Ф) слишком долго обрабатывал команду фискализации — драйвер эквайринга не получает от 1С подтверждение успешной печати чека в установленный таймаут.
Согласно жестким стандартам безопасности платежных систем и требованиям фискального законодательства, нельзя списать деньги с клиента, не выдав ему фискальный кассовый чек. Драйвер эквайринга (например, популярный INPAS DualConnector, используемый Т-Банком/Тинькофф) расценивает отсутствие фискального чека как критическую ошибку и автоматически отправляет на хост банка команду отмены транзакции (Void/Reversal). На терминале распечатывается короткий чек «Авто-отмена», а заблокированные средства мгновенно возвращаются на карту покупателю.
Рассмотрим пошагово три основных метода устранения этой проблемы путем корректировки настроек «1С:Розница» и драйверов оборудования.
Часто автоотмена происходит из-за того, что после успешной авторизации карты кассир отвлекается (например, упаковывает товар), а в 1С настроена быстрая автоматическая блокировка рабочего места при бездействии. При блокировке экрана кассовая смена переходит в режим ожидания, сессия оплаты прерывается, и 1С посылает драйверу эквайринга сигнал отмены.
Чтобы изменить эти настройки, выполним следующие действия:
В некоторых торговых точках кассиры жалуются на обилие лишних действий: сначала терминал печатает первый слип-чек, требует подтверждения кнопкой на клавиатуре ККМ или ПК, затем печатает второй слип-чек, и только после этого касса медленно начинает пробивать фискальный чек. Такая цепочка увеличивает время обслуживания и повышает риск того, что кассир отпустит клиента до момента фактической фискализации.
Мы можем оптимизировать печать слип-чеков двумя путями через настройки подключения эквайринга в 1С (раздел Администрирование -> Подключаемое оборудование -> Эквайринговые терминалы):
Печать чеков на терминале, то банковские чеки печатает сам терминал Verifone/Ingenico. Это разгружает фискальный регистратор. Кассиру необходимо строго дождаться, когда ККТ закончит печатать свой (третий по счету) итоговый чек с QR-кодом.Если вы используете устаревшие модели ККТ (например, Атол 90Ф в режиме фискального регистратора) или работаете с маркированным товаром, отправка запросов в систему «Честный Знак» и проверка кодов маркировки могут занимать значительное время. Терминал эквайринга просто не успевает дождаться окончания фискализации.
В этом случае необходимо увеличить таймаут ожидания подтверждения от кассового ПО в самом драйвере эквайринга. Для терминалов, работающих под управлением ПО семейства UniPOS (эквайринг INPAS/Т-Банк), это делается через утилиту настройки драйвера:
pos.xml / dc_conf.xml).ReceiptTimeout или FiscatizationTimeout).Что делать, если терминал уже выдал чек «Одобрено», деньги списаны, но программа 1С зависла или произошел сбой кассового аппарата, из-за чего чек не пробился, но при этом автоматической отмены тоже не произошло? В таких случаях, чтобы не списывать деньги с клиента повторно и не создавать расхождений в учете, следует использовать следующий регламент.
Для того чтобы закрыть продажу в 1С и пробить фискальный чек на ККТ без повторного обращения к банковскому терминалу, выполним следующие шаги:
Давайте посмотрим, как выглядит примерный концептуальный алгоритм обработки проведения транзакции в коде 1С, чтобы лучше понимать логику работы системы в этот момент:
Процедура ВыполнитьОплатуПоКарте(СуммаЧека, ЭквайринговыйТерминал)
// Шаг 1: Авторизация операции на терминале
РезультатАвторизации = ЭквайринговыйТерминал.ВыполнитьПлатеж(СуммаЧека);
Если РезультатАвторизации.Статус = "Успешно" Тогда
// Слип-чек успешно напечатан, деньги заблокированы на карте
Попытка
// Шаг 2: Попытка фискализации чека на ККТ
РезультатФискализации = ФискальныйРегистратор.НапечататьКассовыйЧек(СуммаЧека);
Если РезультатФискализации.Успешно Тогда
// Шаг 3: Подтверждаем транзакцию эквайрингу
ЭквайринговыйТерминал.ПодтвердитьТранзакцию(РезультатАвторизации.ИдентификаторТранзакции);
ЗаписатьПродажуВБазу();
Иначе
ВызватьИсключение "Ошибка печати фискального чека на ККТ!";
КонецЕсли;
Исключение
// Если ККТ не напечатал чек, драйвер терминала инициирует Void (автоотмену)
ЭквайринговыйТерминал.ОтменитьТранзакцию(РезультатАвторизации.ИдентификаторТранзакции);
СообщитьПользователю("Ошибка фискализации. Транзакция по карте отменена!");
КонецПопытки;
Иначе
Предупреждение("Оплата по карте отклонена банком.");
КонецЕсли;
КонецПроцедуры
Если транзакция на терминале прошла успешно, но чек в 1С был утерян, смена закрылась, а на ККТ чек так и не был пробит, во избежание штрафов от ФНС за неприменение контрольно-кассовой техники необходимо оформить Чек коррекции:
Применяя данные настройки и зная логику работы оборудования, мы сможем гарантировать стабильную работу кассовой зоны без финансовых потерь из-за случайных отмен безналичных платежей.