Почему коды маркировки отображаются в ОФД, но не доходят до системы "Честный ЗНАК"? Разбираем проблему и находим решение

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

Мы с вами столкнулись с распространенной проблемой: при продаже маркированных товаров фискальный документ успешно передается в Оператор Фискальных Данных (ОФД), и там мы видим информацию о коде маркировки, но в государственной информационной системе мониторинга товаров "Честный ЗНАК" эти сведения по каким-то причинам не появляются. Это может привести к серьезным последствиям, включая штрафы и блокировку продаж.

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

Выясняем причину: В чем корень проблемы?

Первоочередная задача — выяснить, почему ОФД видит маркировку, а "Честный ЗНАК" — нет. Чаще всего причина кроется в некорректной передаче кода маркировки от вашей учетной системы через кассовый аппарат (ККТ) в фискальный накопитель (ФН). Даже если ОФД отображает некий код, это не всегда означает, что он передан в правильном формате, который ожидает "Честный ЗНАК" через ОФД.

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

Детально разбираем требования ФФД 1.2 к кодам маркировки

Для корректной работы с маркированными товарами и их учета в системе "Честный ЗНАК" крайне важно использовать Формат Фискальных Данных (ФФД) версии 1.2. Это ключевое отличие от предыдущих версий. В ФФД 1.2 касса не просто печатает чек, но и формирует дополнительные документы, которые отправляются напрямую в "Честный ЗНАК": запрос о коде маркировки (до продажи) и уведомление о реализации (после продажи).

Правильный формат передачи кода

Главное и наиболее критичное изменение в ФФД 1.2: код маркировки должен передаваться "как есть", целиком, без каких-либо изменений и кодирования. Это означает, что:

  1. Мы не переводим первые 31 символ маркировки в двоичные данные.
  2. Мы не кодируем их в base64.
  3. Мы передаем весь код маркировки со всеми его разделителями GS1.

Если ваша система все еще выполняет такие преобразования, то это, вероятнее всего, и является причиной проблемы.

Использование тегов 1163, 1304 и 1305

Для маркированных товаров в ФФД 1.2 используется тег 1163 ("Код товара"). Этот тег содержит в себе дополнительные реквизиты, которые уточняют тип передаваемого кода:

Если в ОФД ваш код маркировки отображается как GS1.0, хотя вы продаете маркированный товар, это явный признак того, что внутреннее программное обеспечение вашей ККТ или фискальный накопитель не смогли правильно распознать переданный код маркировки как маркированный. Это может произойти из-за неправильного формата, отсутствия необходимых разделителей или некорректной последовательности передачи данных.

Символ-разделитель GS (ASCII 29)

Код маркировки GS1 DataMatrix содержит специальные непечатаемые (скрытые) символы-разделители "Group Separator" (GS), которые имеют в таблице символов ASCII код 29. Эти разделители критически важны для корректной идентификации отдельных блоков данных внутри кода маркировки. Если символ GS отсутствует или передается некорректно (например, заменяется сканером на другой символ, как F8), это приведет к ошибкам в распознавании кода маркировки кассой и, как следствие, "Честным ЗНАКом".

Важно убедиться, что ваша учетная система (например, 1С) и сканер штрихкодов правильно обрабатывают и передают этот символ. В 1С символ GS можно получить с помощью функции Симв(29).

Пошаговое решение проблемы: Настройка передачи кода маркировки

Давайте разберем конкретные шаги, которые помогут нам решить проблему с неотправленной маркировкой.

1. Актуализация программного обеспечения и прошивки

Первым делом мы должны убедиться, что все компоненты нашей системы готовы к работе с ФФД 1.2:

  1. Обновите конфигурацию 1С: Если вы используете, например, УТ 10.3, убедитесь, что она обновлена до версии, поддерживающей ФФД 1.2. Типовые обработки обслуживания ККТ также должны быть актуальными.
  2. Обновите драйвер ККТ: Драйвер кассового аппарата должен быть последней версии, совместимой с ФФД 1.2. Например, для АТОЛ требуется драйвер не ниже 5.20, для Штрих-М также есть свои актуальные версии.
  3. Обновите прошивку ККТ: Прошивка самого кассового аппарата должна поддерживать ФФД 1.2. Обратитесь к производителю вашей ККТ или в сервисный центр для обновления.
  4. Проверьте фискальный накопитель: Для работы с ФФД 1.2 необходим фискальный накопитель нового образца (ФН-М или ФН 1.1М). Убедитесь, что у вас установлен именно такой ФН.

