Как убрать НДС из чека в 1С:Управление торговлей 10.3 при использовании ККТ Viki Print

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

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

В этой статье мы подробно разберем, как исправить алгоритм передачи налоговых ставок, какие настройки проверить в самой кассе и как модифицировать код 1С для корректной фискализации чеков.

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

Проанализируем ситуацию: фискальный регистратор — это исполнительное устройство. Он печатает то, что ему передает драйвер из программы 1С. Если в чеке появляется НДС 18%, значит либо программа явно передает этот налог, либо передает пустое/некорректное значение, которое касса интерпретирует как «налог по умолчанию» (обычно это первая строка в таблице налогов кассы).

Разберем по шагам, как локализовать и устранить ошибку.

Шаг 1. Проверка настроек учетной политики и склада

Прежде чем приступать к правке кода, необходимо убедиться, что в самой 1С установлены правильные параметры. В УТ 10.3 признак плательщика НДС и режим налогообложения зависят от нескольких факторов:

  1. Учетная политика: Проверим регистр сведений УчетнаяПолитикаНалоговыйУчет. Флаг ОрганизацияЯвляетсяПлательщикомНДС должен быть снят.
  2. Настройки склада: В УТ 10.3 существует привязка розничных продаж к складам. Проверим справочник Склады. Для склада, с которого ведется продажа, должен быть установлен вид налога «ЕНВД».
  3. Документ «Чек ККМ»: В самом документе проверим кнопку «Цены и валюта». Должен стоять флаг «НДС включать в стоимость», а в колонке «Ставка НДС» в табличной части товаров должно быть указано «Без НДС».

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

Для ККТ Viki Print критически важно использовать актуальную версию обработки обслуживания. Старые версии (например, Dreamkas_VikiPrint_8.2.epf) могут некорректно работать с онлайн-кассами с ФН. Необходимо скачать и установить обработку с поддержкой онлайн-ККТ, например Dreamkas_VikiPrint_onlineKKT_8.2.epf.

Эта обработка содержит обновленные методы взаимодействия с драйвером, которые учитывают требования 54-ФЗ и форматы ФФД 1.05/1.2.

Шаг 3. Модификация кода передачи НДС

Если настройки верны, но НДС все равно печатается, нам потребуется вмешаться в код формирования чека. Рассмотрим пример программного кода, который помогает принудительно установить ставку «Без НДС» для организаций на спецрежимах. Выясним причину: программа должна передать драйверу конкретный индекс налоговой ставки.

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


Функция ПечататьСтроку(Объект, Наименование, Количество, Цена, Скидка, Отдел, НДС) Экспорт
    Результат = мНетОшибки;
    ЗначениеСкидки = Окр(Количество * Цена * Скидка * 0.01, 2);
    Сумма = Окр(Количество * Цена - ЗначениеСкидки, 2);
    
    // Здесь мы проверяем, какая ставка НДС передается в драйвер.
    // Если организация на ЕНВД, нам нужно передать значение, 
    // соответствующее "Без НДС" в таблице налогов ККТ.
    
    Если Не Объект.ОборудованиеОбъект.НапечататьФискСтроку(Объект.ИДУстройства, Наименование, Количество, Цена, Сумма, Отдел, НДС) Тогда
        Результат = мОшибкаНеизвестно;
        Объект.ОборудованиеОбъект.ПолучитьОшибку(Объект.ОписаниеОшибки);
    КонецЕсли;
    
    Возврат Результат;
КонецФункции

Для того чтобы касса поняла, что налога нет, в переменную НДС (или СтавкаНДС) нужно подставить правильное числовое значение. Рассмотрим, как программно определить, является ли организация плательщиком НДС, и подставить нужное значение:


Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|   УчетнаяПолитикаНалоговыйУчетСрезПоследних.ОрганизацияНеЯвляетсяПлательщикомНДС
|ИЗ
|   РегистрСведений.УчетнаяПолитикаНалоговыйУчет.СрезПоследних КАК УчетнаяПолитикаНалоговыйУчетСрезПоследних
|ГДЕ
|   УчетнаяПолитикаНалоговыйУчетСрезПоследних.Организация = &Организация";

Запрос.УстановитьПараметр("Организация", ЭтотОбъект.Организация);  
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Если Выборка.Следующий() И Выборка.ОрганизацияНеЯвляетсяПлательщикомНДС Тогда
    // Для Вики Принт индекс "Без НДС" часто равен 4 или 6.
    // Это значение передается напрямую в драйвер.
    СтрокаЧека.СтавкаНДС = 4; 
Иначе     
    // Стандартное получение ставки через менеджер оборудования
    СтрокаЧека.СтавкаНДС = МенеджерОборудованияКлиентСервер.ПолучитьСтавкуНДСДляФискализацииЧека(СтрокаТовара.СтавкаНДС);
КонецЕсли;

Шаг 4. Настройка таблиц налогов в утилите Fito

Если программная передача индекса не помогает, необходимо проверить внутренние настройки самой ККТ Viki Print. Для этого используется сервисная утилита Fito. Проделаем следующие действия:

  1. Запустим утилиту Fito и установим связь с кассой.
  2. Перейдем в раздел «Установка параметров» -> «Налоги».
  3. Посмотрим на список налоговых ставок. Каждой ставке соответствует свой порядковый номер (индекс). Например:
    • Индекс 0 — НДС 20%
    • Индекс 1 — НДС 10%
    • ...
    • Индекс 4 — Без НДС
  4. Убедимся, что ставка «Без НДС» вообще присутствует в этой таблице. Если ее нет, ее нужно добавить или переименовать пустую строку.
  5. В разделе «Режимы работы» проверим, какая система налогообложения (СНО) установлена по умолчанию. Если касса фискализирована только под ЕНВД, убедимся, что для этой СНО разрешена работа без НДС.

Важный момент: Если в 1С мы передаем индекс ставки, который отсутствует в таблице ККТ или не соответствует «Без НДС», касса по закону (ФФД) может выдать ошибку или заменить его на базовую ставку 20%.

Шаг 5. Особенности ФФД 1.05 и передача тега 1055

Согласно формату фискальных данных 1.05 и выше, в каждом чеке должен передаваться тег 1055 — Система налогообложения. Если ваша организация использует ЕНВД, а в чеке печатается ОСНО (Общая система налогообложения), касса автоматически будет искать НДС.

В коде 1С при формировании объекта Чек (перед вызовом метода СформироватьЧек) убедимся, что передается правильный код СНО. Для ЕНВД это значение обычно равно 3 (в зависимости от классификации драйвера). Проанализируем, как это выглядит в объекте фискализации:


ПараметрыЧека.СистемаНалогообложения = 3; // Код для ЕНВД согласно документации Dreamkas

Если это свойство не заполнено, касса возьмет СНО из своих внутренних настроек «по умолчанию», которые задаются при регистрации (фискализации) аппарата. Если аппарат зарегистрирован на несколько СНО (например, ОСНО + ЕНВД), и вы не передаете конкретный код из 1С, ККТ может выбрать ОСНО и начислить НДС 20%.

Подведем итоги

Для решения проблемы с лишним НДС в чеках на Viki Print выполним следующие действия:

Используя комплексный подход (настройка 1С + настройка драйвера + настройка таблиц ККТ), мы добьемся корректного отображения данных в чеке и соответствия требованиям законодательства.

← На главную