Переход с формата фискальных данных (ФФД) 1.00 на 1.05 в конфигурациях «1С:Комплексная автоматизация 1.1» часто сопровождается изменением поведения программы при оформлении частичного возврата товара. Бухгалтеры и пользователи сталкиваются с тем, что вместо привычного возврата одной позиции, касса пробивает сложную операцию с упоминанием «Кредита» или «Встречного предоставления». В этой статье мы подробно разберем, почему это происходит и какие шаги необходимо предпринять для корректной настройки системы.
В устаревшем формате ФФД 1.00 кассовая дисциплина была менее строгой. Касса позволяла просто «отщипнуть» сумму возвращаемого товара от общей суммы ранее пробитого чека. Однако формат 1.05 предъявляет жесткие требования к Признакам способа расчета (ПСР). Теперь налоговая должна четко видеть, за какой именно товар возвращаются деньги и в каком статусе находятся остальные товары, которые покупатель решил оставить себе.
Проанализируем ситуацию: когда в 1С (особенно в старых редакциях, таких как КА 1.1) инициируется частичный возврат, система часто не может корректно сопоставить остатки позиций в фискальном накопителе. Чтобы соблюсти закон, программа выполняет алгоритм «Возврат прихода + Новая продажа»:
Именно на втором этапе возникает проблема со словом «Кредит». Поскольку покупатель не вносит деньги в кассу повторно (ведь он заплатил за них ранее), 1С помечает тип оплаты в новом чеке как «Кредит» (постоплата) или «Встречное предоставление». С точки зрения закона это корректно, но для бухгалтерского учета это создает лишние сложности.
Выясним причину, по которой 1С выбирает именно «Кредит». В конфигурации «Комплексная автоматизация 1.1» логика распределения типов оплаты жестко прописана в коде. При формировании повторного чека на оставшиеся товары программа видит, что наличные или эквайринг не задействованы в текущей операции. В результате она подставляет единственный логичный с точки зрения системы вариант — оплату в рассрочку или зачет аванса.
Рассмотрим, как это выглядит в драйвере АТОЛ. Драйвер получает команду на пробитие чека, где сумма оплаты по типу «Наличные» равна нулю, а вся сумма распределена на тип оплаты №4 (обычно это и есть Кредит или Иная форма оплаты). Чтобы изменить это поведение, требуется вмешательство в программный код или обновление библиотек.
Прежде чем приступать к доработке 1С, проанализируем настройки самого драйвера ККТ. Иногда правильная конфигурация параметров позволяет смягчить проблему:
Для того чтобы частичный возврат работал «как прежде» (то есть пробивался чек только на одну возвращаемую позицию), необходимо изменить механизм передачи данных в драйвер. Рассмотрим пример логики, которую нужно внедрить в обработку обслуживания кассы или в модуль ОбщиеМодули.МенеджерОборудованияКлиент.
Нам нужно заставить систему не аннулировать весь чек, а посылать команду Vozvrat только для конкретных строк. Посмотрим на концептуальный пример кода, который предотвращает перезачет:
// Пример модификации логики перед отправкой чека на ККТ
Если ЭтоВозвратТовара И ПараметрыЧека.ЧастичныйВозврат Тогда
// Блокируем стандартный механизм формирования сторно-чека
ПараметрыЧека.ОтказОтПерезачета = Истина;
// Формируем таблицу только из возвращаемых позиций
НоваяТаблицаТоваров = Новый ТаблицаЗначений;
// ... заполнение только нужными строками ...
ОбъектДрайвера.СформироватьЧек(ПараметрыЧека, НоваяТаблицаТоваров);
КонецЕсли;
Важно понимать, что в КА 1.1 используется старый механизм работы с торговым оборудованием. Если ваша конфигурация сильно кастомизирована, лучшим решением будет интеграция актуальной БПО (Библиотеки подключаемого оборудования). Актуальные версии БПО умеют правильно обрабатывать частичные возвраты в формате 1.05 без создания виртуальных кредитов.
Проанализируем ситуацию с оплатой картой. При частичном возврате на карту возникают дополнительные риски. Банковский терминал ожидает операцию возврата на конкретную сумму. Если 1С пытается выполнить «полный возврат + новую продажу», может возникнуть конфликт:
Рекомендация: При использовании ФФД 1.05 и частичных возвратов по безналу, крайне важно использовать только прямую операцию возврата позиции. Если ваша версия 1С этого не поддерживает, рекомендуется оформлять возврат товара на склад документом «Возврат товаров от покупателя», а выдачу денег производить отдельным документом «Расходный кассовый ордер» или «Операция по платежной карте» с видом «Возврат денежных средств покупателю», что позволит инициировать на кассе чистый чек возврата без перезачетов.
Подведем итоги нашего анализа. Появление слова «Кредит» — это не ошибка драйвера АТОЛ, а результат работы механизмов 1С по приведению чека к требованиям ФФД 1.05. Для решения проблемы мы рекомендуем:
Рассмотренные методы позволяют вернуть прозрачность кассовых операций и избежать претензий со стороны проверяющих органов, сохраняя при этом корректность ведения учета в «1С:Комплексная автоматизация».