Важно: Устаревшие компоненты — очень частая причина проблем с маркировкой.

2. Правильная передача кода маркировки в ККТ

Теперь мы переходим к самому важному — корректной передаче кода маркировки из вашей учетной системы в ККТ. Мы должны убедиться, что код передается целиком, "как есть", без кодирования.

Рассмотрим пример кода, который демонстрирует правильный подход (адаптировано из примеров для 1С 7.7, но принципы применимы и к 1С 8.х при работе с драйвером):


// ... (Код открытия смены, чека, передачи обычных позиций) ...

// Обязательно!!! ДО передачи марки начинаем FNOperation
// Этот метод информирует фискальный накопитель о начале операции с маркированным товаром.
Рез = ФискальныйРегистратор.FNOperation(); 

// Проверяем, есть ли код маркировки для текущей позиции
Если ПустоеЗначение(ОбрДок.КТН) = 0 Тогда
    // Восстанавливаем символ GS (ASCII 29), если он был заменен при хранении.
    // В некоторых учетных системах или при ручном вводе символ GS может быть заменен
    // на текстовую строку, например "(GS1)", чтобы избежать проблем с хранением
    // непечатаемых символов в строковых полях.
    // Если вы храните код маркировки "как есть" с символом Симв(29), этот шаг не нужен.
    КТН = СтрЗаменить(СокрЛП(ОбрДок.КТН), "(GS1)", Симв(29)); 

    // Проверяем версию ФФД, установленную для кассы
    Если ОбрДок.Касса.ФФД_ККТ = Перечисление.ФФД_ККТ.ФФД1_2 Тогда
        // Для ФФД 1.2 передаем код маркировки целиком, "как есть", без кодирования.
        // Используем свойство BarCode объекта ФискальныйРегистратор.
        ФискальныйРегистратор.BarCode = КТН;
        // Отправляем код маркировки в фискальный накопитель.
        Рез = ФискальныйРегистратор.FNSendItemBarcode(); 
    КонецЕсли;
КонецЕсли;

// ... (Дальше уже все остальное: передача цены, количества, скидок и закрытие чека) ...

Обратите внимание на ключевые моменты в этом коде:

3. Проверка настроек ККТ и ОФД

Убедитесь, что в настройках вашей ККТ правильно указаны:

4. Настройка сканера штрихкодов

Мы уже упоминали важность символа GS. Убедитесь, что ваш сканер штрихкодов настроен на корректную передачу символа GS (ASCII 29). Некоторые сканеры по умолчанию могут заменять его на другие символы (например, F8) в режиме эмуляции клавиатуры. В этом случае требуется перенастройка сканера согласно его инструкции.

Дополнительные моменты и контроль

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

  1. Контроль статусов маркировки в ОФД и ЦРПТ: Регулярно проверяйте личный кабинет вашего ОФД. Многие ОФД предоставляют специальные сервисы для отслеживания ошибок в чеках с маркировкой и статусов передачи данных в ЦРПТ. Также полезно проверять статус вывода из оборота в личном кабинете "Честного ЗНАКа".
  2. Предварительная проверка марки: В идеале, проверка марки по регистратору выбытия (РР) и ОИСМ должна происходить еще на этапе добавления товарной позиции в чек. Касса (или учетная система) должна хранить результаты этой проверки. Если проверка не прошла, но покупатель все равно согласен приобрести товар, это должно быть зафиксировано, иначе возможны ошибки при закрытии чека.
  3. Административная ответственность: Напоминаем, что за нарушение порядка, сроков или публикацию недостоверных сведений в системе "Честный ЗНАК" предусмотрена административная ответственность, включая значительные штрафы. Поэтому крайне важно обеспечить корректную работу со всеми маркированными товарами.

Следуя этим рекомендациям и тщательно проверяя каждый этап, мы с вами сможем наладить бесперебойную передачу кодов маркировки из ОФД в систему "Честный ЗНАК", обеспечив соответствие требованиям законодательства и избежав возможных проблем.

← К списку