Как исправить ошибку записи тега 1163 «94-ККТ: Неверная операция» при продаже маркированного товара на ККТ Штрих?

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

При оформлении чека с маркированной продукцией через кассовые аппараты линейки «Штрих-М» и промежуточные службы печати чеков (в частности, kkmserver) специалисты нередко сталкиваются с ошибкой фискализации. В логах кассового сервиса фиксируется сбой: «Ошибка записи тега 1163 (код маркировки) ( 94-ККТ: Неверная операция )», который часто сопровождается предупреждением «Не поддерживается передача поля InternetMode (1125); Ошибка записи реквизита ОФД: ( 51-ККТ: Некорректные параметры в команде )». При этом проверка разрешительного режима и самого кода идентификации (КИЗ) в системе «Честный Знак» может проходить успешно.

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

Причина 1: Неверный признак предмета расчета (тег 1212 / SignCalculationObject)

Главная причина появления ошибки 94 («Неверная операция») при фиксации кода маркировки заключается в несоответствии переданных реквизитов товарной позиции требованиям формата фискальных данных (ФФД 1.2). Если кассовое ПО формирует чек и передает код маркировки (тег 1163), но при этом оставляет признак предмета расчета стандартным (значение 1 — «Товар»), кассовый аппарат блокирует добавление марки, считая операцию недопустимой.

Для продукции, подлежащей обязательной маркировке средствами идентификации, признак предмета расчета (поле SignCalculationObject) должен принимать значение 31 («Товар, подлежащий маркировке средством идентификации, имеющий код маркировки»).

Разберем по шагам, как исправить эту ситуацию:

  1. Корректировка передаваемых данных из учетной системы: Если структура чека формируется непосредственно в коде 1С, убедимся, что для маркированных позиций реквизит SignCalculationObject явно заполняется значением 31, а не значением по умолчанию 1.
  2. Включение автозамены в kkmserver: Если доработка кассового модуля 1С затруднена (например, в нетиповых конфигурациях или устаревших версиях), воспользуемся встроенным механизмом kkmserver. В настройках сервера печати предусмотрена специальная опция, позволяющая автоматически подменять признак предмета расчета с 1 на 31 при наличии в позиции заполненного кода маркировки. Активируем эту настройку на проблемном рабочем месте.

Причина 2: Устаревшая версия кассового сервера и сбои валидации

При переходе на ФФД 1.2 и работу с требованиями разрешительного режима (ТС ПИоТ) процесс фискализации маркированного товара стал многоэтапным. Фискальный регистратор требует строгой последовательности: запуск проверки марки в накопителе командой ValidationMarkingCode, получение результата проверки и лишь затем подтверждение продажи.

Проанализируем программные зависимости:

  1. Версия kkmserver: В старых сборках промежуточного сервера проверка марки могла завершаться аварийно из-за ошибок в формировании запроса к ФН. Для стабильной работы обновим kkmserver до актуальной версии (начиная с релиза 2.3.17.21 и новее), где исправлена ошибка с валидацией марки и реализована корректная интеграция с ТС ПИоТ.
  2. Разрядность драйвера ККТ: Современные версии kkmserver обращаются к штатному драйверу ККТ «Штрих-М». Обратим внимание, что службе требуется именно 32-битный (x86) драйвер для прямого взаимодействия с фискальным ядром и корректного сопряжения со службой EthernetOverTransport / RNDIS.

Причина 3: Искажение разделителя GS при считывании кода маркировки

Посмотрим на структуру кода DataMatrix: в нем обязательно присутствуют управляющие непечатные символы разделителя групп GS (ASCII 29 / 0x1D), отделяющие серийный номер от криптохвоста (идентификаторы применения 91 и 92). Если при передаче строки из сканера или драйвера символ GS заменяется знаком вопроса (?), пробелом или экранируется как \u001d, фискальный регистратор не сможет разобрать криптографическую часть кода.

Выясним порядок проверки и настройки сканера ШК:

  1. Режим работы сканера: Переведем сканер в режим эмуляции виртуального COM-порта (USB-COM / CDC ACM). В режиме эмуляции клавиатуры (HID POS) операционная система с русской раскладкой клавиатуры повреждает непечатные ASCII-символы.
  2. Драйверы оборудования: При использовании внешних компонент сканирования убедимся, что драйвер считывает полный сырой буфер данных, не обрезая спецсимволы до передачи в 1С.

Причина 4: Параметры фискализации и предупреждение по тегу 1125

Предупреждение «Не поддерживается передача поля InternetMode (1125); Ошибка записи реквизита ОФД: ( 51-ККТ: Некорректные параметры в команде )» говорит о том, что программа пытается передать тег фискализации для интернет-торговли в кассу, которая зарегистрирована только для классических стационарных расчетов.

Проверим параметры регистрации ККТ через утилиту «Тест драйвера ККТ»: флаг торговли маркированными товарами в ФН должен быть обязательно установлен, а версия ФФД в таблицах ККТ должна строго соответствовать 1.2. Если касса не используется исключительно для расчетов в сети Интернет, передачу реквизита InternetMode в теле запроса формирования чека следует отключить.

Диагностика через тест драйвера

Если после проверки настроек ошибка сохраняется, локализуем сбой:

  1. Откроем утилиту «Тест драйвера ККТ» от производителя «Штрих-М».
  2. Проверим состояние смены и отсутствие открытых незавершенных документов в ФН. При необходимости выполним команду отмены открытого чека.
  3. В разделе работы с ФФД 1.2 вручную выполним проверку считанного кода маркировки через ФН и сформируем тестовую позицию с признаком предмета расчета 31. Успешная регистрация позиции через драйвер подтвердит, что касса и ФН исправны, а корректировку необходимо производить в параметрах промежуточного кассового ПО.
← На главную