В розничной торговле ситуации, когда покупатель оплачивает одну покупку одновременно и наличными, и банковской картой (смешанная оплата), встречаются повсеместно. Однако настоящие сложности у кассиров и программистов 1С начинаются тогда, когда этот же покупатель возвращается через несколько дней, чтобы сделать частичный возврат — вернуть только часть позиций из чека.
В этой статье мы подробно разберем, как правильно рассчитать пропорции возврата наличных и безналичных средств, какие строгие ограничения накладывает законодательство РФ, и как эти бизнес-процессы автоматизированы в программе 1С:Управление торговлей (УТ 11).
Прежде чем переходить к алгоритмам в 1С, необходимо четко уяснить правила игры, которые диктует законодательство. Ошибки в возвратах могут стоить организации крупных штрафов.
Согласно Указанию Банка России № 5348-У «О правилах наличных расчетов», расходовать поступающую в кассу наличную выручку можно строго на определенные цели. Возврат денег за товары, ранее оплаченные безналичным путем, в этот перечень не входит. Это означает:
Рассмотрим пример. Покупатель приобрел три товара на общую сумму 500 рублей. В чеке указано: оплачено наличными — 250 рублей, картой — 250 рублей. Покупатель возвращает два товара на сумму 333,34 рубля. В рамках закона кассир может выдать наличными максимум 250 рублей, а остаток (83,34 рубля) обязан отправить на карту. Но наиболее безопасным и простым решением будет вернуть всю сумму 333,34 рубля на карту покупателя.
Проанализируем ситуацию, описанную автором темы. Клиент купил 3 одинаковых товара на общую сумму 500 рублей, оплатив 250 рублей наличными и 250 рублей безналичным расчетом. Покупатель возвращает 2 товара.
В исходном чеке позиции разбиваются следующим образом (из-за невозможности разделить 500 на 3 без остатка):
Сумма возврата за две позиции составляет 333.34 рубля. Как разделить эту сумму между наличными и безналичными? Нацело пропорция не делится. Выясним, как решать эту задачу на практике.
В программе 1С:Управление торговлей копейки округляются автоматически по правилам математики, а возникающая погрешность (разница в копейках) относится на один из видов оплат. Кассиру нет необходимости высчитывать доли вручную. Программа сама предложит допустимые лимиты возврата наличных и безналичных средств, не позволяя превысить исходные суммы по чеку.
Рассмотрим подробнее три основных сценария, которые применяются на практике для решения проблемы частичного возврата смешанных оплат.
Это самый простой, надежный и юридически безопасный способ, который используют практически все крупные торговые сети. Вместо того чтобы высчитывать сложные пропорции частичного возврата, мы аннулируем всю сделку целиком.
Алгоритм действий кассира:
Этот способ полностью исключает человеческий фактор, ошибки кассира при расчете лимитов и возможные претензии со стороны налоговой инспекции.
Если покупатель согласен, то при частичном возврате всю сумму операции (например, 333.34 рубля из нашего примера) можно перечислить на его банковскую карту. Как мы уже выяснили в разделе законодательства, возвращать наличные за безнал нельзя, но возвращать безнал за наличные — абсолютно легально.
Для реализации этого сценария в 1С:Управление торговлей при оформлении документа ВозвратТоваровОтКлиента (или в интерфейсе РМК) кассир указывает вид оплаты «Платежная карта» на всю сумму возврата.
В современных конфигурациях 1С (УТ 11, Розница, ERP) встроенное Рабочее место кассира (РМК) умеет самостоятельно контролировать лимиты оплат. Посмотрим на логику работы системы.
Когда кассир нажимает кнопку «Возврат» и выбирает исходный чек, система анализирует его структуру. При попытке сделать частичный возврат программа открывает форму «Распределение оплаты». Кассир видит две колонки:
Программа автоматически подставляет пропорциональные суммы, округляя их до копеек, и жестко блокирует попытки выдать наличными больше положенного лимита.
При работе с банковскими картами важно понимать техническую разницу между двумя операциями на терминале, так как это напрямую влияет на возможность частичного возврата:
Если вы разрабатываете собственное решение или дорабатываете нетиповую конфигурацию 1С, вам потребуется алгоритм контроля лимитов смешанной оплаты. Проанализируем пример кода на языке 1С, который решает эту задачу при проведении документа возврата:
// Процедура проверяет превышение лимитов наличных при возврате смешанной оплаты
Процедура ПроверитьЛимитыОплатыПриВозврате(ДокументВозврата) Экспорт
// Получаем данные исходного чека продажи
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЧекПродажи.ОплатаНаличными КАК ИсходныйНал,
| ЧекПродажи.ОплатаПлатежнойКартой КАК ИсходныйБезнал
|ИЗ
| Документ.ЧекККМ КАК ЧекПродажи
|ГДЕ
| ЧекПродажи.Ссылка = &СсылкаНаПервичныйДокумент";
Запрос.УстановитьПараметр("СсылкаНаПервичныйДокумент", ДокументВозврата.ДокументОснование);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующая() Тогда
// Рассчитываем уже возвращенные суммы по этому чеку ранее
СтруктураПредыдущихВозвратов = ПолучитьСуммыРанееОформленныхВозвратов(ДокументВозврата.ДокументОснование);
ДоступноНаличных = Выборка.ИсходныйНал - СтруктураПредыдущихВозвратов.Наличные;
// Проверяем, не превышает ли текущий возврат наличных доступный лимит
Если ДокументВозврата.СуммаНаличные > ДоступноНаличных Тогда
ВызватьИсключение "Ошибка проведения! Сумма возврата наличными (" + ДокументВозврата.СуммаНаличные
+ ") превышает сумму наличных, оплаченных по чеку покупки (" + ДоступноНаличных + ").";
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Данный алгоритм гарантирует, что система автоматически заблокирует проведение некорректного документа, предохраняя торговую точку от нарушения кассовой дисциплины и штрафов со стороны налоговой.
Для успешной работы со смешанными оплатами при частичных возвратах в 1С:Управление торговлей рекомендуется придерживаться следующих правил:
Рабочее место кассира (РМК) в актуальных версиях 1С, где распределение копеек и контроль лимитов выполняются автоматически на уровне платформы.