При совмещении нескольких налоговых режимов (например, УСН и ЕНВД/ПСН) или при торговле обычными и подакцизными товарами (например, автозапчасти и моторные масла) организации сталкиваются с необходимостью фискализации продаж по разным системам налогообложения (СНО) на одном кассовом аппарате. Разберем законодательные требования, ограничения типовой конфигурации 1С:Управление торговлей 10.3 и практические способы решения этой задачи.
Проанализируем ключевое правило работы онлайн-касс в рамках 54-ФЗ: реквизит «Система налогообложения» (тег 1055) относится ко всему фискальному документу (чеку) целиком. В рамках одного кассового чека невозможно совместить товары, проходящие по разным СНО. Если покупатель одновременно приобретает подакцизное масло (УСН) и обычные автозапчасти (ЕНВД/ПСН), касса обязана выдать два отдельных фискальных чека.
Кроме того, при фискализации и перерегистрации ККТ в фискальном накопителе должны быть активированы флаги всех применяемых режимов налогообложения, а при торговле подакцизной номенклатурой — обязательный признак «Продажа подакцизного товара».
В типовой конфигурации «Управление торговлей 10.3» рабочее место кассира (РМК) и документ ЧекККМ изначально не содержат механизма автоматического разделения корзины покупателя на несколько чеков по разным налоговым режимам. По умолчанию СНО определяется либо настройками кассы/драйвера, либо общими параметрами учетной политики организации, из-за чего все чеки бьются по одной системе.
Для корректной работы требуется либо доработка конфигурации, либо изменение бизнес-процесса пробития чеков.
Рассмотрим основной вариант решения — программную доработку типового механизма пробития чеков. Алгоритм разделения строится следующим образом:
Номенклатура (или в свойства/категории) добавляется реквизит или признак применяемой СНО (например, перечисление с видами систем: УСН, ЕНВД, Патент).ЧекККМ добавляется реквизит выбора СНО.ЧекККМ и вызывается процедура фискализации на ККТ с явным указанием параметра СНО в XML-пакете драйвера.Посмотрим на пример структуры параметров, которая передается в драйвер оборудования при печати фискального чека:
// В шапке фискального чека передается код системы налогообложения
ПараметрыЧека.Вставить("TaxVariant", КодСНО);
// В каждой позиции чека указывается ставка налога
Для Каждого Стр Из ТаблицаТоваров Цикл
ПараметрыПозиции = Новый Структура;
ПараметрыПозиции.Вставить("Name", Стр.Номенклатура.Наименование);
ПараметрыПозиции.Вставить("Price", Стр.Цена);
ПараметрыПозиции.Вставить("Quantity", Стр.Количество);
ПараметрыПозиции.Вставить("Amount", Стр.Сумма);
ПараметрыПозиции.Вставить("Tax", Стр.СтавкаНДС);
// Добавление позиции в фискальный документ
КонецЦикла;
При доработке также важно обратить внимание на расчет скидок. Если при расчете процентной скидки цена позиции получает длинную дробную часть с копейками, онлайн-касса может выдать ошибку округления. В коде необходимо рассчитывать итоговую сумму строки без долей копеек и передавать в ККТ точную цену, полученную делением Сумма / Количество.
Если покупка оплачивается безналичным расчетом через интегрированный эквайринговый терминал, разделение чека на два фискальных документа потребует особого внимания:
Если внесение изменений в программный код конфигурации нежелательно, разберем альтернативный организационный метод:
ЧекККМ запчасти с одного склада и пробивает чек, затем создает второй ЧекККМ для масел со второго склада и пробивает его отдельно.Данный вариант не требует программирования, однако увеличивает нагрузку на кассира и повышает риск человеческой ошибки при оформлении комплексных продаж.