Почему при пробитии чека ККТ на несколько ставок НДС в 1С печатаются позиции только с одной ставкой и как это исправить?

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

При оформлении торговых операций и пробитии фискального чека через онлайн-кассу (ККТ по 54-ФЗ) предприятия часто сталкиваются с ситуацией, когда в одном заказе или документе реализации присутствуют товары с разными ставками налога на добавленную стоимость — например, со ставками 10% и 18% (20%). Однако при формировании чека фискальный регистратор распечатывает позиции только по одной ставке НДС, полностью игнорируя или отсекая остальные строки накладной.

Разберем детально, почему возникает такое поведение системы, как устроены механизмы фискализации в конфигурациях на обычных формах (в частности, в 1С:Управление торговлей 10.3) и какие способы позволяют корректно пробивать сборные чеки.

Причины возникновения проблемы

Проанализируем архитектурные особенности типовых механизмов 1С и стандартов фискализации, приводящие к потере строк:

  1. Структура документа «Приходный кассовый ордер» (ПКО): Исторически в метаданных документа ПриходныйКассовыйОрдер реквизит СтавкаНДС располагается в шапке документа, а не в табличной части. При пробитии чека по документу-основанию (например, РеализацияТоваровУслуг) ранние алгоритмы печати фискального чека считывали товары из накладной, но применяли жесткую фильтрацию: в фискальный пакет передавались только те строки, ставка НДС которых в точности совпадала со ставкой НДС, выбранной в шапке ПКО. Позиции с альтернативными ставками отсекались.
  2. Ограничения формата фискальных данных (ФФД 1.0): Первоначальный формат ФФД 1.0 обладал существенными ограничениями при передаче сложных чеков, особенно при частичной оплате или распределении авансов. Переход на форматы ФФД 1.05 и ФФД 1.2 расширил состав тегов и обязательность номенклатурного состава с индивидуальными ставками НДС для каждой позиции (тег 1199).
  3. Некорректное сопоставление налоговых таблиц в драйвере ККТ: Если в настройках подключаемого оборудования или параметрах драйвера фискального регистратора не настроено соответствие ставок налога программы номерам налоговых секций аппарата, ККТ может объединять позиции под ставку по умолчанию либо возвращать ошибку формата.

Способ 1. Обновление конфигурации и переход на актуальные версии ФФД

Рассмотрим основной и наиболее корректный способ решения проблемы. В современных релизах конфигураций фирма «1С» полностью переработала механизм формирования фискальных XML-пакетов.

  1. Выполним обновление конфигурации до актуального релиза, поддерживающего современные требования БПО (Библиотеки подключаемого оборудования) и актуальные версии форматов фискальных документов (ФФД 1.05 / 1.2).
  2. В обновленных механизмах модуль фискализации обращается напрямую к табличной части документа-основания (Товары), формируя отдельные товарные позиции с их собственными ставками НДС и итоговыми суммами налогов, минуя ограничение единичной ставки из шапки кассового ордера.
  3. Проверим версию прошивки самого фискального регистратора и обновим драйвер торгового оборудования в 1С.

Способ 2. Пробитие чека непосредственно из документа реализации

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

  1. Откроем документ РеализацияТоваровУслуг, содержащий номенклатуру со ставками как 10%, так и 20%.
  2. Выполним печать чека непосредственно по кнопке «Чек» на форме документа реализации.
  3. В этом сценарии обработка фискализации берет всю табличную часть документа без наложения фильтров, выгружая в кассу каждую позицию с соответствующим тегом ставки НДС (тег 1199) и итоговые счетчики по ставкам чека (теги 1102–1107).

Способ 3. Корректировка программного кода формирования пакета чека

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

Выясним причину в коде: в процедурах печати чека (обычно это модули форм или общие модули работы с торговым оборудованием) присутствует условие фильтрации строк. Исходный фрагмент часто выглядит следующим образом:


Для Каждого СтрокаТовара Из ДокументОснование.Товары Цикл
    Если СтрокаТовара.СтавкаНДС = ДокументПКО.СтавкаНДС Тогда
        // Формирование позиции фискального чека
        ДобавитьСтрокуЧека(ТаблицаЧека, СтрокаТовара);
    КонецЕсли;
КонецЦикла;

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


Для Каждого СтрокаТовара Из ДокументОснование.Товары Цикл
    // Передаем все позиции с их персональной ставкой НДС
    ДобавитьСтрокуЧека(ТаблицаЧека, СтрокаТовара, СтрокаТовара.СтавкаНДС);
КонецЦикла;

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

Способ 4. Проверка соответствия таблиц налогов в оборудовании

Разберем по шагам проверку параметров сопоставления налоговых ставок между 1С и драйвером ККТ:

  1. Перейдем в раздел Сервис → Торговое оборудование → Подключение и настройка торгового оборудования (или соответствующий справочник БПО).
  2. Откроем параметры подключенного фискального регистратора.
  3. Перейдем на вкладку Налоги (или Таблица налогов).
  4. Убедимся, что каждой ставке из перечисления 1С (НДС10, НДС18/НДС20, НДС0, БезНДС) сопоставлен правильный номер налоговой ставки в фискальном накопителе аппарата в соответствии с инструкцией производителя кассы (Атол, Штрих-М и др.).

Ограничения при работе с авансами

Важно: Обратим внимание на фискализацию расчетов без указания товарной спецификации. Если приходный кассовый ордер пробивается как аванс или предоплата «по договору в целом» (без привязки к конкретной накладной с товарным составом), чек формируется одной обобщенной позицией («Предоплата» / «Аванс»). В таком случае законодательство не допускает объединения нескольких ставок в одной строке — расчетная ставка (например, 10/110 или 20/120) берется строго из реквизитов документа, а при наличии товаров с разными ставками оформляются отдельные платежи.

← На главную