При работе с контрольно-кассовой техникой (ККТ) «Штрих-М» программисты 1С часто сталкиваются с ситуацией, когда обычные чеки печатаются корректно, но при попытке пробить авансовый платеж с расчетной ставкой НДС (18/118 или 20/120) устройство выдает ошибку: "FFFFFFF8h, Invalid Tax Value: 118" (или 120). Разберем подробно причины возникновения этой ошибки и алгоритм её устранения на стороне кода 1С и настроек оборудования.
Ошибка Invalid Tax Value означает, что драйвер ККТ или сама прошивка аппарата не могут распознать переданное числовое значение как допустимую налоговую ставку. Проблема может крыться в трех плоскостях:
Проанализируем типичный фрагмент кода, который отвечает за формирование товарных позиций чека. Выясним, какие параметры критически важны для печати аванса.
// Пример формирования структуры чека в 1С
СтрокаЧека = МенеджерОборудованияКлиентСервер.ПараметрыФискальнойСтрокиЧека;
СтрокаЧека.Наименование = "Аванс по договору №123";
СтрокаЧека.Количество = 1;
СтрокаЧека.Цена = СуммаПлатежа;
СтрокаЧека.Сумма = СуммаПлатежа;
// Установка ставки НДС. Для аванса должна передаваться расчетная ставка
Если СтавкаНДС_18_118 Тогда
СтрокаЧека.СтавкаНДС = 118; // Или 120 для актуальных ставок
Иначе
СтрокаЧека.СтавкаНДС = 18;
КонецЕсли;
// Критически важные теги для ФФД 1.05
СтрокаЧека.КодПризнакаПредметаРасчета = 10; // Платеж (аванс)
СтрокаЧека.КодПризнакаСпособаРасчета = 3; // Аванс
Рассмотрим подробнее, как ККТ воспринимает значение 118. Внутри каждого фискального регистратора «Штрих-М» есть Таблица №17 «Ставки НДС». В этой таблице каждому ряду соответствует определенное значение налога. Когда 1С передает драйверу число 118, драйвер пытается сопоставить его с одной из строк в этой таблице.
Если в таблице ККТ для соответствующего ряда не прописано значение 118 (или 118.00), устройство возвращает ошибку невалидного значения. Проверить это можно через утилиту «Тест драйвера ККТ»:
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) будет корректно восприниматься устройством без дополнительных манипуляций с индексами налоговых групп.