Почему в 1С:Розница не пробивается чек со скидкой на кассе Атол и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:Розница Торговля и дистрибуция
← На главную

При работе в режиме рабочего места кассира (РМК) конфигурации 1С:Розница может возникнуть ситуация, когда обычные чеки печатаются штатно, но при применении ручной скидки или механизма округления фискальный регистратор возвращает ошибку Неизвестная ошибка ФН, а на чековой ленте печатается Чек аннулирован. Разберем причины возникновения этой ошибки и пошаговые способы её устранения.

Причины возникновения ошибки ФН при расчете скидок

Проанализируем механику работы фискального накопителя и формата фискальных документов (ФФД). Начиная с версии ФФД 1.05 и выше, к фискальным чекам предъявляется жесткое требование математической сходимости:

Цена за единицу (с учетом скидок) × Количество = Сумма позиции

Если в учетной системе применяется скидка на весь чек или ручное распределение скидки по строкам, могут возникнуть дробные доли копеек. В этом случае фискальный накопитель фиксирует расхождение параметров команды и отклоняет регистрацию фискального документа (код ошибки ФН 231 / 0xE7). Кроме того, ошибка возникает из-за несоответствия версии прошивки ККТ и используемого драйвера торгового оборудования (ДТО).

Способ 1. Обновление и согласование версии драйвера ККТ

Разберем по шагам, как проверить и обновить стек драйверов для кассовых аппаратов Атол:

  1. Выясним текущую версию прошивки кассового аппарата и версию драйвера, установленного в операционной системе. Свежие прошивки ККТ требуют актуальных версий драйверов (переход с устаревших версий 8.х на 9.х или 10.х).
  2. Установим актуальный релиз ДТО (Драйвер торгового оборудования) от производителя. На современных конфигурациях рекомендуется использовать драйверы линейки ДТО 10, поддерживающие нативный протокол обмена и все требования ФФД.
  3. Обновим интеграционную компоненту в 1С через раздел Администрирование → Подключаемое оборудование. Выберем экземпляр ККТ и обновим драйвер в свойствах устройства.
  4. Выполним тест подключения устройства из 1С и проверим тестовое пробитие чека со скидкой.

Способ 2. Включение форматно-логического контроля «Разделять строки»

Рассмотрим ситуацию, когда при покупке нескольких единиц товара скидка делится с неделящимся остатком (например, скидка 1 рубль на 3 единицы товара по 100 рублей). Чтобы избежать ошибки округления в копейках, 1С предоставляет встроенный механизм форматно-логического контроля.

Настроим этот параметр в программе:

  1. Перейдем в раздел Администрирование → Подключаемое оборудование → ККТ с передачей данных.
  2. Откроем карточку настроек подключенного кассового аппарата.
  3. В поле Форматно-логический контроль установим значение Разделять строки.
  4. Сохраним настройки.

При таком режиме программа 1С автоматически разобьет одну строку с несколькими штуками товара на отдельные позиции с точными суммами без дробных копеек (например, 2 штуки по 33 рубля и 1 штука по 34 рубля), что полностью удовлетворяет проверке ФН.

Способ 3. Использование типового маркетингового округления

Разберем типичную ошибку при доработке конфигураций. Иногда разработчики пытаются реализовать округление копеек в большую сторону программным изменением цен перед печатью. Это приводит к нарушению публичной оферты и ошибкам ФНС при контроле чеков. Для корректной работы с суммами чека используем типовой механизм:

  1. Откроем справочник Маркетинг → Скидки (наценки, ограничения).
  2. Создадим новую скидку с типом Округление суммы документа.
  3. Укажем точность округления (например, до 1 рубля) с обязательным условием В пользу покупателя.
  4. Назначим созданную скидку для нужного магазина или рабочего места РМК.

Типовой механизм конфигурации гарантирует корректное распределение скидки округления по строкам фискального чека без конфликтов с драйвером ККТ.

Диагностика через системные логи драйвера

Если ошибка сохраняется, проанализируем журнал драйвера ККТ:

  1. Откроем файл лога драйвера (для ДТО 10 — fptr10.log, для ДТО 8/9 — fptr.log в каталоге %AppData%\ATOL или %ProgramData%\ATOL).
  2. Найдем команду печати перед строкой аннулирования чека.
  3. Сопоставим переданные параметры: LIBFPTR_PARAM_PRICE (цена), LIBFPTR_PARAM_QUANTITY (количество) и LIBFPTR_PARAM_POSITION_SUM (сумма позиции). Если их произведение не равно сумме позиции, проблема заключается в некорректном расчете данных со стороны учетной системы.
← На главную