При работе с контрольно-кассовой техникой (ККТ) Атол, особенно в связке со старыми конфигурациями 1С (такими как УПП 1.3 или УТ 10.3), системные администраторы и программисты часто сталкиваются с проблемой: в чеке упорно печатается «НДС 18%» (или 20%), хотя организация находится на ЕНВД или УСН, а в программе четко указано «Без НДС». Разберем подробно, почему это происходит и как привести печатную форму чека в соответствие с законодательством.
Проанализируем механику взаимодействия 1С и драйвера ККТ. Когда мы отправляем команду на печать чека, 1С передает не текстовое значение налога, а его числовой идентификатор — индекс. В старых прошивках Атол (платформа 2.5) ставка «Без НДС» традиционно находилась под индексом 4. Однако с выходом обновлений (например, прошивка 5189 и выше), поддерживающих формат фискальных данных (ФФД) 1.05, структура внутренней таблицы налогов в кассе изменилась.
Теперь в большинстве случаев индекс 1 закреплен за основной ставкой (18% или 20%), а «Без НДС» переместился на позицию 6. Если 1С по старой привычке отправляет индекс 4 или, что еще хуже, не передает индекс вовсе (полагаясь на настройки по умолчанию), касса берет значение из первой строки своей внутренней таблицы. Рассмотрим, как исправить эту ситуацию несколькими способами.
Выясним причину, по которой касса может игнорировать данные из 1С. Часто при пробитии чека товар привязывается к определенной «секции» (отделу) в ККТ. У каждой секции в настройках кассы прописан налог по умолчанию. Если 1С передает товар в «Секцию 1», а в настройках этой секции жестко задан налог №1 (18%), то именно он и будет напечатан.
Разберем по шагам, как изменить эти настройки через «Тест драйвера ККМ»:
После этой манипуляции касса по умолчанию будет применять ставку «Без НДС» для всех операций по этой секции, если иное не передано из учетной системы.
Иногда индексы в кассе могут быть перепутаны или изменены в процессе технического обслуживания. Чтобы точно знать, какой номер передавать из 1С, проанализируем содержимое таблицы налогов самой кассы.
Важно понимать разницу между «0%» и «Без НДС». С точки зрения налогового законодательства и ФФД — это разные сущности. Для ЕНВД и УСН должно печататься именно «Без НДС». Если на кассе со старой прошивкой печатается «0%», это может быть расценено как методическая ошибка, так как ставка 0% требует сдачи соответствующей налоговой отчетности.
Если касса настроена верно, но 1С все равно принудительно шлет неверный индекс, придется вмешаться в программный код. В старых конфигурациях 1С (УПП, УТ 10.3) за формирование XML-пакета для драйвера отвечает обработка обслуживания или встроенный макет. Рассмотрим пример, где мы можем переопределить передаваемый налог.
Найдем в коде место, где формируется структура чека, и проанализируем переменную TaxTypeNumber. Если используется обмен через XML, нужно найти блок, отвечающий за сопоставление ставок 1С и индексов драйвера. Посмотрим на упрощенный пример логики исправления:
// В процедуре подготовки данных для ККТ
Если СтавкаНДС_1С = Перечисления.СтавкиНДС.БезНДС Тогда
// Вместо старого индекса 4 принудительно передаем 6 для новых прошивок Атол
ПараметрыПредметаРасчета.Вставить("TaxTypeNumber", 6);
ИначеЕсли СтавкаНДС_1С = Перечисления.СтавкиНДС.НДС18 Тогда
ПараметрыПредметаРасчета.Вставить("TaxTypeNumber", 1);
КонецЕсли;
Обратите внимание, что при использовании DTO 8.12 маппинг может быть зашит внутри самой компоненты ATOL_KKT_1C.dll. В этом случае единственным надежным способом будет либо обновление драйвера до версии 8.16.1+ (где маппинг исправлен), либо переход на современный 10-й драйвер.
Ситуация с драйверами версии 8.x (DTO 8) осложняется тем, что они официально признаны устаревшими и не в полной мере поддерживают требования ФФД 1.05/1.1. Рассмотрим переход на DTO 10 как стратегическое решение проблемы.
Драйверы 10-й серии работают иначе: они используют текстовые константы (например, none, vat20, vat0), которые сам драйвер корректно преобразует в нужные индексы для конкретной модели и прошивки кассы. Это избавляет от необходимости следить за тем, в какой строке таблицы налогов находится «Без НДС».
Важные нюансы при переходе:
AddIn.Atol.Drivers10.Подведем итоги. Если ваш Атол 30Ф печатает 18% вместо Без НДС, выполните следующие действия:
TaxTypeNumber уходит в XML-файле. При необходимости внесите правки в обработку обслуживания.Соблюдение этих правил позволит корректно отображать налоги в чеках и избежать претензий со стороны налоговых органов.