При работе с торгово-кассовым оборудованием (в частности, ККТ АТОЛ 30Ф) и конфигурацией 1С:Управление торговлей 11.4 пользователи нередко сталкиваются со сбоями при попытке пробить фискальный чек. Типичный сценарий развития проблемы выглядит следующим образом: сначала система выдает ошибку вида Ошибка реквизита: Неизвестная ошибка ФН (код ошибки драйвера -4048), а после обновления конфигурации 1С ситуация меняется на ошибку Сумма товарных позиций больше суммы оплаты.
В этой статье мы подробно проанализируем причины возникновения обеих ошибок, изучим логи кассового драйвера и разберем по шагам способы их устранения.
Рассмотрим детальный лог работы драйвера ККТ АТОЛ при отправке команды открытия и заполнения позиции чека:
14.03.2018 22:50:50.363 Driver.Set_Summ 0,17
14.03.2018 22:50:50.363 Driver.Set_Name Размешиватель ПС белый (500шт/уп, 30уп/кор)
14.03.2018 22:50:50.363 Driver.Set_Quantity 1
14.03.2018 22:50:50.363 Driver.Set_Price 0,14
14.03.2018 22:50:50.364 Driver.Set_DiscountValue -0,03
14.03.2018 22:50:50.364 Driver.Set_TaxTypeNumber 3
14.03.2018 22:50:50.364 Driver.EndItem
...
14.03.2018 22:50:50.376 Ошибка! ResultCode = -4048 ResultDescription = "Ошибка реквизита: Неизвестная ошибка ФН" BadParam = 0
Проанализируем параметры, которые 1С передает кассовому аппарату:
Driver.Set_Price = 0,14 (цена товара без скидки);Driver.Set_Quantity = 1 (количество);Driver.Set_DiscountValue = -0,03 (величина скидки со знаком «минус»);Driver.Set_Summ = 0,17 (итоговая сумма по строке чека).Выясним причину сбоя:
В данном случае отрицательное значение скидки DiscountValue = -0,03 фактически является наценкой. Однако протокол взаимодействия с Фискальным Накопителем (ФН) и Формат Фискальных Документов (ФФД версии 1.05 и выше) жестко регламентируют проверку математических равенств в чеке. Передача наценок в виде отрицательных скидок через кассовый драйвер недопустима. Фискальный накопитель отказывается регистрировать позицию, у которой итоговая сумма позиции превышает произведение цены на количество, и возвращает статус ошибки реквизита -4048.
Для устранения ошибки -4048 необходимо исключить передачу отрицательных скидок на кассовый аппарат. Выполним следующие действия:
Set_Price до момента формирования чека. То есть товар должен передаваться в кассу с финальной ценой 0,17 руб. без использования параметра скидки.Часто после обновления конфигурации 1С (например, с УТ 11.4.2 до 11.4.3 и выше) алгоритм формирования чека меняется: 1С начинает передавать в кассу конечные цены с уже учитанной скидкой. Но при этом возникает новая ошибка: Сумма товарных позиций больше суммы оплаты.
Рассмотрим, почему это происходит:
Главная причина заключается в попозиционном округлении копеек при распределении общих скидок на чек или при продаже составных позиций с дробным количеством.
Предположим, в документе продаж применилась скидка, которая распределилась по строкам. В результате сложения округленных до двух знаков после запятой сумм по всем строкам итоговая сумма товаров составила, например, 100,01 руб., а сумма полученной оплаты от клиента (передаваемый вид оплаты) равна 100,00 руб. Кассовый аппарат сравнивает общую сумму всех строк с суммой полученных средств и блокирует операцию, так как сумма товаров превышает сумму оплаты на 1 копейку.
Для устранения проблемы округления копеек в 1С:Управление торговлей 11.4 предусмотрены специальные механизмы управления форматно-логическим контролем.
Способ 1. Настройка форматно-логического контроля (ФЛК) в 1С
Форматно-логический контроль).При выборе варианта «Зачитывать суммы» система 1С при обнаружении копеечных расхождений автоматически скорректирует сумму последней позиции чека, чтобы итоговая сумма товарных строк строго совпала с общей суммой оплаты.
Способ 2. Проверка установок округления в правилах скидок
Если в торговом предприятии активно используются автоматические скидки, перейдем в раздел CRM и продажи > Правила продаж > Скидки (наценки) и проверим настройки округления. Для всех распределяемых скидок рекомендуем указывать округление в пользу покупателя до целых копеек или рублей, чтобы избежать появления дробей с плавающей запятой на этапе распределения по строкам номенклатуры.