При работе с торговым оборудованием, в частности с кассовыми аппаратами АТОЛ 11Ф, пользователи часто сталкиваются с аппаратной ошибкой «Неверная величина скидки/надбавки». Данная ситуация особенно характерна для магазинов с гибкой системой лояльности, где применяются не только классические скидки, но и наценки на определенные объемы или типы товаров. В этой статье мы подробно разберем причины возникновения этой проблемы и рассмотрим пошаговые алгоритмы ее решения в программных продуктах 1С.
Для начала проанализируем ситуацию с точки зрения законодательства и протоколов обмена данными. С введением форматов фискальных данных (ФФД 1.05, 1.1, 1.2) требования к передаче информации в чеке существенно ужесточились. Главная причина ошибки кроется в том, что в современных протоколах ФНС понятие «надбавка» (отрицательная скидка) фактически не поддерживается.
Рассмотрим подробнее механизмы взаимодействия 1С и ККТ:
(Цена * Количество) - Скидка = Сумма. Если в поле «Скидка» передается отрицательное значение (что программно интерпретируется как наценка), касса блокирует операцию, так как поле скидки не может содержать отрицательных чисел.Как показывает практика и опыт участников обсуждения, наиболее правильным решением является отказ от использования наценок в пользу скидок. Если ваша маркетинговая акция предполагает, что малый объем товара стоит дороже (в пересчете на кг), чем большой, нам следует изменить базовую точку отсчета.
Разберем алгоритм настройки:
Номенклатура или через документ Установка цен номенклатуры.Пример: Вместо того чтобы продавать 1 кг за 700 руб. и делать наценку для 500 грамм до 800 руб./кг, мы устанавливаем базовую цену 800 руб./кг. При покупке от 1 кг программа автоматически применит скидку, снизив цену до 700 руб./кг. С точки зрения ККТ это будет легитимная операция уменьшения цены, которая не вызовет ошибок.
Если изменить маркетинговую политику невозможно, мы можем изменить способ, которым 1С передает данные в кассу. В последних релизах 1С:Розница и 1С:Управление торговлей предусмотрены специальные настройки для обхода проблем с расчетом скидок на стороне кассы.
Проанализируем шаги настройки:
При такой настройке 1С сама выполнит все арифметические операции, включая сложные наценки, и отправит в драйвер ККТ уже готовую «Цену» и «Сумму», где скидка будет фактически равна нулю, так как она уже включена в цену. Это исключает конфликт математических проверок внутри драйвера АТОЛ.
Иногда проблема решается переходом на более современную версию драйвера, однако здесь есть свои нюансы. Рассмотрим ситуацию с драйверами АТОЛ 10.х.
Драйверы 10-й версии работают на новом стеке технологий и более строго относятся к передаваемым данным. Если вы решили обновиться, выполните следующие действия:
Важно: 10-й драйвер может быть чувствителен к копейкам. Если после обновления ошибка сохраняется, проверьте настройки округления в 1С. Сумма чека после скидок должна идеально делиться на количество без бесконечных дробей в остатке.
Выясним причину еще одной странности, упомянутой в обсуждении: когда весовой товар (например, 1.42 кг) печатается двумя строками (1.02 кг по одной цене и 0.40 кг по цене, отличающейся на 1 рубль). Это не ошибка программы, а алгоритм распределения копеек.
В соответствии с 54-ФЗ, итоговая сумма по позиции должна быть равна Цена * Количество. Если после применения общей скидки на чек итоговая сумма к оплате не делится ровно на количество весового товара, программа вынуждена «подогнать» цену. Поскольку цена в чеке ограничена двумя знаками после запятой, 1С разбивает позицию на две части, чтобы суммарно выйти на нужную копейку. Это единственный законный способ обеспечить математическую точность чека перед ОФД.
Для стабильной работы без ошибки «Неверная величина скидки/надбавки» мы рекомендуем придерживаться следующей стратегии:
Следуя этим инструкциям, вы сможете настроить корректную печать чеков и избежать остановок в работе кассовой зоны.