При оформлении чека с маркированной продукцией через кассовые аппараты линейки «Штрих-М» и промежуточные службы печати чеков (в частности, kkmserver) специалисты нередко сталкиваются с ошибкой фискализации. В логах кассового сервиса фиксируется сбой: «Ошибка записи тега 1163 (код маркировки) ( 94-ККТ: Неверная операция )», который часто сопровождается предупреждением «Не поддерживается передача поля InternetMode (1125); Ошибка записи реквизита ОФД: ( 51-ККТ: Некорректные параметры в команде )». При этом проверка разрешительного режима и самого кода идентификации (КИЗ) в системе «Честный Знак» может проходить успешно.
Разберем детально, почему фискальный накопитель и прошивка ККТ отклоняют команду записи реквизита 1163, и как восстановить штатную печать чеков с маркировкой.
Главная причина появления ошибки 94 («Неверная операция») при фиксации кода маркировки заключается в несоответствии переданных реквизитов товарной позиции требованиям формата фискальных данных (ФФД 1.2). Если кассовое ПО формирует чек и передает код маркировки (тег 1163), но при этом оставляет признак предмета расчета стандартным (значение 1 — «Товар»), кассовый аппарат блокирует добавление марки, считая операцию недопустимой.
Для продукции, подлежащей обязательной маркировке средствами идентификации, признак предмета расчета (поле SignCalculationObject) должен принимать значение 31 («Товар, подлежащий маркировке средством идентификации, имеющий код маркировки»).
Разберем по шагам, как исправить эту ситуацию:
SignCalculationObject явно заполняется значением 31, а не значением по умолчанию 1.kkmserver. В настройках сервера печати предусмотрена специальная опция, позволяющая автоматически подменять признак предмета расчета с 1 на 31 при наличии в позиции заполненного кода маркировки. Активируем эту настройку на проблемном рабочем месте.При переходе на ФФД 1.2 и работу с требованиями разрешительного режима (ТС ПИоТ) процесс фискализации маркированного товара стал многоэтапным. Фискальный регистратор требует строгой последовательности: запуск проверки марки в накопителе командой ValidationMarkingCode, получение результата проверки и лишь затем подтверждение продажи.
Проанализируем программные зависимости:
kkmserver до актуальной версии (начиная с релиза 2.3.17.21 и новее), где исправлена ошибка с валидацией марки и реализована корректная интеграция с ТС ПИоТ.kkmserver обращаются к штатному драйверу ККТ «Штрих-М». Обратим внимание, что службе требуется именно 32-битный (x86) драйвер для прямого взаимодействия с фискальным ядром и корректного сопряжения со службой EthernetOverTransport / RNDIS.Посмотрим на структуру кода DataMatrix: в нем обязательно присутствуют управляющие непечатные символы разделителя групп GS (ASCII 29 / 0x1D), отделяющие серийный номер от криптохвоста (идентификаторы применения 91 и 92). Если при передаче строки из сканера или драйвера символ GS заменяется знаком вопроса (?), пробелом или экранируется как \u001d, фискальный регистратор не сможет разобрать криптографическую часть кода.
Выясним порядок проверки и настройки сканера ШК:
USB-COM / CDC ACM). В режиме эмуляции клавиатуры (HID POS) операционная система с русской раскладкой клавиатуры повреждает непечатные ASCII-символы.Предупреждение «Не поддерживается передача поля InternetMode (1125); Ошибка записи реквизита ОФД: ( 51-ККТ: Некорректные параметры в команде )» говорит о том, что программа пытается передать тег фискализации для интернет-торговли в кассу, которая зарегистрирована только для классических стационарных расчетов.
Проверим параметры регистрации ККТ через утилиту «Тест драйвера ККТ»: флаг торговли маркированными товарами в ФН должен быть обязательно установлен, а версия ФФД в таблицах ККТ должна строго соответствовать 1.2. Если касса не используется исключительно для расчетов в сети Интернет, передачу реквизита InternetMode в теле запроса формирования чека следует отключить.
Если после проверки настроек ошибка сохраняется, локализуем сбой:
31. Успешная регистрация позиции через драйвер подтвердит, что касса и ФН исправны, а корректировку необходимо производить в параметрах промежуточного кассового ПО.