Как убрать выделение НДС в чеках ККТ при применении УСН в 1С?

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

При автоматизации розничных продаж на онлайн-кассах (ККТ с передачей данных по 54-ФЗ) в программах 1С часто возникает ситуация, когда организация применяет упрощенную систему налогообложения (УСН «Доходы» или «Доходы минус расходы»), однако на фискальном чеке и в данных оператора фискальных данных (ОФД) продолжает печататься ставка НДС 18% или 20%. Особенно остро эта проблема проявляется в конфигурациях предыдущих поколений (1С:Комплексная автоматизация 1.1, 1С:Управление торговлей 10.3, 1С:Управление производственным предприятием 1.3), когда в одной информационной базе ведется многофирменный учет по организациям с ОСНО и УСН.

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

Почему в чеке появляется НДС при УСН?

Проанализируем архитектуру хранения данных в типовых решениях 1С. В справочнике Номенклатура реквизит СтавкаНДС задается статически для каждой позиции и не имеет периодичности или разделения по организациям. Если товар заведен со ставкой 18% или 20% для оптовых отгрузок по организации на ОСНО, то при оформлении розничной продажи той же позиции от имени фирмы на УСН типовой алгоритм берет ставку напрямую из карточки номенклатуры.

При этом важно понимать следующие технические и законодательные нюансы:

  1. Разделение СНО и ставки налога: Система налогообложения организации (ОСНО, УСН, Патент) и ставка НДС для конкретной товарной позиции передаются в ККТ отдельными параметрами. Кассовый аппарат не производит автоматическую замену ставки налога только на основании того, что чек пробивается по секции УСН.
  2. Разница между «Без НДС» и «НДС 0%»: Для спецрежимов в кассовом чеке и фискальных тегах должен фигурировать признак «Без НДС» (тег 1105 / значение «без налога»). Ставка 0% (тег 1104) согласно требованиям ФФД предназначена исключительно для плательщиков НДС при выполнении определенных операций (например, экспорт).
  3. Ограничения аппаратной настройки ККТ: Попытка скрыть вывод НДС через таблицы драйвера кассы (например, в таблицах настроек печати драйвера «Штрих-М») лишь убирает строку с бумажной ленты, но не решает главную проблему: в фискальный накопитель и в ОФД чек все равно уходит со ставкой 18%/20%, что влечет за собой риски налоговых претензий и штрафов по 54-ФЗ.

Вариант 1. Программная корректировка ставки в модуле фискализации (Рекомендуемый)

Наиболее надежный и правильный способ — доработать механизм подготовки данных чека перед отправкой в драйвер торгового оборудования. Логика доработки заключается в том, чтобы проверять применяемую систему налогообложения для текущего чека, и если организация работает на спецрежиме (УСН, ЕНВД, ПСН), принудительно передавать в ККТ признак ставки «Без налога» независимо от того, что указано в карточке номенклатуры.

Посмотрим на пример функции, определяющей код СНО организации (на примере типовых механизмов):


Функция КодСистемыНалогообложения(Организация, ВидНалога, ДатаДокумента = Неопределено) Экспорт

    Если НЕ ЗначениеЗаполнено(ДатаДокумента) Тогда 
        ДатаДокумента = ТекущаяДатаСеанса; 
    КонецЕсли;

    Если ВидНалога = Перечисления.ВидыНалогов.ЕНВД Тогда 
        Возврат 3; 
    ИначеЕсли ВидНалога = Перечисления.ВидыНалогов.ЕСХН Тогда 
        Возврат 4; 
    ИначеЕсли ВидНалога = Перечисления.ВидыНалогов.ПСН Тогда 
        Возврат 5; 
    КонецЕсли;

    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   СистемыНалогообложенияОрганизацийСрезПоследних.СистемаНалогообложения,
        |   СистемыНалогообложенияОрганизацийСрезПоследних.ОбъектНалогообложения
        |ИЗ
        |   РегистрСведений.СистемыНалогообложенияОрганизаций.СрезПоследних(&ДатаДокумента, Организация = &Организация) КАК СистемыНалогообложенияОрганизацийСрезПоследних";

    Запрос.УстановитьПараметр("ДатаДокумента", ДатаДокумента);
    Запрос.УстановитьПараметр("Организация", Организация);

    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();

    Если Выборка.Следующий() Тогда
        Если Выборка.СистемаНалогообложения = Перечисления.СистемыНалогообложения.Общая Тогда
            Возврат 0; // ОСНО
        ИначеЕсли Выборка.ОбъектНалогообложения = Перечисления.ОбъектыНалогообложенияПоУСН.Доходы Тогда
            Возврат 1; // УСН Доходы
        Иначе
            Возврат 2; // УСН Доходы-Расходы
        КонецЕсли;
    Иначе
        Возврат 0;
    КонецЕсли;

