При переходе на новый формат фискальных данных (ФФД 1.2) и обновлении программных продуктов 1С до актуальных версий многие пользователи сталкиваются с неприятной ситуацией: при попытке пробить чек с маркированным товаром (например, обувью) система выдает ошибку «Неполный код маркировки» или «Код маркировки не прошел проверку». При этом зачастую наблюдается странное поведение: если добавить товар через специальную форму подбора и проверки, код считывается корректно. Рассмотрим подробно, почему так происходит, и разберем по шагам способы решения этой проблемы.
Проанализируем ситуацию: почему в режиме «Подбор и проверка» (через кнопку «Марки») всё работает, а при прямом сканировании в чек возникают ошибки? Дело в том, что в 1С:Розница реализованы разные алгоритмы обработки входящих данных от сканера в зависимости от контекста. При открытом окне проверки система ожидает конкретно DataMatrix и применяет более гибкие механизмы парсинга. При сканировании напрямую в корзину чека срабатывает жесткая проверка структуры кода на соответствие стандартам GS1, необходимая для формирования запроса в ОИСМ (Честный Знак) через кассовое ядро.
Выделим основные технические факторы, вызывающие сбои:
Выясним причину ошибки «Неполный код маркировки». По стандарту DataMatrix для маркированных товаров содержит скрытый символ-разделитель GS (Group Separator, десятичный код ASCII 29). Если сканер настроен в режиме эмуляции клавиатуры или неправильно настроен в режиме COM-порта, этот символ теряется. 1С не видит границ между идентификатором применения и криптохвостом, из-за чего считает код поврежденным.
Что необходимо сделать:
13 (CR)).<29> или #29. Если его нет — сканер нужно перенастроить с помощью управляющих штрихкодов или использовать расширение для передачи символа GS (ищите пункты «Enable GS1 DataMatrix» или «Format GS1»).Рассмотрим подробнее программную часть. В сообщениях часто фигурирует драйвер версии 10.10.0.0. Данная версия признана нестабильной для работы с ФФД 1.2 — решить проблемы совместимости поможет обработка интеграции ККТ АТОЛ и Штрих под ФФД 1.2. Для корректной обработки запросов [M+] необходимо обновить компоненты.
Рекомендуемые действия:
Часто проверка не проходит с первого раза, потому что система «сдается» раньше, чем получает ответ от «Честного Знака». При пробитии чека касса отправляет запрос в ОИСМ, используя механизм проверки разрешительного режима марок. По умолчанию таймаут в 1С может быть установлен на 5 секунд, чего недостаточно при нестабильном интернете или высокой нагрузке на сервера маркировки.
Разберем, как увеличить время ожидания:
Если после обновления или изменения настроек сканер начинает периодически «отваливаться» (перестает реагировать на кнопку, требует переподключения кабеля), проанализируем физическое подключение. Дешифрация сложных кодов DataMatrix требует пиковой мощности от USB-порта.
Попробуйте следующие меры:
Посмотрим на версию конфигурации. Релиз 2.3.9.42 является довольно старым. В более поздних версиях (ветка 2.3.15 и выше) разработчики 1С значительно оптимизировали работу Библиотеки Подключаемого Оборудования (БПО).
Проанализируем программный механизм: при первом сканировании в чеке система может не успеть проинициализировать контекст работы с ИС МП. При повторном сканировании или через форму «Марки» сессия уже активна, поэтому всё проходит успешно. Обновление конфигурации до актуального релиза часто решает проблему «второго сканирования» за счет исправленных внутренних механизмов кэширования ответов ККТ — также для этой задачи подходит модуль подключения касс АТОЛ и ШТРИХ-М в 1С:Розница.
Пример программной логики, которая проверяется системой (условно):
// Пример логики проверки кода в БПО
РезультатПроверки = ИнтеграцияИСМП.ПроверитьКодМаркировки(СчитанныйКод, ПараметрыККТ);
Если РезультатПроверки.Статус <> "Успешно" Тогда
// Если таймаут мал, мы попадаем сюда при первом запросе
ВызватьИсключение "Ошибка проверки КМ: " + РезультатПроверки.ТекстОшибки;
КонецЕсли;
Для стабильной работы и исключения ошибок при пробитии чеков рекомендуем придерживаться следующего чек-листа:
Соблюдение этих шагов позволит минимизировать количество ручных манипуляций кассира и обеспечит корректное выполнение требований законодательства по ФФД 1.2 — для автоматизации печати с нескольких мест пригодится решение для удаленной печати чеков с поддержкой ФФД 1.2.