Как исправить ошибку Invalid Tax Value 118 при печати авансового чека НДС на ККТ Штрих-М?

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

При работе с контрольно-кассовой техникой (ККТ) «Штрих-М» программисты 1С часто сталкиваются с ситуацией, когда обычные чеки печатаются корректно, но при попытке пробить авансовый платеж с расчетной ставкой НДС (18/118 или 20/120) устройство выдает ошибку: "FFFFFFF8h, Invalid Tax Value: 118" (или 120). Разберем подробно причины возникновения этой ошибки и алгоритм её устранения на стороне кода 1С и настроек оборудования.

Анализ причины возникновения ошибки

Ошибка Invalid Tax Value означает, что драйвер ККТ или сама прошивка аппарата не могут распознать переданное числовое значение как допустимую налоговую ставку. Проблема может крыться в трех плоскостях:

  1. Программный код 1С: передача некорректного типа данных или неверного числового идентификатора ставки в структуру параметров чека.
  2. Версия драйвера: старые версии драйверов «Штрих-М» (например, ветки 4.13 и ранние 4.14) не всегда корректно транслировали расчетные ставки 118 и 120 во внутренние индексы налоговых таблиц ККТ.
  3. Прошивка ККТ: кассовый аппарат должен поддерживать актуальный формат фискальных данных (ФФД 1.05 и выше), чтобы корректно обрабатывать авансовые платежи и расчетные ставки.

Проанализируем типичный фрагмент кода, который отвечает за формирование товарных позиций чека. Выясним, какие параметры критически важны для печати аванса.


// Пример формирования структуры чека в 1С
СтрокаЧека = МенеджерОборудованияКлиентСервер.ПараметрыФискальнойСтрокиЧека;
СтрокаЧека.Наименование = "Аванс по договору №123";
СтрокаЧека.Количество = 1;
СтрокаЧека.Цена = СуммаПлатежа;
СтрокаЧека.Сумма = СуммаПлатежа;

// Установка ставки НДС. Для аванса должна передаваться расчетная ставка
Если СтавкаНДС_18_118 Тогда
    СтрокаЧека.СтавкаНДС = 118; // Или 120 для актуальных ставок
Иначе
    СтрокаЧека.СтавкаНДС = 18; 
КонецЕсли;

// Критически важные теги для ФФД 1.05
СтрокаЧека.КодПризнакаПредметаРасчета = 10; // Платеж (аванс)
СтрокаЧека.КодПризнакаСпособаРасчета = 3;   // Аванс

Взаимодействие 1С с таблицами ККТ

Рассмотрим подробнее, как ККТ воспринимает значение 118. Внутри каждого фискального регистратора «Штрих-М» есть Таблица №17 «Ставки НДС». В этой таблице каждому ряду соответствует определенное значение налога. Когда 1С передает драйверу число 118, драйвер пытается сопоставить его с одной из строк в этой таблице.

Если в таблице ККТ для соответствующего ряда не прописано значение 118 (или 118.00), устройство возвращает ошибку невалидного значения. Проверить это можно через утилиту «Тест драйвера ККТ»:

  1. Зайдите в «Настройки свойств» — «Таблицы».
  2. Найдите таблицу №17.
  3. Убедитесь, что в одном из рядов (обычно это 3-й или 6-й ряд) зафиксирована ставка 118.

Важный нюанс: современные версии драйверов выполняют это сопоставление автоматически, но только если они «понимают» структуру запроса от 1С. Именно поэтому обновление драйвера часто является ключевым решением проблемы.

Пошаговое решение проблемы

Проанализировав практический опыт, мы можем выработать четкую последовательность действий для исправления ошибки Invalid Tax Value.

Шаг 1. Обновление драйвера ККТ. Как показала практика, стабильная работа с расчетными ставками в связке с 1С обеспечивается драйверами версии 4.14.688 и выше. Старые драйверы могут игнорировать передачу расчетной ставки или требовать вместо числа 118 передавать индекс налоговой группы (от 1 до 6), что усложняет код и делает его не универсальным.

Шаг 2. Обновление внешней обработки обслуживания. Если вы используете конфигурацию на обычных формах (например, УПП 1.3 или БП 2.0), крайне важно использовать актуальную версию обработки ShtrihMkkt.epf (рекомендуется версия 2.20 и выше). В новых версиях обработок корректно реализована передача параметров ПризнакСпособаРасчета и ПризнакПредметаРасчета, без которых авансовый чек может быть признан некорректным.

Шаг 3. Проверка прошивки устройства. Для корректной работы с авансами ККТ должна иметь прошивку, поддерживающую работу по ФФД 1.05. Для аппаратов «Штрих-М» рекомендуются прошивки от 2018 года и новее (например, от 20.02.2018). В более старых версиях логика работы с расчетными ставками могла быть ограничена или отсутствовать вовсе.

Шаг 4. Настройка параметров в 1С. Проанализируем функцию получения ставки НДС. Рекомендуется использовать типовые механизмы конфигурации, чтобы значение ставки всегда соответствовало ожиданиям драйвера.


// Пример функции для подготовки ставки НДС к передаче в ККТ
Функция ПолучитьСтавкуДляККТ(ЗначениеСтавкиНДС)
    Если ЗначениеСтавкиНДС = Перечисления.СтавкиНДС.НДС18_118 Тогда
        Возврат 118;
    ИначеЕсли ЗначениеСтавкиНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда
        Возврат 120;
    ИначеЕсли ЗначениеСтавкиНДС = Перечисления.СтавкиНДС.НДС18 Тогда
        Возврат 18;
    // ... обработка других ставок
    КонецЕсли;
КонецФункции

Проверка работы через внешние инструменты

Если после обновления драйверов ошибка сохраняется, воспользуйтесь проверочной обработкой (например, Obrabotka_KKT_8.2.epf). Попробуйте выполнить операцию «Печать собственного документа» и вручную установите ставку НДС 118%. Если чек распечатается — проблема в вашем коде формирования структуры ОбщиеПараметры.ПозицииЧека. Если же ошибка повторится даже в тестовой обработке — проблема гарантированно в связке «Драйвер — Прошивка» или в настройках таблиц внутри кассы.

Резюмируем: для успешной печати авансовой ставки на ККТ «Штрих-М» необходимо обеспечить триединство актуального ПО: Драйвер 4.14.688 + Обработка 2.20 + Прошивка 2018 года. При такой комбинации значение 118 (или 120) будет корректно восприниматься устройством без дополнительных манипуляций с индексами налоговых групп.

← На главную