Как исправить ошибку «В структуре кода маркировки отсутствует криптохвост» при продаже товаров с ФФД 1.2 в 1С:Розница?

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

При переходе на новый формат фискальных данных (ФФД) 1.2 и использовании контрольно-кассовой техники (ККТ) с ним многие пользователи 1С:Розница столкнулись с проблемой при продаже маркированных товаров. Если вы пытаетесь ввести код маркировки вручную, например, скопировав его из файла Excel или универсального передаточного документа (УПД), система может выдать ошибку: «В структуре кода маркировки отсутствует криптохвост». Эта проблема особенно актуальна для тех, кто ранее успешно работал на ФФД 1.05, где подобных ограничений не было. Давайте разберемся, почему возникает эта ошибка и как ее эффективно устранить.

Понимание проблемы: Почему возникает ошибка "отсутствует криптохвост"?

Первоначально давайте выясним, почему эта ошибка проявляется только при работе с ФФД 1.2 и не возникала на более старых версиях. Суть изменений кроется в усилении контроля за оборотом маркированных товаров.

С внедрением ФФД 1.2 законодательство Российской Федерации ужесточило требования к передаче информации о маркированных товарах через контрольно-кассовую технику. Теперь ККТ, работающая по ФФД 1.2, обязана передавать в систему маркировки «Честный ЗНАК» полный код маркировки, который включает в себя так называемый криптохвост. Криптохвост — это часть кода проверки, которая обеспечивает подлинность и уникальность каждого экземпляра товара. Для верификации данных в системе можно получить информацию по кодам марок из Честного знака, что помогает убедиться в корректности структуры КМ еще до момента продажи — есть обработка проверки структуры кодов маркировки в 1С.

Структура кода маркировки Data Matrix, используемого для большинства товарных групп, состоит из нескольких ключевых частей:

  1. Код идентификации (КИ): Это уникальный номер товара, который содержит глобальный номер товарной позиции (GTIN) и индивидуальный серийный номер. Как правило, он представлен первыми группами символов в стандарте GS1 Data Matrix (например, 01XXXXXXXXXXXXXX21YYYYYYYYYYYY).
  2. Код проверки (КП): Эта часть содержит ключ проверки и непосредственно криптохвост. Криптохвост генерируется оператором системы «Честный ЗНАК» и служит для подтверждения подлинности товара.

Когда мы пытаемся ввести код маркировки вручную, например, копируя его из Excel-таблицы или УПД, чаще всего мы получаем только код идентификации. Документы вроде УПД не предназначены для передачи полной криптографической части кода маркировки. Передавать КМ, включающие крипточасть, через бухгалтерские или товароучетные документы в таком виде даже запрещено, поскольку это снижает общую безопасность и контроль за оборотом маркированных товаров. Таким образом, при ручном вводе криптохвост просто отсутствует в передаваемой информации.

ККТ с ФФД 1.2 выполняет строгую проверку кода маркировки: она отправляет полученный код в систему «Честный ЗНАК» для валидации. Если криптохвост отсутствует или не соответствует ожидаемому, касса распознает это как ошибку и не позволит провести продажу такого товара. На ФФД 1.05 такого уровня проверки на уровне кассы не было, поэтому ручной ввод или копирование неполных кодов проходили без проблем.

Один из пользователей форума четко сформулировал это, отметив, что в ФФД 1.2 требуется передача всех четырех полей (имея в виду все части Data Matrix кода, включая криптохвост), тогда как при ручном копировании передавались только три.

Основное решение: Сканирование полного кода маркировки

Единственно верным и наиболее надежным способом избежать ошибки «В структуре кода маркировки отсутствует криптохвост» является использование 2D-сканера для считывания оригинального Data Matrix кода (поможет использование смартфона как 2D-сканера для маркировки) непосредственно с упаковки товара. Разберем этот процесс подробнее.

  1. Важность 2D-сканера:

    Современные 2D-сканеры (иногда их называют QR-сканерами, хотя Data Matrix — это более специфичный тип двухмерного штрихкода) способны считывать весь объем информации, закодированной в Data Matrix, включая как код идентификации, так и код проверки с криптохвостом. В отличие от ручного ввода, сканер гарантирует передачу полного и корректного кода.

  2. Настройка сканера:

    Для корректной работы сканер должен быть правильно подключен и настроен. Рекомендуется использовать сканер в режиме COM-порта или режиме «разрыв клавиатуры». Крайне важно, чтобы сканер был настроен на разбор GS1 Data Matrix. Чтобы обеспечить стабильность проверок, рекомендуется применять механизм проверки QR марок через площадки CDN, который позволяет быстро проводить валидацию в соответствии with требованиями разрешительного режима — для этого подойдёт решение для работы касс с маркировкой и ФФД 1.2.

  3. Процесс сканирования:

    При сканировании 2D-сканер считывает полный Data Matrix код с физической упаковки товара. Эта информация передается в товароучетную систему 1С:Розница, а затем — в ККТ. Касса, получив полный код с криптохвостом, успешно отправляет его на проверку в «Честный ЗНАК» и проводит продажу.

  4. Избегайте ручного копирования служебных символов:

    Когда вы копируете код маркировки вручную, вы можете случайно включить в него служебные символы, такие как (01)02900014367299(21)z3IzTeG1Qh!ay. Как отметил один из участников обсуждения, символы (01) и (21) являются служебными идентификаторами применения GS1 и не должны передаваться в таком виде как часть кода маркировки при его обработке в системе. Сканер автоматически обрабатывает эти идентификаторы, а при ручном вводе они могут восприниматься как часть самого кода, что также приведет к ошибке.

