Почему после обновления кассы АТОЛ на ФФД 1.05 изменилась логика частичного возврата в 1С и как это исправить?

Программист 1С v8.3 (Обычные формы) 1С:Комплексная автоматизация Бухгалтерский учет Торговля и дистрибуция
← На главную

Переход с формата фискальных данных (ФФД) 1.00 на 1.05 в конфигурациях «1С:Комплексная автоматизация 1.1» часто сопровождается изменением поведения программы при оформлении частичного возврата товара. Бухгалтеры и пользователи сталкиваются с тем, что вместо привычного возврата одной позиции, касса пробивает сложную операцию с упоминанием «Кредита» или «Встречного предоставления». В этой статье мы подробно разберем, почему это происходит и какие шаги необходимо предпринять для корректной настройки системы.

Причина изменения логики: Требования ФФД 1.05

В устаревшем формате ФФД 1.00 кассовая дисциплина была менее строгой. Касса позволяла просто «отщипнуть» сумму возвращаемого товара от общей суммы ранее пробитого чека. Однако формат 1.05 предъявляет жесткие требования к Признакам способа расчета (ПСР). Теперь налоговая должна четко видеть, за какой именно товар возвращаются деньги и в каком статусе находятся остальные товары, которые покупатель решил оставить себе.

Проанализируем ситуацию: когда в 1С (особенно в старых редакциях, таких как КА 1.1) инициируется частичный возврат, система часто не может корректно сопоставить остатки позиций в фискальном накопителе. Чтобы соблюсти закон, программа выполняет алгоритм «Возврат прихода + Новая продажа»:

  1. Оформляется полный «Возврат прихода» на всю сумму первоначального чека (аннулирование старого чека).
  2. Автоматически пробивается новый чек «Приход» только на те товары, которые покупатель фактически оставил себе.

Именно на втором этапе возникает проблема со словом «Кредит». Поскольку покупатель не вносит деньги в кассу повторно (ведь он заплатил за них ранее), 1С помечает тип оплаты в новом чеке как «Кредит» (постоплата) или «Встречное предоставление». С точки зрения закона это корректно, но для бухгалтерского учета это создает лишние сложности.

Разбор проблемы «Кредита» в чеке

Выясним причину, по которой 1С выбирает именно «Кредит». В конфигурации «Комплексная автоматизация 1.1» логика распределения типов оплаты жестко прописана в коде. При формировании повторного чека на оставшиеся товары программа видит, что наличные или эквайринг не задействованы в текущей операции. В результате она подставляет единственный логичный с точки зрения системы вариант — оплату в рассрочку или зачет аванса.

Рассмотрим, как это выглядит в драйвере АТОЛ. Драйвер получает команду на пробитие чека, где сумма оплаты по типу «Наличные» равна нулю, а вся сумма распределена на тип оплаты №4 (обычно это и есть Кредит или Иная форма оплаты). Чтобы изменить это поведение, требуется вмешательство в программный код или обновление библиотек.

Настройка драйвера АТОЛ (10-я версия)

Прежде чем приступать к доработке 1С, проанализируем настройки самого драйвера ККТ. Иногда правильная конфигурация параметров позволяет смягчить проблему:

Техническое решение: Исправление кода в 1С

Для того чтобы частичный возврат работал «как прежде» (то есть пробивался чек только на одну возвращаемую позицию), необходимо изменить механизм передачи данных в драйвер. Рассмотрим пример логики, которую нужно внедрить в обработку обслуживания кассы или в модуль ОбщиеМодули.МенеджерОборудованияКлиент.

Нам нужно заставить систему не аннулировать весь чек, а посылать команду Vozvrat только для конкретных строк. Посмотрим на концептуальный пример кода, который предотвращает перезачет:


// Пример модификации логики перед отправкой чека на ККТ
Если ЭтоВозвратТовара И ПараметрыЧека.ЧастичныйВозврат Тогда
    // Блокируем стандартный механизм формирования сторно-чека
    ПараметрыЧека.ОтказОтПерезачета = Истина;
    
    // Формируем таблицу только из возвращаемых позиций
    НоваяТаблицаТоваров = Новый ТаблицаЗначений;
    // ... заполнение только нужными строками ...
    
    ОбъектДрайвера.СформироватьЧек(ПараметрыЧека, НоваяТаблицаТоваров);
КонецЕсли;

Важно понимать, что в КА 1.1 используется старый механизм работы с торговым оборудованием. Если ваша конфигурация сильно кастомизирована, лучшим решением будет интеграция актуальной БПО (Библиотеки подключаемого оборудования). Актуальные версии БПО умеют правильно обрабатывать частичные возвраты в формате 1.05 без создания виртуальных кредитов.

Особенности работы с эквайрингом при частичном возврате

Проанализируем ситуацию с оплатой картой. При частичном возврате на карту возникают дополнительные риски. Банковский терминал ожидает операцию возврата на конкретную сумму. Если 1С пытается выполнить «полный возврат + новую продажу», может возникнуть конфликт:

  1. Терминал проводит возврат всей суммы.
  2. Касса печатает чек возврата.
  3. 1С пытается пробить новый чек продажи, но терминал «не понимает», откуда взять оплату, так как карта покупателя уже может быть извлечена.

Рекомендация: При использовании ФФД 1.05 и частичных возвратов по безналу, крайне важно использовать только прямую операцию возврата позиции. Если ваша версия 1С этого не поддерживает, рекомендуется оформлять возврат товара на склад документом «Возврат товаров от покупателя», а выдачу денег производить отдельным документом «Расходный кассовый ордер» или «Операция по платежной карте» с видом «Возврат денежных средств покупателю», что позволит инициировать на кассе чистый чек возврата без перезачетов.

Итоги и рекомендации

Подведем итоги нашего анализа. Появление слова «Кредит» — это не ошибка драйвера АТОЛ, а результат работы механизмов 1С по приведению чека к требованиям ФФД 1.05. Для решения проблемы мы рекомендуем:

  1. Обновить БПО: Это самый надежный способ получить актуальную логику работы с ФФД 1.05.
  2. Использовать внешние обработки: Если обновление всей конфигурации КА 1.1 невозможно, существуют проверенные внешние обработки обслуживания ККТ, где логика частичного возврата уже переписана под требования бухгалтеров.
  3. Обучить персонал: Если техническая правка невозможна в короткие сроки, необходимо разъяснить бухгалтерии, что «Кредит» в данном контексте является лишь фискальным признаком зачета ранее внесенных средств и не влияет на задолженность контрагента в управленческом учете.

Рассмотренные методы позволяют вернуть прозрачность кассовых операций и избежать претензий со стороны проверяющих органов, сохраняя при этом корректность ведения учета в «1С:Комплексная автоматизация».

← На главную