Как устранить расхождение копеек и появление лишней сдачи при печати чека на Datecs FP-3530T

Программист 1С v7.7 Налоговый учет Торговля и дистрибуция
← На главную

При оформлении оптовых отгрузок и печати фискальных чеков из 1С часто возникает ситуация, когда итоговая сумма документа расходится с суммой, которую рассчитывает фискальный регистратор. В результате аппарат либо выдает ошибку несоответствия сумм оплаты и чека, либо регистрирует возникшую разницу как сдачу покупателю. Разберем природу этой проблемы и рассмотрим способы ее устранения на примере фискального регистратора Datecs FP-3530T.

Проанализируем типовую ситуацию. В учетной системе базовой является цена без НДС. Расчет сумм в табличной части накладной выполняется по стандартной формуле: сначала вычисляется общая стоимость партии товара без налога, а затем на всю эту сумму начисляется НДС. Посмотрим на числовой пример:

  1. Количество товара: 120 единиц.
  2. Базовая цена без НДС: 7,42.
  3. Сумма без НДС: 120 × 7,42 = 890,40.
  4. НДС (20%): 890,40 × 0,2 = 178,08.
  5. Итоговая сумма с НДС: 890,40 + 178,08 = 1068,48.

Если из этой строки получить расчетную цену за единицу с НДС, то получится 7,42 × 1,2 = 8,904. При округлении до двух знаков для передачи в кассовое ПО цена становится равной 8,90. Когда эти данные отправляются в фискальный регистратор, аппарат выполняет жесткое умножение переданной розничной цены на количество: 120 × 8,90 = 1068,00. При этом из учетной системы на оплату чека передается полная сумма документа — 1068,48. Фискальный регистратор фиксирует переплату и печатает в чеке 48 копеек сдачи. Выясним причину такого поведения и способы его исправления.

Причина ошибки и логика фискального регистратора

Фискальный регистратор жестко контролирует математический баланс чека. Он не может зарегистрировать сумму строки произвольно, если она не равна произведению переданных цены и количества. Кроме того, по умолчанию большинство аппаратов настроено на работу с так называемым вложенным (внутренним) НДС, когда налог вычленяется из переданной цены, включающей НДС. В оптовой торговле и налоговом учете базой выступает цена без НДС, а налог является наложенным (внешним).

В фискальном регистраторе Datecs FP-3530T заложена возможность работы с обоими типами налоговых ставок:

  1. Вложенный налог: цена товара включает налог, ставка рассчитывается выделением из итога позиции.
  2. Наложенный налог: цена товара считается чистой базой, а регистратор самостоятельно начисляет ставку НДС сверху к стоимости позиции.

Решение через перенастройку фискального регистратора

Наиболее надежный способ исключить копеечные расхождения на FP-3530T — перевести фискальный регистратор в режим работы с наложенным НДС. Однако при попытке сделать это через штатные утилиты специалисты часто сталкиваются с ошибками, так как аппарат работает под протоколом «Криптон» (Krypton), который блокирует прямую модификацию параметров налоговых таблиц.

Разберем пошаговый алгоритм настройки устройства:

  1. Закрытие фискальной смены: обязательно выполняем снятие Z-отчета (дневного отчета с обнулением). Любые операции с переключением системных протоколов и налоговых групп блокируются фискальной памятью при наличии открытого чека или незакрытой 24-часовой смены.
  2. Смена протокола обмена: переключаем фискальный регистратор с протокола Криптон на заводской протокол Native Datecs. В «родном» протоколе доступны все сервисные команды конфигурирования налоговых параметров.
  3. Изменение типа начисления НДС: с помощью сервисной утилиты производителя переключаем режим расчета соответствующей налоговой группы (например, группы «А») с Вложенного на Наложенный.
  4. Возврат рабочего протокола: после успешной записи параметров переключаем регистратор обратно в протокол Криптон.
  5. Корректировка выгрузки из 1С: проверяем внешнюю обработку обслуживания (FR_*.ert). Теперь в команду регистрации продажи необходимо передавать базовую цену товара без НДС (в нашем примере — 7,42), чтобы регистратор сам корректно начислил налог сверху и получил точные 1068,48.

Программные способы компенсации расхождений в 1С

Если изменить настройки аппарата невозможно (например, на кассе пробиваются как розничные, так и оптовые чеки, либо действуют ограничения фискализации), проблему решают алгоритмически внутри учетной системы перед отправкой чека на печать.

Рассмотрим два распространенных подхода:

  1. Использование суммовой надбавки на позицию:

    Драйвер фискального регистратора поддерживает применение скидок и надбавок к конкретной строке. В коде обработки обслуживания вычисляется дельта между суммой строки документа и произведением округленной цены на количество. Полученная разница передается в драйвер в качестве суммовой наценки на позицию чека, что приводит чек к правильному итогу без искажения цены за единицу.

  2. Разбиение позиции на две строки:

    Посмотрим на пример, когда требуется компенсировать погрешность округления без использования блока надбавок. Строку с количеством $N$ разбивают на две части: $N - 1$ единиц продаются по стандартной цене с НДС, а последняя 1 единица передается по цене, скорректированной на величину накопившейся разницы в копейках. Это гарантирует совпадение итоговой суммы строк чека с суммой закрытия оплаты.

Посмотрим, как выглядит типовой расчет дельты в коде модуля печати чека в 1С 7.7:


// Расчет корректировки копеек для строки накладной
ЦенаСНДС = Окр(ТаблЧасть.ЦенаБезНДС * (1 + СтавкаНДС / 100), 2);
СуммаПоРегистратору = ЦенаСНДС * ТаблЧасть.Количество;
СуммаДокумента = ТаблЧасть.СуммаСНДС;

ДельтаКопеек = СуммаДокумента - СуммаПоРегистратору;

Если ДельтаКопеек <> 0 Тогда
    // Передаем команду строчной надбавки/скидки в драйвер регистратора
    // либо корректируем цену последней единицы товара
КонецЕсли;

Таким образом, для полного избавления от паразитной сдачи и копеечных нестыковок на FP-3530T оптимальным является перевод регистратора в режим наложенного НДС после снятия Z-отчета, либо внедрение строчной коррекции сумм в модуле фискальной печати 1С.

← На главную