Как убрать НДС в чеках ККМ при использовании ЕНВД в 1С:Управление торговлей 10.3

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

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

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

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

  1. Учетная политика (налоговый учет): Проверим, установлена ли галочка "Организация не является плательщиком НДС". Это глобальный параметр, который должен влиять на заполнение документов.
  2. Розничная торговля и ЕНВД: В настройках учетной политики на закладке "ЕНВД" должна быть включена опция, указывающая на то, что розничная торговля облагается единым налогом на вмененный доход.
  3. Настройка склада: Перейдем в справочник Склады. Для склада, с которого осуществляется продажа через Чек ККМ, должен быть установлен вид склада "Розничный". Кроме того, в типовых решениях часто требуется установка признака принадлежности склада к деятельности, облагаемой ЕНВД.

Шаг 2. Использование регистра «Номенклатура, облагаемая ЕНВД»

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

Разберем ситуацию: даже если организация на ЕНВД, в карточке товара может стоять ставка 18% (или 20%). Если механизм определения режима налогообложения в коде документа дает сбой, программа возьмет ставку именно из справочника. Убедитесь, что для розничных позиций в регистре Номенклатура, облагаемая ЕНВД созданы соответствующие записи на актуальную дату.

Шаг 3. Программная корректировка передачи ставки НДС в документ Чек ККМ

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


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

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

Если ТЗ.Количество() > 0 Тогда
	Если ТЗ[0]["ОрганизацияНеЯвляетсяПлательщикомНДС"] = Истина Тогда
		// Принудительно устанавливаем пустую ставку или маркер отсутствия НДС
		СтрокаЧека.СтавкаНДС = "none"; 
	Иначе 	    
		СтрокаЧека.СтавкаНДС = МенеджерОборудованияКлиентСервер.ПолучитьСтавкуНДСДляФискализацииЧека(
			СтрокаТовара.Номенклатура.СтавкаНДС, 
			ПорядокНалогообложения
		);
	КонецЕсли;    
КонецЕсли;

Важный момент: Значение "none" является специфическим для некоторых драйверов. В зависимости от используемой версии обработки обслуживания и ФФД (формата фискальных данных), вместо "none" может потребоваться передача пустой строки "" или значения 0. Для касс Viki Print часто критично, чтобы строка точно совпадала с наименованием налоговой группы в таблицах самого аппарата.

Шаг 4. Модификация обработки «ТОСервер» (Торговое оборудование)

Иногда правки в самом документе ЧекККМ недостаточно, так как данные проходят через общий модуль или внешнюю обработку обслуживания. Проанализируем функцию ПечатьЧека в обработке ТОСервер. Именно здесь формируется массив строк, который отправляется на драйвер кассы.

Посмотрим на структуру вызова функции печати строки:


Результат = Обработка.ПечататьСтроку(Объект,
                                    Позиция.Наименование,
                                    Позиция.Количество,
                                    Позиция.Цена,
                                    Позиция.Скидка,
                                    Позиция.НомерСекции,
                                    Позиция.СтавкаНДС); // Вот здесь передается ставка

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

Шаг 5. Соответствие таблиц налогов в ФР и в 1С

Часто проблема кроется не в коде 1С, а в несовпадении индексов налогов. Фискальный регистратор имеет внутреннюю таблицу (обычно это 6 строк). Когда 1С отправляет команду «Без НДС», драйвер сопоставляет это с определенным номером строки в кассе. Если в кассе в этой строке прописано «18%», то именно это и будет напечатано.

Рассмотрим порядок действий для проверки ККТ Viki Print:

  1. Запустите сервисную утилиту Fito.
  2. Перейдите в раздел "Установка параметров" -> "Налоги".
  3. Посмотрите, под каким номером (индексом) идет ставка "Без НДС" (или "Не облагается").
  4. В настройках торгового оборудования в 1С убедитесь, что маппинг (сопоставление) ставок соответствует таблице из Fito.

Если 1С передает текст "none", а драйвер ожидает индекс 4, возникнет ошибка или подстановка значения по умолчанию. Рекомендуется в коде 1С использовать прямое обращение к перечислению: Перечисления.СтавкиНДС.БезНДС, так как современные обработки обслуживания умеют корректно транслировать этот объект в нужный драйверу формат.

Заключение

Подводя итог, можно сказать, что решение проблемы НДС в чеках на ЕНВД требует комплексного подхода. Сначала мы проверяем учетную политику и регистр номенклатуры ЕНВД. Если это не помогает, вносим правки в ЧекККМ или ТОСервер, заменяя передаваемую ставку НДС на "none" или пустую строку. И в завершение обязательно проверяем таблицы налогов в самом фискальном регистраторе через утилиту производителя, чтобы исключить аппаратное несоответствие.

← На главную