При работе с кассовым оборудованием Штрих-М в программе 1С:Бухгалтерия 3.0 пользователи часто сталкиваются с ошибкой Invalid Tax Value: 20 (код FFFFFFF8h). Эта проблема обычно возникает в момент печати фискального чека и блокирует работу кассира. В данной статье мы подробно разберем причины возникновения этой ситуации и рассмотрим пошаговые алгоритмы её решения.
Ошибка Invalid Tax Value: 20 буквально означает, что драйвер кассового аппарата или сама прошивка ККТ (контрольно-кассовой техники) получила значение налоговой ставки «20%», которое она считает недопустимым. Рассмотрим основные причины, почему это происходит:
<TaxRate>20</TaxRate>, в то время как драйвер ожидает индекс (например, «1») или текстовое наименование.Проанализируем состояние кассового аппарата через стандартную утилиту от производителя. Это первый и самый важный шаг. Выясним, как касса воспринимает налоги внутри своей памяти.
Для этого выполним следующие действия:
DvrFR.exe или ShtrihMk.exe).Иногда ошибка FFFFFFF8h является следствием того, что предыдущий чек не был корректно аннулирован или закрыт. Касса находится в промежуточном состоянии и не принимает новые данные о налогах.
Разберем, как сбросить состояние ККТ:
В «Тесте драйвера» перейдем на вкладку «Состояние» и нажмем «Запрос состояния». Если в поле «Режим» указано «2» или «3» (Открытая смена), но при этом есть активный документ, необходимо выполнить команду «Аннулировать чек» (на вкладке «Регистрация» или «Общие»). После этого попробуем распечатать чек из 1С повторно.
Программа 1С:Бухгалтерия взаимодействует с драйвером Штрих-М не напрямую, а через специальную библиотеку — внешнюю компоненту. Чаще всего это файл SMDrvFR1CLib24.dll.
Рассмотрим процесс обновления компоненты:
Даже если вы установили новый драйвер 4.14.772 или выше, 1С может продолжать использовать старую версию библиотеки, сохраненную в кэше или в папке пользователя. Проанализируем путь C:\Users\ИмяПользователя\AppData\Roaming\1C\1cv8\ExtCompT\. Если там находится старая версия SMDrvFR1CLib, её следует удалить, чтобы система подтянула актуальную библиотеку из дистрибутива драйвера.
Также в самой 1С в разделе «Администрирование» — «Подключаемое оборудование» необходимо открыть настройки вашей кассы и нажать кнопку «Установить драйвер» или «Обновить». Это принудительно обновит макет компоненты в базе данных.
Как показывает практика обсуждений на форумах, существует «хитрый» способ заставить связку 1С и Штрих-М работать, если админ запрещает обновлять драйверы. Рассмотрим эту ситуацию.
Выясним причину: ККТ Штрих-М на уровне прошивки часто имеет механизм автоматической подмены. Если в 1С указать ставку 18%, драйвер, видя дату (после 01.01.2019), автоматически заменяет её на 20% при печати. Если же 1С сразу присылает 20%, старая версия драйвера «пугается» незнакомого числа.
Попробуем выполнить следующие действия в 1С:
Для программистов и системных администраторов будет полезно проанализировать лог драйвера. В настройках драйвера Штрих-М можно включить «Ведение лога». В файле лога мы увидим структуру XML, которую 1С отправляет на кассу. Пример проблемного блока:
<FiscalString Name="Товар" Quantity="1" Price="120" Sum="120" TaxRate="20" TaxSum="20" />
Если в логе мы видим TaxRate="20", а ККТ возвращает FFFFFFF8h, это подтверждает, что текущая прошивка или драйвер не обучены принимать прямое значение «20». Решением будет либо обновление прошивки ККТ до актуальной (под ФФД 1.05 или 1.2), либо настройка соответствия налоговых секций в таблицах драйвера.
Для того чтобы избежать подобных проблем в будущем, рекомендуем придерживаться следующих правил:
Налог 1 должен соответствовать НДС 20%, а Налог 4 — НДС 0% или «Без НДС».Подводя итог, отметим, что ошибка Invalid Tax Value: 20 — это типичный конфликт форматов данных. Совместными усилиями по настройке таблиц драйвера и обновлению интеграционных библиотек 1С эта проблема решается без необходимости внесения изменений в программный код конфигурации.