← На главную
Проанализируем распространенную проблему, с которой сталкиваются пользователи при работе в программах 1С (в частности, 1С:Управление торговлей 11) с подключенными фискальными регистраторами (например, Штрих-ФР-01Ф или РИТЕЙЛ-01Ф) при пробитии чека со скидкой.
Ситуация выглядит следующим образом: при пробитии позиции с ручной или автоматической скидкой (например, товар стоит 103 рубля, скидка составляет 3 рубля, итого к оплате 100 рублей) программа при попытке провести чек выдает ошибку: «45h: Сумма всех типов оплаты меньше итога чека». При этом, если внести сумму полученных от клиента средств больше итоговой (например, 110 рублей), чек печатается, но сумма скидки не учитывается или сдача рассчитывается некорректно.
Причины возникновения проблемы
Рассмотрим, почему кассовый аппарат отклоняет проведение чека и откуда берется расхождение в суммах:
- Рассогласование алгоритмов расчета скидки в 1С и ККТ: Согласно 54-ФЗ, ККТ производит итоговую валидацию чека по каждой строке и чеку в целом. Если 1С передает позицию с исходной ценой и отдельным размером скидки, а кассовый аппарат пересчитывает скидку по внутреннему алгоритму таблицы драйвера, итоговая сумма строки в кассе выходит больше, чем сумма оплаты, полученная из 1С. Касса воспринимает это как недоплату.
- Различия в версиях прошивки ККТ: В ранних сборках ПО кассовых аппаратов (например, сборки 35692 от февраля 2017 года) функции работы со скидками в рамках 54-ФЗ содержали ошибки. На более свежих прошивках (сборка 36792 от марта 2017 года и новее) алгоритм обработки итогов чека работает корректно.
- Ошибки округления в конфигурациях 1С: В некоторых релизах 1С передача скидки с дробной ценой или при делении суммы на количество приводила к разнице в несколько копеек между итогом по строкам и общей суммой чека. В свежих релизах конфигураций (начиная с УТ 11.3.4) механизмы округления чеков ККТ были доработаны.
Способ 1. Отключение внутреннего расчета скидок в кассовом аппарате
Выясним, как отключить встроенный перерасчет скидок кассой, чтобы ККТ принимала конечную сумму строки ровно в том виде, в котором ее передает 1С.
- Откроем утилиту «Тест драйвера ФР» на рабочем месте, где подключена проблема касса.
- Установим связь с ККТ и перейдем в раздел Таблицы.
- Откроем Таблицу 17 «Региональные настройки».
- Найдем поле 3 «Режим начисления скидок» и установим его значение равным
0.
- Сохраним настройки таблицы и закроем драйвер.
После выполнения этой настройки кассовый аппарат прекратит самостоятельный перерасчет скидок и будет фиксировать итоговые суммы строк в точном соответствии с командами 1С.
Способ 2. Обновление прошивки ККТ и драйвера оборудования
Если отключение режима начисления скидок не решило проблему или настройки таблиц сбрасываются, проверим версии прошивки кассового аппарата и драйвера.
- Сравним версии ПО кассы на рабочей и проблемной точках с помощью «Теста драйвера ФР» (закладка «Состояние»).
- При наличии устаревшей сборки прошивки (например, ниже сборки 36792 для устройств Штрих-М) необходимо обновить внутреннее ПО кассового аппарата до актуальной версии с поддержкой ФФД 1.05 / 1.2.
- Убедимся, что на всех рабочих местах установлена одинаковая и стабильная версия драйвера ККТ (например, линейки Штрих-М 4.13/4.14/4.15).
Способ 3. Передача финальной цены со скидкой из 1С
Разберем вариант решения задачи на уровне программы 1С, если обновление прошивки кассы или конфигурации временно невозможно.
Чтобы избежать ошибок округления и расхождений при передаче отдельно цены и скидки, в обработке формирования чека (или расширении) настраивают передачу конечной цены позиции со сниженной ценой. В этом случае цена строки рассчитывается по формуле:
ЦенаСтроки = (БазоваяЦена * Количество - СуммаСкидки) / Количество
В фискальный чек передается уже конечная цена ЦенаСтроки без выделения скидки в отдельный тег ККТ, а информация о предоставленной скидке печатается текстовой строкой в чеке для информирования покупателя.