Работа с маркированным товаром, особенно с табачной продукцией, требует ювелирной настройки взаимодействия между сканером, программой 1С и кассовым аппаратом (ККТ). Часто возникает ситуация, когда код DataMatrix успешно считывается в рабочее место кассира (РМК), позиция добавляется в список, но при попытке закрыть чек и принять оплату программа выдает критическую ошибку: «Ошибки маркировки Строка №1: код маркировки». В этой статье мы подробно разберем причины этой проблемы и способы ее устранения на примере 1С:Розница.
Одной из самых распространенных и неочевидных причин возникновения ошибок маркировки в ранних релизах 1С:Розница (версии 2.3.4 и смежных) является включенная опция объединения одинаковых товаров в одну строку. Проанализируем, почему это происходит: когда вы продаете несколько пачек сигарет одного наименования, программа пытается сгруппировать их. Однако для маркированного товара каждая единица обладает уникальным кодом. При включенном объединении механизм передачи данных в фискальный накопитель может давать сбой.
Рассмотрим порядок действий для исправления ситуации:
После отключения этой опции каждая пачка будет отображаться в чеке отдельной строкой со своим уникальным кодом маркировки, что позволит программе корректно сформировать структуру XML-пакета для кассового аппарата.
Выясним техническую причину, по которой 1С может «видеть» код, но считать его некорректным. Код маркировки табака содержит невидимый управляющий символ GS (ASCII 29). Если сканер штрихкодов настроен в режиме эмуляции клавиатуры, он может игнорировать этот символ или заменять его на пробел/другой знак. В результате 1С получает строку, которая не проходит внутреннюю валидацию по регулярному выражению.
Для решения этой проблемы выполним следующие шаги:
1С:Розница (Подключаемое оборудование). Убедимся, что тест устройства показывает наличие символов-разделителей.#29 или использовать специализированные драйверы, умеющие интерпретировать GS1-данные.Проанализируем ситуацию, когда ошибка возникает при продаже блоков. В системе «Честный ЗНАК» предусмотрена иерархия: код блока содержит информацию о кодах вложенных пачек. Рассмотрим важные правила работы с такими кодами:
Во-первых, если вы сканируете код блока, 1С должна уметь распознать его как упаковку. Для этого в карточке номенклатуры должна быть настроена соответствующая единица измерения (упаковка) с указанием коэффициента (например, 10 для стандартного блока).
Во-вторых, если ваша программа настроена на прямую работу с ИС МП (Информационной системой маркировки), при сканировании блока система автоматически «выводит из оборота» все вложенные пачки. Попытка продать пачку из этого же блока отдельно после его продажи приведет к ошибке, так как код пачки уже будет числиться выбывшим в составе блока.
Посмотрим на пример логики проверки цены, которая также может блокировать оплату:
// Пример логики проверки МРЦ (Максимальной розничной цены) в коде DataMatrix
Если ПолученнаяЦенаИзМарки <> ЦенаВЧеке Тогда
Предупреждение("Цена продажи отличается от МРЦ, зашитой в коде маркировки!");
Отказ = Истина;
КонецЕсли;
Убедимся, что цена в чеке соответствует МРЦ, так как несоответствие цен также может вызывать общую ошибку маркировки при попытке пробития чека.
Разберем специфическую проблему, упомянутую пользователями: ошибка «Справочник.МаршрутыПодписания.ОднойДоступнойПодписью. Предопределенный элемент отсутствует в данных». Эта проблема часто возникает в магазинах, работающих через РИБ, при включении функционала маркировки и ЭДО.
Причина заключается в том, что при обновлении конфигурации или включении новых опций учета в центральной базе, предопределенные элементы (которые критически важны для работы механизмов подписания документов маркировки) могут не мигрировать в периферийную базу автоматически.
Для исправления выполним алгоритм:
ЗаполнениеПредопределенныхДанных.МаршрутыПодписания. Если он пуст, необходимо инициировать полную синхронизацию данных для передачи системных настроек.Если все настройки в 1С выполнены верно, но ошибка сохраняется, проанализируем состояние кассового оборудования. На сегодняшний день торговля табаком требует поддержки ФФД 1.2.
Необходимо убедиться в следующем:
ЗапросОКодеМаркировки).Помните, что с введением ФФД 1.2 касса обязана получить от сервера «Честного ЗНАКа» подтверждение корректности кода до того, как чек будет финализирован. Если связь с сервером нестабильна или код имеет статус «Не нанесен» или «Выведен из оборота», оплата будет заблокирована на уровне драйвера ККТ с выдачей ошибки в интерфейс 1С.