Почему АТОЛ 30Ф рассчитывает НДС 15% вместо 18% при фискализации чека из 1С

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

Анализ проблемы с расчетом НДС в ККТ АТОЛ 30Ф

При интеграции 1С с фискальными регистраторами по требованиям 54-ФЗ разработчики самописных и типовых конфигураций нередко сталкиваются с ситуацией, когда сумма НДС на напечатанном чеке оказывается меньше ожидаемой. Например, при передаче позиции стоимостью 10 рублей и указании ставки НДС 18%, касса выводит сумму налога 1,53 рубля (что составляет примерно 15,25% от итоговой суммы), вместо ожидаемых 1,80 рубля.

Рассмотрим, почему возникает расхождение и как работает механизм расчета налога в современных ККТ.

Механизм расчета НДС в онлайн-кассах по ФФД

Согласно требованиям форматов фискальных документов (ФФД) и закону 54-ФЗ, итоговая стоимость позиции (Amount) и цена (Price) в кассовом чеке всегда указываются с учетом всех налогов. Фискальный накопитель и прошивка кассового аппарата не начисляют НДС «сверху» на переданную сумму. Вместо этого касса всегда выделяет налог из итоговой суммы позиции по расчетной формуле:

СуммаНДС = ИтоговаяСумма * Ставка / (100 + Ставка)

Проанализируем математику этого расчета на конкретном примере:

  1. Если товар стоит 10 рублей (с НДС), а ставка налога составляет 18%, касса применит расчетную ставку 18/118.
  2. Формула вычисления: 10 * 18 / 118 = 1.5254... рублей (округляется до 1,53 руб.).
  3. Отношение полученного налога к стоимости товара составляет 1.5254 / 10 = 15.25%. Это и воспринимается как «неправильный» расчет кассового аппарата.

Таким образом, касса АТОЛ 30Ф считает НДС абсолютно корректно. Ошибка заключается в том, что в 1С цена товара была рассчитана без учета НДС, либо не была правильно оформлена перед отправкой в XML-пакет.

Структура XML-пакета фискализации

Разберем пример XML-пакета, передаваемого в обработку фискализации:


<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
    <Parameters PaymentType="1" TaxVariant="1" SenderEmail="" CustomerEmail="" CustomerPhone=""/>
    <Positions>
        <FiscalString Name="Гильза бронзовая к.12" Quantity="1" Price="10" Amount="10" Tax="18"/>
    </Positions>
    <Payments Cash="10" CashLessType1="0" CashLessType2="0" CashLessType3="0"/>
</CheckPackage>

В данном пакете атрибут Tax="18" сообщает кассе, что к позиции применяется основная ставка 18%. Касса принимает итоговую сумму Amount="10" и выделяет из нее 18/118.

Как правильно передавать сумму и ставку НДС из 1С

Для исправления ситуации определимся с типом ценообразования в учетной системе. Выделим два сценария решения задачи:

Сценарий 1. Цена в 1С указана без НДС (налог начисляется сверху)

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

Посмотрим на пример кода 1С для пересчета сумм перед вызовом процедуры ПолучитьXMLПакетДляФискализацияЧека:


// Пересчет суммы и цены позиции с учетом НДС 18%
СтавкаНДСЧисло = 18;
ЦенаБезНДС = СтрокаТовара.Цена;
Количество = СтрокаТовара.Количество;

// Вычисляем НДС сверху
СуммаНДС = Округлить(ЦенаБезНДС * Количество * СтавкаНДСЧисло / 100, 2);
СуммаСНДС = (ЦенаБезНДС * Количество) + СуммаНДС;
ЦенаСНДС = Округлить(СуммаСНДС / Количество, 2);

// В XML-пакет передаем только итоговые значения С НДС
FiscalString.Price = ЦенаСНДС;
FiscalString.Amount = СуммаСНДС;
FiscalString.Tax = "18"; // Касса выделит из СуммаСНДС нужные 18% (18/118)

Сценарий 2. Настройка сопоставления налоговых ставок в 1С

Проверим настройки подсистемы «Подключаемое оборудование» в 1С. В параметрах экземпляра ККТ АТОЛ существует таблица сопоставления ставок НДС 1С и кодов налоговых групп драйвера АТОЛ.

  1. Перейдем в раздел Администрование -> Подключаемое оборудование (или Торговое оборудование в УТ 10.3).
  2. Откроем настройки зарегистрированного фискального регистратора АТОЛ 30Ф.
  3. Проверим таблицу соответствия ставок НДС: ставка 18% из 1С должна соответствовать коду налога 1 (НДС 18%) или 3 (НДС 18/118%) в драйвере KКТ в зависимости от версии драйвера ДТО.
  4. Убедимся, что выбранная система налогообложения (атрибут TaxVariant) совпадает с зарегистрированной в ФН кассового аппарата.

Выполнение этих шагов позволит обеспечить корректное формирование кассовых чеков с правильным выделением НДС в соответствии с требованиями 54-ФЗ.

← На главную