В процессе розничной торговли часто возникают ситуации, когда покупатель возвращает товар, оплаченный ранее смешанным способом — частично наличными, а частично банковской картой. При попытке оформить такой возврат в программе «1С:Розница 2.2» пользователи часто сталкиваются с крайне неприятной проблемой: в онлайн-кассе (ККТ) и Личном кабинете ОФД суммы возвратов удваиваются, а в чеках неожиданно появляется тип оплаты «Постоплата (Кредит)».
В этой статье мы подробно разберем, почему возникает эта ошибка, проанализируем внутренние механизмы взаимодействия программы 1С с фискальным накопителем по формату ФФД 1.05 и рассмотрим несколько пошаговых сценариев решения проблемы, которые помогут вам избежать расхождений в отчетности перед налоговыми органами.
Для начала проанализируем стандартный бизнес-процесс, который приводит к ошибке. Предположим, покупатель возвращает товар стоимостью 25 000 рублей, который ранее был приобретен за 10 000 рублей наличными и 15 000 рублей по безналичному расчету. Возврат происходит не в день покупки (то есть кассовая смена, в которой был продан товар, уже закрыта).
Обычно в бэк-офисе 1С цепочка документов оформляется следующим образом:
Возврат товаров от покупателя на общую сумму 25 000 рублей.Расходный кассовый ордер (РКО) на сумму 10 000 рублей для выдачи наличных.Эквайринговая операция на сумму 15 000 рублей для проведения безналичного возврата через терминал.Проблема кроется в том, как программа 1С отправляет команды на печать чека из этих документов. Согласно требованиям 54-ФЗ и правилам ФФД 1.05 (и выше), любой фискальный чек возврата должен содержать полную номенклатурную информацию о возвращаемом товаре, а сумма всех позиций в чеке должна строго до копейки равняться сумме всех типов оплаты.
Давайте пошагово рассмотрим, что происходит на фискальном уровне, когда кассир пытается пробить чеки из обоих документов:
Шаг 1. Пробитие чека из Расходного кассового ордера (РКО) на 10 000 руб.
Программа обращается к кассе и передает данные о возвращаемом товаре на полную сумму исходного документа-основания — 25 000 рублей. Однако сам документ РКО подтверждает выдачу только 10 000 рублей наличными. Чтобы фискальный чек сошелся и ККТ не выдала ошибку расхождения сумм, алгоритм интеграционной библиотеки 1С автоматически «закрывает» оставшуюся разницу в 15 000 рублей типом оплаты «Постоплата (Кредит)» (или «встречным представлением»).
Итог первого чека в ОФД: Возврат товара на 25 000 рублей (10 000 руб. наличными + 15 000 руб. кредитом).
Шаг 2. Пробитие чека из Эквайринговой операции на 15 000 руб.
Кассир открывает второй документ и снова нажимает кнопку «Пробить чек». Программа опять берет исходный товар на сумму 25 000 рублей, но из эквайринга видит оплату только в размере 15 000 рублей. Оставшиеся 10 000 рублей система вновь распределяет на тип оплаты «Постоплата (Кредит)».
Итог второго чека в ОФД: Возврат товара на 25 000 рублей (15 000 руб. безналичными + 10 000 руб. кредитом).
В результате по кассе проходят два совершенно независимых чека возврата, общая сумма которых составляет уже 50 000 рублей вместо фактических 25 000 рублей. При закрытии смены в ККТ и ОФД отражается колоссальное задвоение сумм, что ведет к искажению налоговой базы.
---
Чтобы избежать этой методологической ошибки, нам необходимо использовать сценарии, при которых на кассе пробивается только один сбалансированный чек, содержащий сразу два вида оплаты. Рассмотрим подробнее каждый из возможных способов.
Интерфейс РМК в «1С:Розница» изначально оптимизирован под сложные виды расчетов. Если у вас есть возможность провести операцию непосредственно через кассовую зону, выполним следующие действия:
При таком подходе касса сформирует ровно один фискальный документ возврата на сумму 25 000 рублей с корректным разделением на две платежные секции без привлечения механизма постоплаты.
Если бизнес-процесс требует оформления возврата из административной панели управления программой, но без использования тяжелых документов бэк-офиса, мы можем использовать механизм чеков ККМ:
Чеки ККМ.Этот способ гарантирует отправку на ККТ единого фискального пакета, где обе суммы будут распределены корректно в рамках одного чека.
Бывают ситуации, когда по правилам ведения учета в компании необходимо строго иметь в системе и заполненный документ Возврат товаров от покупателя, и РКО, и документ Эквайринговая операция. Чтобы сохранить эту цепочку и не допустить задвоения в ККТ, выполним следующий алгоритм:
Расходный кассовый ордер на сумму 10 000 рублей.Эквайринговая операция на 15 000 рублей. В этом документе кнопку «Пробить чек» нажимать категорически нельзя. Данный документ мы просто оставляем проведенным в базе данных, чтобы он зафиксировал движение денежных средств по банку.---
Для программистов и системных администраторов, которые хотят более глубоко настроить систему или доработать правила фискализации под нетипичное оборудование, разберем концептуальную логику распределения оплат. В конфигурации 1С:Розница 2.2 за подготовку данных к отправке на ККТ отвечает модуль фискализации. Ниже приведен пример того, как программно должна формироваться таблица оплат для передачи в обработку обслуживания ККТ, чтобы избежать автоматического балансирования кредитом:
// Пример формирования структуры параметров для фискализации смешанной оплаты
ПараметрыЧека = Новый Структура;
ПараметрыЧека.Вставить("ПризнакРасчета", Перечисления.ПризнакиРасчетаККТ.ВозвратПрихода);
ТаблицаОплат = Новый ТаблицаЗначений;
ТаблицаОплат.Колонки.Добавить("ТипОплаты", Новый ОписаниеТипов("ПеречислениеСсылка.ТипыОплатЧекаККМ"));
ТаблицаОплат.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
// Добавляем наличную часть возврата
СтрокаНаличные = ТаблицаОплат.Добавить();
СтрокаНаличные.ТипОплаты = Перечисления.ТипыОплатЧекаККМ.Наличные;
СтрокаНаличные.Сумма = 10000;
// Добавляем безналичную часть возврата
СтрокаКарта = ТаблицаОплат.Добавить();
СтрокаКарта.ТипОплаты = Перечисления.ТипыОплатЧекаККМ.ПлатежнаяКарта;
СтрокаКарта.Сумма = 15000;
// При вызове фискализации передаем полную таблицу оплат
МенеджерОборудованияВызовСервера.ПодготовитьДанныеДляПробитияЧека(ПараметрыЧека, ТаблицаОплат);
Если вы разрабатываете собственную обработку или дорабатываете логику проведения чеков из РКО, обязательно убедитесь, что функция подготовки чека анализирует весь состав исходного документа возврата, а не только сумму текущего платежного документа.
---
Если задвоение уже произошло, кассовая смена закрыта, а неверные данные улетели в налоговую инспекцию, эту ситуацию требуется оперативно исправить: