В процессе работы с программой 1С:Розница 2.2 (и более поздними версиями) пользователи часто сталкиваются с ситуацией, когда при оформлении продажи с наценкой (например, при продаже в рассрочку или использовании управляемых наценок) фискальный регистратор аннулирует чек. Касса выдает ошибку: «неверный формат или значение». Эта проблема особенно актуальна для владельцев оборудования АТОЛ (модели 30Ф, 22ПТК и другие).
В данной статье мы подробно разберем, почему возникает эта ошибка, как она связана с форматами фискальных данных (ФФД) и как решить проблему с помощью правильной настройки драйверов. Проанализируем ситуацию по шагам и найдем оптимальное решение.
Разберем техническую сторону вопроса. В современных протоколах передачи данных (ФФД 1.05, 1.1, 1.2), которые утверждены налоговой службой, понятие «наценка» как отдельный реквизит отсутствует. В структуре чека предусмотрены поля для цены за единицу, количества, суммы позиции и суммы скидки. Поля для «отрицательной скидки» (наценки) в протоколе нет.
Когда в интерфейсе РМК (Рабочее место кассира) мы применяем наценку, программа 1С пытается передать эти данные в драйвер кассы. Если 1С передает наценку как «скидку с минусом», современные драйверы (особенно АТОЛ 10-й серии) блокируют такую операцию, так как она противоречит логике ФФД. Касса получает некорректное значение и возвращает ошибку формата.
Рассмотрим, как программа должна обрабатывать такие данные в идеале: цена должна пересчитываться до момента передачи в ККТ. В чек должна уходить уже итоговая цена товара (увеличенная на сумму наценки), а поле скидки должно оставаться пустым. Если этого не происходит автоматически, возникают конфликты.
Выясним одну из самых неочевидных причин, о которой часто забывают системные администраторы. Проблема заключается в несоответствии разрядности (битности) операционной системы, платформы 1С и драйвера торгового оборудования (DTO).
Проанализируем ситуацию: в большинстве случаев на кассовых компьютерах установлена 64-битная Windows. Однако сама платформа 1С:Предприятие 8.3 (тонкий или толстый клиент) зачастую остается 32-битной. Это критически важно, так как внешние компоненты, через которые 1С общается с драйвером АТОЛ, должны совпадать по разрядности с клиентом 1С, а не с операционной системой.
Если вы устанавливаете 64-битный драйвер АТОЛ 10.х на 64-битную систему, но используете 32-битную 1С, программа может некорректно обрабатывать команды или вообще «не видеть» драйвер в списке доступных. Именно этот фактор часто приводит к ошибкам при передаче сложных структур данных, таких как наценки и скидки.
Рассмотрим пошаговый алгоритм действий, который помог участникам обсуждения справиться с проблемой:
DTO 10.x через панель управления Windows.Как показывает практика, установка 32-битной версии драйвера DTO 10 решает проблему передачи некорректных значений в 90% случаев, так как библиотеки взаимодействия начинают работать стабильно.
Посмотрим на ситуацию с точки зрения настроек самой программы. Если замена драйвера не помогла, необходимо изменить способ передачи данных о скидках и наценках в кассу. Разберем, как это сделать:
В настройках подключаемого оборудования в 1С есть важный параметр — «Вариант формирования чека». Если ККТ ругается на расхождение суммы (например, цена 415 руб., а 1С передает сумму 456 руб. из-за наценки), нужно перевести систему в режим, когда 1С передает в кассу уже готовую «чистую» цену без детализации скидок/наценок на стороне драйвера.
Для этого выполним следующие действия:
В этом случае 1С сама произведет все математические расчеты (Цена + Наценка), округлит их и передаст в драйвер одну итоговую цифру. Для кассового аппарата это будет выглядеть как обычная продажа товара по определенной цене, и ошибка формата исчезнет.
Проанализируем еще один важный нюанс: математическую корректность. Наценки (особенно процентные) часто создают дробные числа с большим количеством знаков после запятой (например, 100,5555 руб.).
Фискальный регистратор — устройство строгое. Он принимает только 2 знака после запятой. Если Цена * Количество не будет в точности равно Сумме позиции, касса выдаст ошибку и аннулирует чек. Важно проверить настройки округления в 1С:Розница:
Подводя итог, можно сказать, что ошибка при наценке в РМК — это результат конфликта между программным расчетом в 1С и жесткими требованиями драйвера ККТ. Для исправления ситуации мы рекомендуем:
Соблюдение этих правил позволит вам корректно пробивать чеки при любых условиях продаж, включая сложные схемы рассрочки и бонусных программ.