КонецФункции

Далее в модуле формирования фискального чека (или в обработке обслуживания ККТ) переопределяем ставку для товарных позиций:


// В цикле обхода строк чека перед отправкой в ККТ
Если КодСНО <> 0 Тогда
    // Для всех спецрежимов передаем значение ставки Без НДС
    СтавкаНДСДляЧека = Перечисления.СтавкиНДС.БезНДС;
    НомерНалогаККТ = 4; // Соответствует ставке "БЕЗ НАЛОГА" в таблице 6 ККТ Штрих
Иначе
    // Для ОСНО берем реальную ставку из документа или карточки товара
    СтавкаНДСДляЧека = СтрокаТовара.СтавкаНДС;
    НомерНалогаККТ = ПолучитьНомерНалогаККТ(СтавкаНДСДляЧека);
КонецЕсли;

Такой подход гарантирует, что для организации на ОСНО ставка берется из номенклатуры без изменений, а для организации на УСН чек всегда фискализируется с признаком «Без НДС».

Вариант 2. Использование внешней обработки обслуживания торгового оборудования

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

Разберем по шагам, как это реализовать:

  1. Выгружаем типовую обработку обслуживания ККТ для драйвера «Штрих-М» из справочника ТорговоеОборудование.
  2. В процедурах печати чека (например, ПечататьЧек или СформироватьXMLЧека) находим место маппинга налоговых ставок 1С на налоговые группы драйвера ККТ.
  3. Добавляем проверку системы налогообложения текущего документа: если СНО отличается от ОСНО, передаем кассовому аппарату код налога «Без налога» (в таблице налоговых ставок драйвера Штрих-М это, как правило, значение с нулевой ставкой и текстом «БЕЗ НАЛОГА»).
  4. Подключаем измененную внешнюю обработку в справочнике торгового оборудования и тестируем печать чека.

Вариант 3. Создание регистра сведений для хранения ставок по организациям

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

При проведении документов и формировании чеков алгоритм выполняет поиск ставки в регистре, и только при отсутствии индивидуальной записи обращается к реквизиту карточки Номенклатура. Однако данный способ требует поддержания актуальности данных в регистре при добавлении новых товаров пользователями.

Проверка настроек таблиц драйвера ККТ «Штрих-М»

После реализации программных правок обязательно проверим соответствие таблиц в самом драйвере кассы. Откроем «Тест драйвера ККТ» и перейдем в Таблицы:

  1. Таблица 6 «Налоговые ставки»: Убедимся, что одна из строк (например, налог 4) имеет процентную ставку 0 и наименование БЕЗ НАЛОГА или Без НДС.
  2. Таблица 1 «Тип и режим кассы»: Поля 14 и 16 отвечают за формат вывода налогов на бумажный носитель.
  3. Пробиваем тестовый чек на минимальную сумму и проверяем его отображение в личном кабинете ОФД: в строке позиции должен стоять признак «Без НДС», а в общей сумме чека НДС должен быть равен нулю.
← На главную