Почему при печати чека в 1С:Розница сумма НДС попадает в сдачу и как это исправить?

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

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

Выясним причину возникновения ошибки

Проанализируем техническую сторону работы программы при формировании чека из документа Заказ покупателя. В типовых механизмах взаимодействия с кассовым аппаратом через Библиотеку подключаемого оборудования (БПО) передача данных в драйвер контрольно-кассовой техники (ККТ) строится следующим образом:

  1. В табличной части документа присутствуют реквизиты Цена, Сумма, СуммаНДС и Всего. Если цена не включает налог, то реквизит Сумма содержит стоимость без налога, а итоговая сумма к оплате с учетом налога рассчитывается в колонке Всего.
  2. При подготовке XML-пакета фискализации кассовый модуль считывает значения для передачи в драйвер. Если алгоритм берет показатели из полей Цена и Сумма, в фискальный документ уходит стоимость товара без НДС.
  3. В то же время в блок оплат фискального чека передаются реальные полученные от покупателя деньги — полная сумма по документу (значение Всего).
  4. Драйвер ККТ получает команду: продано товара на сумму без налога, а принято наличных на полную сумму. По математическим правилам кассовый аппарат фиксирует переплату и регистрирует разницу (сумму НДС) в качестве сдачи клиенту.

Ограничения форматов фискальных данных (54-ФЗ)

Рассмотрим требования законодательства о применении контрольно-кассовой техники. Согласно закону № 54-ФЗ и утвержденным форматам фискальных данных (ФФД):

  1. В чеке реквизиты предмета расчета (тег 1079 — цена за единицу и тег 1043 — стоимость позиции) всегда обязаны включать в себя все налоги, наценки и скидки. Касса не может рассчитать НДС «сверху» к цене позиции. Сумма налога (тег 1199) вычисляется расчетным путем уже из конечной стоимости строки.
  2. В современных кассовых аппаратах и прошивках встроен жесткий математический контроль: Количество * Цена = Стоимость. Если попытаться программно пересчитать цену с налогом делением итоговой суммы на количество, возникает погрешность округления. Расхождение даже в одну копейку приводит либо к отказу ККТ пробивать чек, либо к автоматическому разбиению строки на несколько подстрок.

Таким образом, использование в розничной торговле цен без включенного НДС противоречит самой методологии розничных фискальных чеков.

Решение 1. Методологическая настройка правил ценообразования (рекомендуемое)

Разберем основной и штатный способ исправления ситуации в программе без вмешательства в программный код. Поскольку конфигурация «1С:Розница» предназначена именно для розничного контура, конечные цены продажи должны быть изначально сформированы с учетом налога.

  1. Перейдем в раздел Маркетинг и откроем справочник Виды цен.
  2. Для розничных цен, которые используются на кассовых узлах и в торговых залах, обязательно устанавливаем флаг Цена включает НДС.
  3. Если на предприятии ведется оптовая торговля или учет поступлений без НДС, настроим цепочку ценообразования: базовый вид цены создаем без включения налога (для оптовых отгрузок и аналитики), а розничный вид цены делаем зависимым от базового, задав формулу наценки на величину ставки НДС и включив признак Цена включает НДС.
  4. Откроем раздел Маркетинг — Правила ценообразования, проверим используемые правила и привяжем к ним корректный розничный вид цены.
  5. Документом Установка цен номенклатуры пересчитаем и зафиксируем действующие розничные цены.

Решение 2. Использование штатного кассового интерфейса (РМК)

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

  1. Вместо прямой печати фискального чека из заказа оформляем на его основании документ Чек ККМ.
  2. При работе магазина через Рабочее место кассира (РМК) используем режим Продажа по заказу. В специализированных чековых механизмах пересчет ставок и распределение сумм производятся по строгим розничным алгоритмам, что исключает возникновение фиктивной сдачи.

Решение 3. Программная корректировка через расширение конфигурации

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

Посмотрим на пример логики пересчета цен для кассовой таблицы:


Для Каждого СтрокаТовара Из ТаблицаПозиций Цикл
    Если НЕ СтрокаТовара.ЦенаВключаетНДС Тогда
        СтрокаТовара.Сумма = СтрокаТовара.Всего;
        СтрокаТовара.Цена = Окр(СтрокаТовара.Всего / СтрокаТовара.Количество, 2);
    КонецЕсли;
КонецЦикла;

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

← На главную