При настройке взаимодействия программы 1С с кассовой техникой (ККТ) пользователи и разработчики часто сталкиваются с ситуацией, когда в режиме РМК указывается расчетная ставка НДС (18/118% или 20/120%), но на кассовом чеке распечатывается прямая ставка (18% или 20%). Попытки скорректировать программный код и отключить пересчеты в 1С обычно не приводят к желаемому результату, так как касса всё равно выбирает стандартную ставку.
Рассмотрим подробнее причины такого поведения системы, проанализируем требования законодательства и разберем проверенные способы решения этой задачи.
Выясним причину, почему касса подменяет расчетную ставку на прямую. Согласно Налоговому кодексу РФ (п. 4 ст. 164 НК РФ) и требованиям Закона № 54-ФЗ, расчетные ставки НДС (18/118, 20/120, 10/110) предназначены исключительно для строго определенных налоговых операций:
Таким образом, требование заказчика выводить ставку 18/118% (или 20/120%) при обычной розничной продаже товаров противоречит действующему законодательству. Для стандартной реализации товара выводить расчетную ставку в чек неуместно.
Проанализируем техническую сторону передачи фискальных данных из конфигурации 1С (например, 1С:Розница) на кассовый аппарат:
Разберем по шагам, как правильно настроить систему для корректной печати чеков в различных сценариях работы.
Если задача состоит в том, чтобы чек на аванс формировался с правильной расчетной ставкой, необходимо выполнять операцию через предназначенные для этого механизмы конфигурации:
PaymentMethod со значением аванса и подставляют расчетную ставку НДС в передаваемый пакет данных.Если при оформлении авансовых чеков касса всё равно печатает прямую ставку, причина кроется в устаревшем программном обеспечении кассового аппарата:
Если производится доработка нестандартной конфигурации или собственного модуля печати чеков, не следует закомментировать пересчеты сумм в интерфейсе РМК. Вместо этого проанализируем формирование структуры XML-пакета фискализации:
При заполнении структуры позиции чека необходимо одновременно передавать правильный признак способа расчета и соответствующую ставку налога:
// Пример заполнения структуры позиции чека для передачи в драйвер ККТ
СвойстваПозиции = Новый Структура;
СвойстваПозиции.Вставить("Наименование", "Предоплата за товар");
СвойстваПозиции.Вставить("Количество", 1);
СвойстваПозиции.Вставить("Цена", СуммаАванса);
СвойстваПозиции.Вставить("Сумма", СуммаАванса);
СвойстваПозиции.Вставить("СтавкаНДС", "20/120"); // или "18/118" для старых периодов
СвойстваПозиции.Вставить("ПризнакСпособаРасчета", 1); // 1 - Предоплата 100%, 2 - Предоплата, 3 - Аванс
При передаче корректного признака способа расчета драйвер ККТ распознает операцию как авансовый платеж и напечатает в чеке расчетную ставку НДС без ее замены на прямую.