Как исправить ошибку «Не удалось найти полный код маркировки» при пробитии чека в 1С

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

При работе с маркированной продукцией (табак, обувь, одежда) в современных версиях 1С (УТ 11, КА 2, ERP) пользователи часто сталкиваются с критической ошибкой: «Не удалось найти полный код маркировки». Эта проблема блокирует печать чека на ККТ, даже если товар успешно отсканирован в документе реализации. Рассмотрим детально, почему это происходит и как исправить ситуацию различными методами.

Разберем причины возникновения ошибки

С переходом на формат фискальных данных ФФД 1.2 требования к передаче данных на кассу ужесточились — для этого подойдёт универсальное решение для онлайн-касс и ФФД 1.2. Теперь система обязана передавать не просто серийный номер и GTIN, а полный код маркировки, включающий так называемый «криптохвост» (код проверки). Проанализируем основные сценарии, при которых 1С теряет эти данные:

  1. Отсутствие данных в регистре «Пул кодов маркировки СУЗ»: Это основная техническая причина. Когда касса пытается сформировать чек, 1С ищет полный код маркировки в специальном системном регистре. Чтобы исключить человеческий фактор, предварительно стоит выполнить контроль заполнения полей маркированного товара, так как отсутствие базовых реквизитов часто ведет к сбоям в регистрах. Если товар был принят через ЭДО без фактического сканирования в базу или если коды были получены давно, запись в пуле может отсутствовать.
  2. Некорректная настройка сканера: Если сканер работает в режиме эмуляции клавиатуры, он может «обрезать» спецсимволы (например, GS-разделитель), из-за чего 1С воспринимает считанный код как неполный и не может сопоставить его с записями в базе.
  3. Разукомплектация и агрегация: Часто проблема возникает с табачной продукцией. Если в базе зафиксирован код блока (агрегата), но нет полных кодов вложенных пачек, при продаже отдельной пачки система не найдет её криптохвост.
  4. Особенности «Альтернативной табачной продукции» (АТП): Для кальянов и сигар форматы кодов могут отличаться, и старые релизы 1С не всегда корректно обрабатывают такие шаблоны.

Шаг 1: Настройка торгового оборудования

Первым делом проверим работу сканера штрихкодов. Рассмотрим типичную ситуацию: сканер считывает марку, но 1С выдает ошибку отсутствия кода. Выясним, правильно ли настроено устройство. Для корректной передачи полного кода маркировки (с криптохвостом) сканер обязательно должен быть настроен в режиме эмуляции COM-порта (Native Mode).

В режиме клавиатуры сканер часто игнорирует непечатные символы, что приводит к искажению данных. Перенастройте сканер с помощью управляющих штрихкодов и убедитесь, что в 1С выбран правильный драйвер. В случаях, когда проблема приобретает массовый характер на уровне всей организации, может потребоваться массовое исправление настроек для ККТ, чтобы синхронизировать параметры работы оборудования на всех рабочих местах.

Шаг 2: Программное восстановление регистра «Пул кодов маркировки СУЗ»

Если оборудование настроено верно, но ошибка сохраняется, значит, данных физически нет в информационной базе. Проанализируем ситуацию: марка есть в справочнике ШтрихкодыУпаковокТоваров, но в связанном регистре сведений ПулКодовМаркировкиСУЗ пусто. Иногда восстановить эти сведения помогает специальный отчет, позволяющий получить коды маркировки заказа на эмиссию с криптохвостом.

Рассмотрим пример кода, который позволяет принудительно создать запись в пуле для «Альтернативного табака». Этот алгоритм можно адаптировать под другие виды продукции, изменив значения перечислений.


// Пример заполнения регистра для альтернативной табачной продукции
// gtin - GTIN товара, serial - серийный номер из марки
// марка - полное значение штрихкода

МР = РегистрыСведений.ПулКодовМаркировкиСУЗ.СоздатьМенеджерЗаписи();

// Преобразуем данные в Base64 (необходимо для хранения полного кода)
ДвоичныеДанные = ПолучитьДвоичныеДанныеИзСтроки(Строка(gtin) + Строка(serial));
МР.ПолныйКодМаркировки = ИнтеграцияИСКлиентСервер.ДвоичныеДанныеBase64(ДвоичныеДанные);

МР.ЗаказНаЭмиссию = Документы.ЗаказНаЭмиссиюКодовМаркировкиСУЗ.ПустаяСсылка;
МР.ДокументОснование = Неопределено;
МР.КодМаркировки = Марка;
МР.ШтрихкодУпаковки = Справочники.ШтрихкодыУпаковокТоваров.НайтиПоРеквизиту("ЗначениеШтрихкода", Марка);
МР.ХешСуммаКодаМаркировки = ИнтеграцияИС.ХешированиеДанныхSHA256(МР.КодМаркировки);
МР.Номенклатура = НоменклатураСсылка;
МР.Организация = ОрганизацияСсылка;
МР.ДатаПечатиУниверсальная = ТекущаяДата();
МР.Шаблон = Перечисления.ШаблоныКодовМаркировкиСУЗ.АльтернативныйТабакПачка;
МР.ВидПродукции = Перечисления.ВидыПродукцииИС.АльтернативныйТабак;
МР.GTIN = gtin;
МР.СпособВводаВОборот = Перечисления.СпособыВводаВОборотСУЗ.Импорт;
МР.ТипШтрихкода = Перечисления.ТипыШтрихкодов.DataMatrix;
МР.МаркировкаОстатков = Ложь;

МР.Записать(Истина);

Важный момент: при записи в МР.ПолныйКодМаркировки система ожидает данные в формате Base64. Если вы просто запишете туда строку, касса может некорректно считать криптохвост.

Шаг 3: Обновление конфигурации и драйверов

Выясним, является ли проблема следствием ошибок в коде самой программы. В ранних версиях УТ 11.4 и первых релизах УТ 11.5 механизмы работы с ФФД 1.2 содержали ошибки. Рассмотрим опыт пользователей: переход на актуальные релизы часто решает проблему автоматически. Если же ошибка привела к тому, что чек был пробит некорректно или вовсе не попал в базу, вам может потребоваться изменение фискальных операций с дозагрузкой признаков, чтобы привести учет в соответствие с данными ККТ.

Также не забудьте обновить драйвер ККТ. Старые версии драйверов могут не поддерживать передачу тегов маркировки в формате ФФД 1.2, что провоцирует ошибку «не удалось найти код», хотя в 1С данные присутствуют.

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

Если ошибка возникает эпизодически на конкретных производителях, проанализируем настройки интеграции с ИС МП (Честный ЗНАК). Попробуйте следующее:

Таким образом, мы выяснили, что проблема носит комплексный характер: от настроек «железа» до корректности заполнения системных регистров 1С. Последовательная проверка сканера, обновление конфигурации и программная корректировка регистра ПулКодовМаркировкиСУЗ позволяют полностью устранить ошибку и восстановить продажи.

← На главную