Ошибка в чеке ККТ Штрих-М из 1С: почему сумма без НДС равна нулю и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Налоговый учет Торговля и дистрибуция
← На главную

При оформлении продаж в программе 1С:Предприятие пользователи периодически сталкиваются с ситуацией, когда бумажный чек ККТ и данные, улетающие в ОФД, содержат некорректную информацию. Одна из распространенных проблем при работе с фискальными регистраторами семейства Штрих-М (например, Штрих-Сити-Ф, Штрих-М-01Ф) — это обнуление итоговой суммы без НДС (тег 1105) при продаже товаров, не облагаемых этим налогом.

В этой статье мы подробно разберем, почему возникает этот конфликт интеграции на стыке 1С и драйверов ККТ, проанализируем техническую сторону проблемы и рассмотрим все доступные варианты ее решения.

Суть проблемы и как она себя проявляет

Представим стандартный бизнес-процесс: организация находится на общей системе налогообложения (ОСНО), но реализует часть товаров или услуг, которые освобождены от уплаты НДС (ставка «Без НДС»). При оформлении продажи из документа Поступление наличных или Реализация в 1С формируется чек.

В окне предварительного просмотра (пречека) в 1С все реквизиты отображаются корректно: зафиксирована верная сумма товара, указан признак «Без НДС». Однако после того как чек физически пробивается на кассе, обнаруживается следующее:

  1. В бумажном чеке и в личном кабинете ОФД в строке «Сумма без НДС» (тег 1105) выводится значение 0.00 руб., хотя стоимость самого товара без НДС указана верно.
  2. Если провести тест и выбить аналогичный чек напрямую через «Тест драйвера ККТ» (минуя 1С), чек пробивается абсолютно корректно, и итоговая сумма без НДС заполняется правильно.
  3. Если организация бьет смешанные чеки (часть позиций с НДС 20%, часть без НДС), то налоги рассчитываются верно, но оборот по ставке «Без НДС» все равно не суммируется в общий итог чека.

Такое расхождение приводит к возникновению ошибки форматно-логического контроля (ФЛК 532) в личном кабинете ОФД: «Сумма расчета по чеку без НДС (тег 1105) отличается от суммы предметов расчета по ставке 'Без НДС'». Налоговые органы видят данное несоответствие, что может стать причиной получения официального предупреждения или штрафа за нарушение правил применения ККТ.

Технический анализ причин конфликта

Выясним причину, почему при работе через 1С данные передаются некорректно, а через тест драйвера все работает штатно. Для этого проанализируем структуру XML-пакета, который 1С отправляет на кассовый аппарат через механизм Библиотеки подключаемого оборудования (БПО).

В процессе обмена 1С формирует XML-структуру чека CheckPackage. Посмотрим на пример некорректного формирования параметров XML-команды:


{
  "type": "sell",
  "taxationType": "osn",
  "items": [
    {
      "type": "position",
      "name": "Товар без НДС",
      "price": 1000,
      "quantity": 1,
      "amount": 1000,
      "tax": {
        "type": "none"
      }
    }
  ]
}

В логах обмена с ККТ при передаче данных от 1С можно увидеть следующую картину:

VATRate=none, VATAmount=0

В чем заключается конфликт:

Варианты решения проблемы

Рассмотрим подробнее способы устранения этой ошибки, начиная от простых настроек оборудования и заканчивая программными корректировками.

Способ 1. Обновление прошивки ККТ (Единого Кассового Ядра)

Это самый надежный и правильный метод решения проблемы. В старых версиях прошивок «Штрих-М» этот баг обработки XML-пакетов присутствовал постоянно. Разработчики ККТ оперативно отреагировали на проблему и доработали внутреннее ПО ККТ (на базе Единого Кассового Ядра — ЕКЯ).

Актуальные версии прошивок автоматически игнорируют избыточный параметр VATAmount="0", если в строке указана ставка none. Касса самостоятельно корректно суммирует позиции и записывает верное значение в тег 1105. Рекомендуется обратиться к обслуживающему вас партнеру ККТ (АСЦ) для обновления прошивки фискального регистратора до актуальной версии.

