При переходе организации с упрощенной системы налогообложения (УСН) на общую систему налогообложения (ОСН) технические специалисты и бухгалтеры часто сталкиваются со следующей проблемой. После изменения учетной политики в 1С и обновления параметров ККТ на кассе перестают печататься чеки, в которых присутствует товар со ставками НДС 20% или 18%. При этом чеки со ставкой 10% или «Без НДС» могут пробиваться без каких-либо затруднений. В процессе печати программный интерфейс выдает критическую ошибку: «Сумма налога больше суммы регистраций по чеку и/или итога» (в протоколах ККТ АТОЛ она также известна под кодом -3969).
В этой статье мы подробно разберем, почему возникает этот сбой, проанализируем основное решение с форума, связанное с конфликтом драйверов торгового оборудования в 1С:Розница.Аптека, а также рассмотрим другие сопутствующие причины аппаратного и программного характера.
Физический смысл ошибки заключается во внутреннем математическом конфликте ККТ. Когда программа 1С:Предприятие отправляет xml-пакет с данными чека на фискальный регистратор, касса выполняет перерасчет всех суммовых показателей (стоимость позиций, скидки, округления и суммы налога по каждой строке). Если рассчитанная кассой сумма налога по определенной секции или ставке превышает допустимый математический предел (например, из-за неверной СНО в памяти кассы или некорректно переданного параметра налога из 1С), фискальный накопитель блокирует операцию регистрации чека во избежание некорректной отправки данных в ОФД.
Проанализируем детально основные методы устранения этой неисправности по шагам.
Как показывает практика автоматизации торговли, очень часто при переходе на новые ставки НДС или смене СНО в операционной системе устанавливается новый драйвер ККТ (например, 10.x.x.x), однако платформа 1С:Предприятие продолжает использовать старые библиотеки (компоненты драйвера версии 8.х или устаревшие релизы 10-й версии), сохраненные в локальном кэше пользователя или каталоге базы данных.
Разберем по шагам процесс полной очистки и переустановки драйвера АТОЛ для исправления этой ситуации:
1С:Розница.C:\Users\[ИмяПользователя]\AppData\Roaming\1C\1Cv8\ExtCompT\
C:\Users\[ИмяПользователя]\AppData\Local\1C\1Cv8\
1С:Розница). При установке выберем разрядность, соответствующую разрядности вашего клиента 1С (32-бит или 64-бит).Рассмотрим структуру типового XML-кода, который формирует 1С при отправке чека в драйвер. Если драйвер устарел, теги разметки налоговых ставок могут передаваться некорректно:
// Пример структуры XML-пакета, формируемого 1С для передачи в драйвер ККТ
&НаКлиенте
Процедура СформироватьXMLДляККТ(ПараметрыЧека)
ЗаписьXML = Новый ЗаписьXML;
ПараметрыЗаписи = Новый ПараметрыЗаписиXML("UTF-8", "1.0", Ложь);
ЗаписьXML.УстановитьСтроку(ПараметрыЗаписи);
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("FiscalReceipt");
// Позиция чека со ставкой НДС 20%
ЗаписьXML.ЗаписатьНачалоЭлемента("Position");
ЗаписьXML.ЗаписатьАтрибут("Name", "Медикамент Аспирин уп.10");
ЗаписьXML.ЗаписатьАтрибут("Price", "120.00");
ЗаписьXML.ЗаписатьАтрибут("Quantity", "1");
ЗаписьXML.ЗаписатьАтрибут("Amount", "120.00");
ЗаписьXML.ЗаписатьАтрибут("TaxRate", "20"); // Передача ставки НДС 20%
ЗаписьXML.ЗаписатьАтрибут("TaxType", "VAT20"); // Идентификатор типа налога
ЗаписьXML.ЗаписатьКонецЭлемента(); // Position
ЗаписьXML.ЗаписатьКонецЭлемента(); // FiscalReceipt
РезультатXML = ЗаписьXML.Закрыть();
КонецПроцедуры
Довольно часто ошибка -3969 возникает из-за того, что в 1С:Розница учетную политику изменили на ОСН, а физическая касса по-прежнему настроена только на работу по УСН. При попытке пробить чек со ставкой НДС 20% касса выдает ошибку, так как на УСН ставки 20% не существует.
Выполним перерегистрацию СНО на кассовом аппарате:
Кассовый аппарат хранит ставки НДС в своей внутренней таблице под определенными номерами (индексами налогов). В разных моделях ККТ и версиях прошивок эти индексы могут отличаться. Если 1С отправляет ставку «НДС 20%» под индексом, который в кассе привязан к «Без НДС», возникнет конфликт сумм.
Для исправления маппинга выполним следующие действия:
1С:Розница перейдем в карточку кассы (раздел Администрирование — Подключаемое оборудование).В некоторых случаях ошибка -3969 провоцируется тем, что 1С передает в кассу уже рассчитанную сумму налога в копейках по каждой позиции (тег TaxSum). Из-за различий в математических алгоритмах округления 1С и прошивки ККТ может возникнуть разница в 1 копейку. Касса пересчитывает налог самостоятельно, видит расхождение и считает, что переданная из 1С сумма налога превышает допустимый итог.
Для решения этой проблемы проанализируем настройки передачи налогов:
TaxSum).Если кассовый аппарат АТОЛ эксплуатируется длительное время, на нем может быть установлена старая платформа (2.5) или отсутствовать необходимая лицензия на поддержку ставки НДС 20% (для касс, выпущенных до 2019 года, требовался специальный ввод Кода защиты №10).
Выполним проверку лицензий:
Применяя указанные методы последовательно, мы сможем быстро локализовать источник неисправности и восстановить корректную печать фискальных чеков при работе в обновленной системе налогообложения.