Почему на чеке ККТ Штрих-М не печатается буква [М] при ФФД 1.2 и как это исправить

Программист 1С v7.7 Торговля и дистрибуция
← На главную

При переходе на формат фискальных данных (ФФД) 1.2 многие пользователи ККТ «ШТРИХ-М» сталкиваются с ситуацией, когда продажа маркированного товара проходит корректно, данные уходят в ОФД и систему «Честный Знак», но на бумажном чеке отсутствует обязательный префикс [М] (или его вариации [M+], [M-]). Это является нарушением правил оформления расчетов, поэтому проблему необходимо устранять незамедлительно. В данной статье мы подробно разберем, какие настройки ККТ и параметры драйвера отвечают за вывод этого реквизита.

Анализ проблемы: почему данные есть в ОФД, но нет в чеке

Если в личном кабинете ОФД в электронном чеке присутствует тег 1163 (код товара) и результат проверки марки (тег 2106), а на бумаге символ [М] отсутствует, это означает, что логика формирования печатной формы в самой ККТ настроена неверно. В ФФД 1.2 касса сама отвечает за визуализацию результата проверки. Рассмотрим основные причины, по которым печать может быть заблокирована, и проанализируем шаги по их устранению.

Шаг 1: Проверка базовых настроек в Таблице 17

Первым делом нам необходимо обратиться к настройкам внутренних таблиц ККТ. Большинство параметров печати сосредоточено в Таблице 17 «Региональные настройки». Разберем наиболее важные поля:

  1. Поле 25 «Автопечать тегов»: Установим значение в 1. Этот параметр разрешает ККТ автоматически выводить на печать значения тегов, которые передаются в фискальный документ. Если здесь стоит 0, многие реквизиты, включая результат проверки маркировки, могут игнорироваться принтером.
  2. Поле 10 «Печать тегов в сокращенном виде»: Рекомендуется установить значение 1. Это позволяет кассе использовать стандартные аббревиатуры, утвержденные ФНС.
  3. Поле 39 «Печать результата проверки КМ»: Убедимся, что значение установлено в 1. Это прямое указание кассе выводить символы статуса проверки марки.

Шаг 2: Настройка битовой маски в Поле 12

Одной из самых частых причин отсутствия [М] в новых прошивках является неправильная битовая маска в Таблице 17, Поле 12 «Печать тегов». Рассмотрим подробнее, как работает этот параметр. Поле представляет собой сумму значений (битов), каждый из которых отвечает за печать определенных групп тегов.

В современных версиях ПО для работы с ФФД 1.2 за печать результата проверки кода маркировки (тег 2106) отвечает старший бит (маска 0x8000). Если этот бит не активен, касса будет «молчать» даже при успешной проверке. Проанализируем значения:

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

Шаг 3: Влияние версии прошивки и подписки

Иногда отсутствие печати [М] связано с программной ошибкой в конкретной сборке внутреннего ПО ККТ или отсутствием актуальной лицензии. Разберем ситуацию на примере прошивок от начала 2022 года:

В релизах от 18.04.2022 была замечена особенность, при которой печать тега 2106 может отключаться, если на аппарате не активна подписка на обновления (например, на 2-й квартал 2022 года и выше). Выясним причину через тест драйвера:

Зайдем в раздел «Запросы» -> «Лицензии» и проверим наличие лицензий на «ФФД 1.2» и «Маркировку». Если лицензии на месте, но печати нет, попробуем выполнить обновление прошивки до более стабильной версии (например, релиз от конца 2022 года или 2023 года), где механизмы работы с ФН-М были отлажены.

Шаг 4: Передача данных из программного обеспечения (1С)

Даже если ККТ настроена правильно, важно проанализировать, как ваше ПО (например, на платформе 1С:Предприятие 7.7 или 8.3) передает данные драйверу. В режиме ФФД 1.2 вместо записи в тег 1162 мы должны использовать механизм формирования тега 1163. Посмотрим на логику работы с драйвером SHTRIH-M:

При использовании нативных методов драйвера (например, через объект AddIn.DRVFR), необходимо использовать методы для работы с маркировкой. Пример упрощенного алгоритма:


// Загрузка кода маркировки в ККТ перед открытием строки чека
Драйвер.MarkingType = 0; // Тип маркировки (зависит от категории товара)
Драйвер.BarCode = "01046...[полный_код_маркировки]"; // Передаем полный DataMatrix
Драйвер.FNClearMarkingBuffer(); // Очистка буфера перед проверкой
Драйвер.FNAddMarkingCode(); // Добавление кода в буфер ФН
// Ожидание ответа от ОИСМ через метод FNGetStatus (проверка статуса)

Если ваше ПО передает марку просто как текстовый атрибут или пытается записывать ее в старые теги, ККТ не распознает товар как маркированный в контексте ФФД 1.2, и буква [М] не появится.

Что означают символы [M+], [M-] и [M] на чеке?

После того как мы добились появления заветной буквы, важно понимать, что именно печатает касса. Это результат двухэтапной проверки:

Дополнительные реквизиты: число 1908 и номер секции

Иногда рядом с буквой [М] печатаются дополнительные цифры, например 1908. Проанализируем, что это такое. Это тег 2115 (Строковый код проверки). Он генерируется фискальным накопителем как результат обработки ответа от системы маркировки. В некоторых редакциях правил ФФД 1.2 печать этого кода является обязательной, поэтому пугаться его появления не стоит — это признак того, что касса получила подтверждение от «Честного Знака».

Если же вы видите лишние цифры в строке итога или суммы (например, одинокую цифру 3), скорее всего, это печатается номер секции (отдела). Проверьте в коде 1С, какое значение вы передаете в свойство Department. Например:


ФискальныйРегистратор.Department = Число(ВыбПодразделение.Код);

Если это мешает эстетике чека, настройте печать секций в Таблице 1, Поле 1 или через параметры драйвера.

Технологическое обнуление как крайняя мера

Если все настройки таблиц верны, битовые маски проставлены, а прошивка актуальна, но [М] так и не печатается, мы рекомендуем выполнить технологическое обнуление ККТ. Это процедура сброса оперативной памяти (RAM) аппарата, которая удаляет зависшие флаги состояний, оставшиеся от предыдущего формата (ФФД 1.05).

После обнуления потребуется заново установить дату, время и настройки связи с ОФД. Часто именно эта «глубокая очистка» позволяет внутреннему ПО ККТ корректно инициализировать новые механизмы ФФД 1.2 и начать печатать все обязательные реквизиты.

← На главную