При работе с контрольно-кассовой техникой (ККТ) АТОЛ, особенно популярной моделью АТОЛ 30Ф, пользователи часто сталкиваются с аппаратной ошибкой: «Сумма налога больше суммы регистраций по чеку и/или итога». Чаще всего это происходит в программе 1С:Бухгалтерия при попытке пробить чек из документа «Выдача наличных» или при оформлении возврата. Ситуация осложняется тем, что ошибка может возникать даже в тех случаях, когда организация работает «Без НДС».
В этой статье мы подробно разберем, почему возникает этот конфликт между 1С и кассовым аппаратом, и рассмотрим пошаговые методы решения проблемы.
Проанализируем, как 1С передает данные в драйвер. Когда вы выбираете в программе ставку «Без НДС», 1С отправляет на кассу определенный цифровой код (индекс налога). В драйвере АТОЛ 10-й версии каждому индексу соответствует своя настройка. Если в кассе индекс 4 настроен как 20%, а 1С передает его, ожидая «Без НДС», возникает математический конфликт: касса пытается высчитать налог из суммы позиции, и если итоговая сумма чека невелика, расчетный налог может «не поместиться» в итоговую регистрацию.
Как проверить и исправить:
Рассмотрим ситуацию с математической точностью. В 1С расчеты могут вестись с точностью до нескольких знаков после запятой, тогда как кассовый аппарат жестко ограничен двумя знаками. Если оформляется возврат товара, на который ранее была применена скидка, цена за единицу может стать дробной (например, 33.3333 руб.).
При умножении такой цены на количество и последующем выделении налога (даже если он нулевой) возникает разница в 1 копейку. Для кассы это критично: если расчетная сумма налога по алгоритмам ККТ оказывается хоть на долю копейки больше, чем переданный «Итог», чек будет отклонен.
Решение задачи:
Попробуем обновить драйвер АТОЛ до версии 10.9.0 или выше. В последних релизах драйверов алгоритмы передачи скидок и округлений были пересмотрены для минимизации подобных расхождений. Также в настройках 1С в карточке ККТ можно попробовать изменить способ форматно-логического контроля.
Выясним, какой тип документа используется. В 1С:Бухгалтерия документ ВыдачаНаличных может использоваться для разных целей. Если вы выдаете деньги покупателю при возврате товара, касса должна выполнить операцию «Возврат прихода». Если же вы закупаете товар у физлица — операцию «Расход».
Часто ошибка возникает из-за того, что:
Рекомендуется оформлять возврат через специализированный документ ВозвратТоваровОтКлиента и пробивать чек непосредственно из него, так как в нем структура налогов передается более корректно.
Проанализируем ситуацию с современными прошивками. В старых кассах (Платформа 2.5) налоги считал компьютер (1С) и просто передавал готовое число в кассу. В новых кассах на Платформе 5.0 логика изменилась: касса сама пересчитывает налог на основе переданных цен и количеств.
Если 1С передает в кассу и цену, и сумму, и сумму налога одновременно, касса сверяет их. Если внутренний расчет кассы не совпал с данными 1С (опять же из-за округления), возникает ошибка регистрации.
Посмотрим на пример в логах:
// Пример из fptr10.log при возникновении ошибки
> LIBFPTR_PARAM_TAX_SUM (double) 0.01
> LIBFPTR_PARAM_REGISTRATION_SUM (double) 0.00
// Касса видит, что налог (0.01) больше, чем сумма регистрации (0.00)
Для решения этой проблемы необходимо убедиться, что в 1С установлена актуальная версия БСП (библиотеки стандартных подсистем) и драйвер настроен на работу по актуальному протоколу, где расчет налогов максимально делегирован кассе.
Иногда ошибка является следствием «зависших» данных в памяти кассы. Если предыдущий чек был прерван из-за потери связи или ошибки питания, в регистрах ККТ могли остаться накопления, которые мешают открытию нового документа.
Что нужно сделать:
Подводя итог, если вы видите сообщение о превышении суммы налога, выполните следующие действия:
fptr10.log, чтобы увидеть конкретные цифры, которые 1С отправляет в устройство. Это поможет понять, где именно «вылезает» лишняя копейка.