При оформлении торговых операций и пробитии фискального чека через онлайн-кассу (ККТ по 54-ФЗ) предприятия часто сталкиваются с ситуацией, когда в одном заказе или документе реализации присутствуют товары с разными ставками налога на добавленную стоимость — например, со ставками 10% и 18% (20%). Однако при формировании чека фискальный регистратор распечатывает позиции только по одной ставке НДС, полностью игнорируя или отсекая остальные строки накладной.
Разберем детально, почему возникает такое поведение системы, как устроены механизмы фискализации в конфигурациях на обычных формах (в частности, в 1С:Управление торговлей 10.3) и какие способы позволяют корректно пробивать сборные чеки.
Проанализируем архитектурные особенности типовых механизмов 1С и стандартов фискализации, приводящие к потере строк:
ПриходныйКассовыйОрдер реквизит СтавкаНДС располагается в шапке документа, а не в табличной части. При пробитии чека по документу-основанию (например, РеализацияТоваровУслуг) ранние алгоритмы печати фискального чека считывали товары из накладной, но применяли жесткую фильтрацию: в фискальный пакет передавались только те строки, ставка НДС которых в точности совпадала со ставкой НДС, выбранной в шапке ПКО. Позиции с альтернативными ставками отсекались.1199).Рассмотрим основной и наиболее корректный способ решения проблемы. В современных релизах конфигураций фирма «1С» полностью переработала механизм формирования фискальных XML-пакетов.
Товары), формируя отдельные товарные позиции с их собственными ставками НДС и итоговыми суммами налогов, минуя ограничение единичной ставки из шапки кассового ордера.Если специфика бизнес-процесса оптовой торговли предполагает одновременную отгрузку и расчет на складе, проанализируем возможность фискализации напрямую из документа отгрузки:
РеализацияТоваровУслуг, содержащий номенклатуру со ставками как 10%, так и 20%.1199) и итоговые счетчики по ставкам чека (теги 1102–1107).В ситуациях, когда типовая конфигурация находится на поддержке с доработками и быстрое обновление невозможно, разберем доработку модуля, формирующего фискальные данные из ПКО.
Выясним причину в коде: в процедурах печати чека (обычно это модули форм или общие модули работы с торговым оборудованием) присутствует условие фильтрации строк. Исходный фрагмент часто выглядит следующим образом:
Для Каждого СтрокаТовара Из ДокументОснование.Товары Цикл
Если СтрокаТовара.СтавкаНДС = ДокументПКО.СтавкаНДС Тогда
// Формирование позиции фискального чека
ДобавитьСтрокуЧека(ТаблицаЧека, СтрокаТовара);
КонецЕсли;
КонецЦикла;
Для устранения отсечения позиций с другими ставками необходимо убрать жесткую проверку на равенство ставке из шапки документа, чтобы в фискальную таблицу попадали все номенклатурные строки документа-основания:
Для Каждого СтрокаТовара Из ДокументОснование.Товары Цикл
// Передаем все позиции с их персональной ставкой НДС
ДобавитьСтрокуЧека(ТаблицаЧека, СтрокаТовара, СтрокаТовара.СтавкаНДС);
КонецЦикла;
При этом печатная форма корешка квитанции ПКО (если она используется) также может быть модернизирована для вывода сумм раздельно по каждой ставке налога.
Разберем по шагам проверку параметров сопоставления налоговых ставок между 1С и драйвером ККТ:
НДС10, НДС18/НДС20, НДС0, БезНДС) сопоставлен правильный номер налоговой ставки в фискальном накопителе аппарата в соответствии с инструкцией производителя кассы (Атол, Штрих-М и др.).Важно: Обратим внимание на фискализацию расчетов без указания товарной спецификации. Если приходный кассовый ордер пробивается как аванс или предоплата «по договору в целом» (без привязки к конкретной накладной с товарным составом), чек формируется одной обобщенной позицией («Предоплата» / «Аванс»). В таком случае законодательство не допускает объединения нескольких ставок в одной строке — расчетная ставка (например, 10/110 или 20/120) берется строго из реквизитов документа, а при наличии товаров с разными ставками оформляются отдельные платежи.