При переносе базы 1С на новый компьютер или обновлении драйверов торгового оборудования пользователи часто сталкиваются с ситуацией, когда в Z-отчете (отчете о закрытии смены) суммы прихода по безналичному расчету внезапно оказываются в поле «Последующая оплата (Кредит)». Это серьезная методическая ошибка, которая ведет к расхождениям в налоговой отчетности, так как фактически выручка признается не полностью или неверно. В этой статье мы подробно разберем причины возникновения этой ситуации, проанализируем настройки драйверов АТОЛ и выясним, как правильно исправить уже пробитые чеки в зависимости от используемого формата фискальных данных (ФФД).
Проанализируем техническую сторону вопроса. Когда 1С отправляет команду на пробитие чека в фискальный регистратор, она не передает текстовое название типа оплаты (например, «Карта» или «Безналичные»). Вместо этого передается индекс (номер) типа оплаты. В кассовом аппарате (ККТ) существует внутренняя таблица, где каждому номеру соответствует определенное наименование.
Рассмотрим стандартное распределение индексов в современных прошивках АТОЛ:
Проблема возникает в тот момент, когда в настройках 1С:Предприятие или в параметрах драйвера ККТ происходит смещение этих индексов. Например, если 1С отправляет индекс 3, ожидая, что это «Безналичные» (как это могло быть в очень старых версиях драйверов или специфических конфигурациях), касса честно записывает сумму в «Кредит». При использовании устаревшего драйвера АТОЛ 8.х на новой платформе 1С такая путаница — обычное дело, так как современные конфигурации ориентированы на драйверы версии 10.х.
Прежде чем исправлять последствия, необходимо устранить причину, иначе каждый следующий чек будет пробит неверно. Разберем по шагам, что нужно проверить:
Важное замечание: использование драйвера АТОЛ 8.х крайне не рекомендуется. Он не поддерживает актуальные требования законодательства (например, ФФД 1.2 и маркировку). Рассмотрим возможность перехода на 10-ю версию драйвера для стабильной работы.
Если смена уже закрыта и вы увидели сумму в поле «Последующая оплата (Кредит)», эти чеки необходимо исправить. Существует два подхода, выбор которых зависит от вашей версии ФФД (Формат фискальных данных).
Посмотрим на алгоритм, который является общепринятым для ФФД 1.05. В этом формате нельзя просто «отредактировать» чек, поэтому мы должны полностью аннулировать неверный документ.
В итоге в ОФД и налоговую уйдет три записи: неверный приход, аннулирующий возврат и правильный приход. Баланс будет восстановлен.
Проанализируем более современный способ. Если ваша касса работает на ФФД 1.1 или 1.2, использование обычного возврата для исправления ошибок не приветствуется ФНС. Здесь необходимо использовать Чек коррекции.
Рассмотрим логику формирования коррекции:
В современных конфигурациях 1С (например, «Розница» или «Управление торговлей») предусмотрен специальный документ «Чек коррекции», который позволяет выбрать ошибочный чек и автоматически сформировать необходимые фискальные признаки для исправления.
Рассмотрим ситуацию, предложенную в одном из сообщений форума: пробить дополнительный чек с признаком «Оплата кредита». Это решение не является верным в данной ситуации. Почему? Потому что:
Если вы пойдете по этому пути, у вас в системе останется висеть «продажа в кредит», которую вы якобы погасили позже. С точки зрения налоговой проверки, первичный чек все равно будет содержать неверные реквизиты (тип оплаты в момент совершения сделки был безналичным, а не кредитным). Поэтому правильнее именно исправлять первичную ошибку через возврат или коррекцию.
Хотя настройки чаще всего выполняются в интерфейсе, посмотрим на логику, которая скрыта внутри обработки драйвера. При формировании JSON-задания для ККТ объект оплаты выглядит примерно так:
// Пример структуры оплаты в задании для драйвера 10.х
ЗаписьОплаты = Новый Структура;
ЗаписьОплаты.Вставить("type", 1); // 1 - это Безналичные
ЗаписьОплаты.Вставить("sum", СуммаЧека);
Если в вашей системе значение type подставляется динамически из настроек, убедитесь, что функция получения этого индекса возвращает правильное значение. Проанализируем настройки соответствия в коде (для разработчиков):
Функция ПолучитьКодТипаОплаты(ВидОплаты1С)
Если ВидОплаты1С = ПредопределенноеЗначение("Перечисление.ТипыОплатККТ.Электронные") Тогда
Возврат 1; // Соответствует таблице АТОЛ
ИначеЕсли ВидОплаты1С = ПредопределенноеЗначение("Перечисление.ТипыОплатККТ.ПоследующаяОплата") Тогда
Возврат 3;
КонецЕсли;
КонецФункции
Чтобы избежать штрафов (которые для юридических лиц могут достигать 10 000 рублей за неверные реквизиты чека согласно КоАП РФ), выполните следующие действия:
Помните, что добровольное исправление ошибки до момента её обнаружения налоговым органом освобождает организацию от административной ответственности.