Как устранить ошибку Invalid Tax Value: 20 при печати чеков на кассах Штрих-М

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

Переход на ставку НДС 20% стал серьезным испытанием для многих технических специалистов. Одной из наиболее распространенных проблем при работе с оборудованием Штрих-М является ошибка "FFFFFFF8h, Invalid Tax Value: 20". Ситуация осложняется тем, что даже при обновлении драйверов и конфигурации 1С, фискальный регистратор может продолжать «отказываться» принимать новую ставку. В этой статье мы подробно разберем, как привести систему в рабочее состояние, проанализируем причины конфликтов между 1С и драйвером, а также рассмотрим технические нюансы регистрации необходимых библиотек.

Разбор основной причины ошибки Invalid Tax Value

Ошибка Invalid Tax Value: 20 буквально означает, что кассовый аппарат или его драйвер не распознают значение «20» как допустимый идентификатор налоговой ставки. Давайте проанализируем ситуацию: в протоколе обмена данными со Штрих-М налоговые ставки часто передаются не как проценты, а как индексы (порядковые номера) из внутренней таблицы налогов ККТ (Таблица №6). Если в этой таблице на позиции, которую ожидает драйвер, нет ставки 20%, или если драйвер слишком старый и не знает, что «20» нужно сопоставлять с определенным индексом, возникает ошибка.

Рассмотрим основные факторы, влияющие на это поведение:

  1. Версия драйвера: Старые версии (например, ниже 4.14.721) жестко ограничены старыми ставками.
  2. Версия прошивки ККТ: Для поддержки НДС 20% требуется прошивка, выпущенная не ранее конца 2018 года.
  3. Лицензирование: Компания Штрих-М ввела систему платных подписок. Без введенного кода защиты (лицензии) в самой кассе новая ставка может не активироваться, даже если прошивка обновлена.
  4. Ревизия интерфейса: В 1С для работы с НДС 20% требуется использование компоненты с ревизией интерфейса не ниже 2004.

Обновление драйвера и регистрация компоненты

Первым делом нам необходимо убедиться, что в системе установлен актуальный драйвер. Как показывает практика, наиболее стабильными для перехода стали версии 4.14.747 и выше. Однако просто установить драйвер в ОС недостаточно — 1С должна использовать правильную внешнюю компоненту.

Разберем процесс регистрации библиотеки вручную. Если вы используете современную версию БПО (Библиотека подключаемого оборудования), 1С пытается сама загрузить нужную библиотеку, но иногда возникают конфликты версий. Попробуем зарегистрировать библиотеку SMDrvFR1CLib24.dll, которая входит в комплект поставки новых драйверов:

  1. Перейдем в папку, куда установлен драйвер Штрих-М (обычно C:\Program Files (x86)\SHTRIH-M\DRVFR 4.14\Bin).
  2. Найдем файл SMDrvFR1CLib24.dll (в некоторых версиях может называться SMDrvFR1C22.dll, но для НДС 20% важна именно поддержка новых методов).
  3. Запустим командную строку от имени администратора.
  4. Выполним регистрацию: regsvr32 SMDrvFR1CLib24.dll.

После этого в 1С в справочнике "Драйверы оборудования" необходимо обновить объект драйвера, выбрав путь к установленным файлам или загрузив актуальный zip-архив с сайта 1С/Штрих-М.

Настройка таблиц налоговых ставок в ККТ

Если драйвер обновлен, но ошибка сохраняется, нам нужно проверить внутренние таблицы кассы. Сделаем это через программу "Тест драйвера ККТ". Проанализируем Таблицу №6 (Налоги). Для корректной работы с 1С рекомендуется следующий порядок:

  1. Индекс 1: Величина 2000 (НДС 20%)
  2. Индекс 2: Величина 1000 (НДС 10%)
  3. Индекс 3: Величина 0 (НДС 0%)
  4. Индекс 4: Величина 0 (Без НДС)

Важный нюанс: В некоторых «переходных» прошивках Штрих-М реализовал механизм автоматической подмены. Если касса видит ставку 18%, она сама печатает 20%, чтобы обеспечить совместимость со старым софтом. Однако это работает только в том случае, если дата в кассе — 1 января 2019 года или позже. Рассмотрим пример кода в 1С, который может вызывать ошибку, если мы передаем число 20 напрямую в старый драйвер:


// Пример формирования структуры для чека
ОбъектДрайвера.СтавкаНДС = 20; // Старый драйвер может не принять это значение
// Вместо этого в переходный период часто использовалась логика:
Если ДатаЧека >= '20190101' Тогда
    СвойстваЧека.Ставка = 20; 
Иначе
    СвойстваЧека.Ставка = 18;
КонецЕсли;

Решение ошибки 33h: Некорректные параметры в команде

Иногда после обновления драйвера до версии 731 или 747 вместо ошибки Invalid Tax появляется ошибка 33h. Это происходит потому, что новый драйвер пытается общаться с кассой по расширенному протоколу, который касса еще не поддерживает (например, из-за старой прошивки или работы в режиме ФФД 1.0 вместо 1.05).

Чтобы выяснить причину, проанализируем следующие действия:

Программная подмена ставки (Workaround)

В исключительных случаях, если обновить прошивку ККТ прямо сейчас невозможно, а работать нужно, программисты прибегают к «хитрости» — подмене передаваемого значения. Рассмотрим, как это реализовано в обработках обслуживания:

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


Функция ПодготовитьДанныеНалога(СтавкаНДС)
    Если СтавкаНДС = 20 Тогда
        // Если прошивка ККТ настроена на автоматическую замену 18 на 20
        Возврат 18; 
    КонецЕсли;
    Возврат СтавкаНДС;
КонецФункции

Внимание: Этот метод является временным и крайне не рекомендуется для постоянного использования. Правильный путь — обновление прошивки до версии, которая официально поддерживает тэг 20% и ФФД 1.05.

Особенности работы с кассирами на аппаратах Спарк (Штрих)

В процессе настройки может возникнуть сопутствующая ошибка: "Кассир не был запрограммирован ранее". Она часто появляется при попытке закрыть смену или пробить чек после обновления драйверов. Выясним причину: в новых протоколах передачи данных поле «Кассир» стало обязательным и должно содержать ИНН. Если вы передаете просто строку с фамилией, драйвер может вернуть ошибку инициализации.

Убедимся, что в коде 1С передаются оба параметра:


ПараметрыФискализации.Вставить("ИмяКассира", "Иванов И.И.");
ПараметрыФискализации.Вставить("ИННКассира", "123456789012");

Итоги и рекомендации

Подводя итог, можно составить краткий чеклист для исправления проблем с НДС 20% на Штрих-М:

  1. Прошивка: Убедиться, что касса прошита актуальной версией (минимум от конца 2018 года).
  2. Лицензия: Проверить наличие лицензии на 20% в таблицах ККТ.
  3. Драйвер: Установить версию 4.14.747 или выше и зарегистрировать SMDrvFR1CLib24.dll.
  4. БПО: Обновить библиотеку подключаемого оборудования в 1С до версии не ниже 2.0.6.
  5. ФФД: Убедиться, что касса фискализирована под формат 1.05.

Соблюдение этих шагов позволит избавиться от ошибок Invalid Tax Value и обеспечит корректную передачу данных в налоговую службу через ОФД.

← На главную