Мы с вами столкнулись с распространенной проблемой: при продаже маркированных товаров фискальный документ успешно передается в Оператор Фискальных Данных (ОФД), и там мы видим информацию о коде маркировки, но в государственной информационной системе мониторинга товаров "Честный ЗНАК" эти сведения по каким-то причинам не появляются. Это может привести к серьезным последствиям, включая штрафы и блокировку продаж.
Давайте вместе разберемся, почему так происходит, и какие шаги необходимо предпринять для устранения этой неполадки. Мы рассмотрим все аспекты: от требований к формату фискальных данных (ФФД) до особенностей передачи кодов маркировки и настроек оборудования.
Первоочередная задача — выяснить, почему ОФД видит маркировку, а "Честный ЗНАК" — нет. Чаще всего причина кроется в некорректной передаче кода маркировки от вашей учетной системы через кассовый аппарат (ККТ) в фискальный накопитель (ФН). Даже если ОФД отображает некий код, это не всегда означает, что он передан в правильном формате, который ожидает "Честный ЗНАК" через ОФД.
Как мы выясним далее, многие пользователи совершают ошибку, применяя устаревшие методы кодирования кодов маркировки, которые были актуальны для более ранних версий ФФД, например, ФФД 1.05. При переходе на ФФД 1.2 требования к передаче кодов существенно изменились.
Для корректной работы с маркированными товарами и их учета в системе "Честный ЗНАК" крайне важно использовать Формат Фискальных Данных (ФФД) версии 1.2. Это ключевое отличие от предыдущих версий. В ФФД 1.2 касса не просто печатает чек, но и формирует дополнительные документы, которые отправляются напрямую в "Честный ЗНАК": запрос о коде маркировки (до продажи) и уведомление о реализации (после продажи).
Главное и наиболее критичное изменение в ФФД 1.2: код маркировки должен передаваться "как есть", целиком, без каких-либо изменений и кодирования. Это означает, что:
base64.GS1.Если ваша система все еще выполняет такие преобразования, то это, вероятнее всего, и является причиной проблемы.
Для маркированных товаров в ФФД 1.2 используется тег 1163 ("Код товара"). Этот тег содержит в себе дополнительные реквизиты, которые уточняют тип передаваемого кода:
Если в ОФД ваш код маркировки отображается как GS1.0, хотя вы продаете маркированный товар, это явный признак того, что внутреннее программное обеспечение вашей ККТ или фискальный накопитель не смогли правильно распознать переданный код маркировки как маркированный. Это может произойти из-за неправильного формата, отсутствия необходимых разделителей или некорректной последовательности передачи данных.
Код маркировки GS1 DataMatrix содержит специальные непечатаемые (скрытые) символы-разделители "Group Separator" (GS), которые имеют в таблице символов ASCII код 29. Эти разделители критически важны для корректной идентификации отдельных блоков данных внутри кода маркировки. Если символ GS отсутствует или передается некорректно (например, заменяется сканером на другой символ, как F8), это приведет к ошибкам в распознавании кода маркировки кассой и, как следствие, "Честным ЗНАКом".
Важно убедиться, что ваша учетная система (например, 1С) и сканер штрихкодов правильно обрабатывают и передают этот символ. В 1С символ GS можно получить с помощью функции Симв(29).
Давайте разберем конкретные шаги, которые помогут нам решить проблему с неотправленной маркировкой.
Первым делом мы должны убедиться, что все компоненты нашей системы готовы к работе с ФФД 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();
КонецЕсли;
КонецЕсли;
// ... (Дальше уже все остальное: передача цены, количества, скидок и закрытие чека) ...
Обратите внимание на ключевые моменты в этом коде:
ФискальныйРегистратор.FNOperation(): Этот метод необходимо вызвать перед передачей кода маркировки для каждой позиции. Он сигнализирует фискальному накопителю о том, что следующая операция будет связана с маркированным товаром.GS (Симв(29)): Если ваша учетная система не умеет корректно хранить непечатаемый символ GS (ASCII 29) напрямую в строковых полях и вы используете его текстовую замену (например, (GS1)), то перед передачей в ККТ его обязательно нужно восстановить. В 1С это делается с помощью функции Симв(29). Если вы храните код маркировки "как есть", этот шаг не требуется.ФискальныйРегистратор.BarCode = КТН; и ФискальныйРегистратор.FNSendItemBarcode();: Именно через эти команды происходит передача полного, немодифицированного кода маркировки в ККТ для ФФД 1.2.Убедитесь, что в настройках вашей ККТ правильно указаны:
Мы уже упоминали важность символа GS. Убедитесь, что ваш сканер штрихкодов настроен на корректную передачу символа GS (ASCII 29). Некоторые сканеры по умолчанию могут заменять его на другие символы (например, F8) в режиме эмуляции клавиатуры. В этом случае требуется перенастройка сканера согласно его инструкции.
После выполнения всех вышеперечисленных шагов, важно наладить систему контроля, чтобы убедиться в корректной работе и избежать повторения проблемы:
Следуя этим рекомендациям и тщательно проверяя каждый этап, мы с вами сможем наладить бесперебойную передачу кодов маркировки из ОФД в систему "Честный ЗНАК", обеспечив соответствие требованиям законодательства и избежав возможных проблем.
← К списку