Способ 2. Обновление драйвера кассы на рабочем ПК

Часто сбой удается нивелировать путем обновления драйвера ККТ. Если на вашем компьютере установлена устаревшая версия драйвера (например, из ветки 4.15), выполните следующие действия:

  1. Зайдите на официальный сайт производителя «Штрих-М» и скачайте актуальную версию драйвера (рекомендуется использовать стабильные релизы из веток 5.16 / 5.17 или старше).
  2. Установите новый драйвер на рабочий компьютер, где запущена 1С.
  3. В настройках подключения оборудования в 1С перевыберите новую версию драйвера. В свежих версиях оптимизирована трансляция XML-структур в низкоуровневые команды кассы, что позволяет обходить ошибку сериализации.

Способ 3. Изменение настроек налоговых таблиц в ККТ

Если быстро обновить прошивку ККТ нет возможности, можно скорректировать внутренние настройки таблиц кассового аппарата через стандартную утилиту производителя.

Внимание: данный способ требует осторожности и предварительного снятия Z-отчета.

  1. Запустите программу «Тест драйвера ФР» и подключитесь к вашей кассе.
  2. Перейдите в раздел «Настройка свойств», затем откройте пункт «Таблицы».
  3. Найдите Таблицу 1 (Тип и режимы ККТ). Проверьте Поле 14 («Начисление налогов»). По умолчанию для работы с 1С там должно стоять значение 1 (налоги рассчитываются верхним ПО, то есть самой 1С).
  4. Перейдите в Таблицу 6 (Налоговые ставки). Проверьте, какая именно строка таблицы отвечает за ставку «Без НДС» (обычно это 4-я или 1-я налоговая ставка в зависимости от конкретной прошивки). Убедитесь, что для этой ставки задано корректное значение (в некоторых версиях драйверов требуется значение -1 или пустое поле для корректного маппинга ставки none из 1С).

Способ 4. Программная корректировка на стороне 1С

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

Для этого программисту необходимо скорректировать модуль интеграции с кассовым оборудованием, отвечающий за формирование XML-пакета CheckPackage. Задача состоит в том, чтобы принудительно удалять атрибут VATAmount, если ставка налога определена как none.

Пример программного кода в общем модуле интеграции с ККТ, который решает эту проблему:


// Перед формированием строки XML проверяем ставку НДС
Если ТекущаяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС Тогда
    // Исключаем выгрузку тега VATAmount для безналоговых позиций
    Если СтруктураПозиции.Свойство("VATAmount") Тогда
        СтруктураПозиции.Удалить("VATAmount");
    КонецЕсли;
КонецЕсли;

Использование этого кода гарантирует, что на кассу уйдет «чистый» XML-пакет, соответствующий стандартам ККТ Штрих-М.

Что делать с уже пробитыми ошибочными чеками?

Поскольку чеки с нулевым тегом 1105 уже ушли в ФНС с предупреждением ФЛК, оставлять их без внимания не стоит. Чтобы обезопасить организацию от возможных штрафных санкций за нарушение кассовой дисциплины, рекомендуется выполнить следующие действия:

  1. После того как вы исправите проблему одним из вышеописанных способов (обновите прошивку ККТ или драйвер), сформируйте чеки коррекции.
  2. Для каждого ошибочного чека необходимо пробить чек коррекции с признаком расчета «Возврат прихода», который полностью продублирует неверный чек и аннулирует его в системе налоговой.
  3. Затем необходимо пробить правильный чек коррекции с признаком расчета «Приход», в котором сумма по ставке «Без НДС» (тег 1105) отразится корректно.

Мы проанализировали причины сбоя при выводе суммы без НДС в чеках ККТ Штрих-М при работе из 1С. Своевременное обновление кассового софта и прошивки оборудования позволит вам избежать ошибок контроля ФЛК и предупредить возможные претензии со стороны налоговых органов. Для массового исправления ставок налога в уже пробитых документах можно использовать обработку для пакетного формирования чеков коррекции.

← На главную