Таким образом, основное и наиболее простое решение — это установка и правильная настройка 2D-сканера на каждом рабочем месте, где осуществляется продажа маркированных товаров.

Действия при повреждении или отсутствии физического кода маркировки

Что же делать, если этикетка с Data Matrix кодом повреждена, затерта, не читается сканером или вовсе отсутствует (например, при утере наклеек, как это бывает с автошинами или другими крупными товарами)? В таких случаях прямая продажа товара становится невозможной, но существуют легальные пути решения проблемы:

  1. Перемаркировка товара:

    Если вы являетесь участником оборота товаров и собственником продукции, вы можете выполнить перемаркировку. Для тех, кто работает с товарными остатками, существует удобный способ ввода в оборот обуви и товаров легкой промышленности, который упрощает процесс приведения данных в порядок. После перемаркировки и ввода нового кода в оборот вы сможете легально продать товар.

  2. Программные инструменты и расширения:

    Если код маркировки физически поврежден, в некоторых случаях может помочь специальное расширение для продажи маркированного товара без марки в РМК, которое позволяет обработать исключительные ситуации в рамках 1С:Розница 2.3. Также полезно использовать запрос списка кодов маркировки по фильтрам для быстрого поиска нужных марок в системе и их последующего списания или сопоставления.

  3. Вывод товара из оборота:

    Если товар не подлежит дальнейшей реализации из-за повреждения маркировки и его перемаркировка нецелесообразна или невозможна, его необходимо вывести из оборота через систему «Честный ЗНАК». Это может быть актуально, например, для бракованных товаров, которые должны быть утилизированы.

Важный момент: Отключить контроль криптохвоста в ККТ на ФФД 1.2 законодательством не предусмотрено. Это ключевой механизм для борьбы с нелегальным оборотом товаров, и его обход будет нарушением правил.

Программное обнаружение и обработка ошибки в 1С

Хотя мы не можем отключить контроль криптохвоста, мы можем улучшить пользовательский опыт, настроив более информативную обработку этой ошибки в конфигурации 1С. Например, можно расширить стандартные процедуры обработки ошибок, чтобы при возникновении сообщения «отсутствует криптохвост» система выдавала конкретные инструкции или голосовые уведомления для продавца.

Рассмотрим пример кода, который демонстрирует, как можно отреагировать на данную ошибку в расширении конфигурации 1С:Розница. Этот фрагмент кода будет отслеживать текстовое содержание ошибки и, если оно содержит фразу «отсутствует криптохвост», выводить для пользователя более понятное сообщение и, возможно, голосовое оповещение.


&НаКлиенте
&После("ОткрытьСтраницуИнфоОшибка")
Процедура Расш1_ОткрытьСтраницуИнфоОшибка(ТекстЗаголовка, ТекстОшибки, ПараметрыОшибки)
    // Вставить содержимое метода.
    _ТекстОшибки = ОчисткаТекстаОшибки(ТекстОшибки); // Предполагается, что эта функция очищает текст от служебных символов.
    _ТекстОшибкиГолосом = "";

    Если _ТекстОшибки<>"" Тогда
        // ... (другие проверки ошибок) ...

        Если Найти(НРЕГ(_ТекстОшибки), "отсутствует криптохвост")>0 Тогда
            _ТекстОшибкиГолосом = "Ошибка сканирования, Удалите Товар и повторите сканирование";
            Элементы.ТекстПредупреждениеЗаголовок.Заголовок = "***";
            Элементы.ТекстПредупреждениеОшибка.Заголовок = _ТекстОшибки;
            _ОжиданиеИнфОшибка = Истина; // Возможно, остановить дальнейшую обработку до подтверждения пользователя.
        КонецЕсли;

        // ... (дальнейшая обработка и голосовое оповещение) ...
        Если _ТекстОшибкиГолосом="" Тогда
            Расш1_ОбщийМодуль2.ГолосТекстНовый(_НомерГолоса, _ГромкостьГолосаОшибки, 3, -1, _ТекстОшибки);
        Иначе
            Расш1_ОбщийМодуль2.ГолосТекстНовый(_НомерГолоса, _ГромкостьГолосаОшибки, 3, -1, _ТекстОшибкиГолосом);
            _ТекстОшибкиГолосом = "";
        КонецЕсли;
        // ...
    КонецЕсли;
КонецПроцедуры

В этом примере, если в переменной _ТекстОшибки обнаруживается фраза «отсутствует криптохвост», то для пользователя формируется более конкретное сообщение: «Ошибка сканирования, Удалите Товар и повторите сканирование». Это помогает продавцу быстро понять причину и принять правильные действия.

Важно понимать, что этот код не решает проблему отсутствия криптохвоста как такового. Он лишь улучшает обработку ошибки, делая ее более понятной для конечного пользователя. Фактическое решение проблемы по-прежнему заключается в правильном сканировании товара или его перемаркировке.

Для производителей товаров, например, питьевой воды, столкнувшихся с этой проблемой уже после нанесения QR-кодов на продукцию, продажа таких товаров будет фактически невозможна без надлежащего ввода в оборот с полными кодами. В этом случае необходимо будет либо перемаркировать продукцию, либо связаться с оператором системы «Честный ЗНАК» для выяснения причин и поиска возможных путей исправления ситуации, если коды были введены в оборот некорректно.

В заключение, переход на ФФД 1.2 требует от торговых предприятий более строгого соблюдения правил работы с маркированными товарами. Основным инструментом для обеспечения корректности данных является 2D-сканер, а в случае проблем с физическим кодом — процедуры перемаркировки или получения информации через систему «Честный ЗНАК».

← На главную