При работе с маркированной продукцией (табак, обувь, одежда) в современных версиях 1С (УТ 11, КА 2, ERP) пользователи часто сталкиваются с критической ошибкой: «Не удалось найти полный код маркировки». Эта проблема блокирует печать чека на ККТ, даже если товар успешно отсканирован в документе реализации. Рассмотрим детально, почему это происходит и как исправить ситуацию различными методами.
С переходом на формат фискальных данных ФФД 1.2 требования к передаче данных на кассу ужесточились — для этого подойдёт универсальное решение для онлайн-касс и ФФД 1.2. Теперь система обязана передавать не просто серийный номер и GTIN, а полный код маркировки, включающий так называемый «криптохвост» (код проверки). Проанализируем основные сценарии, при которых 1С теряет эти данные:
Первым делом проверим работу сканера штрихкодов. Рассмотрим типичную ситуацию: сканер считывает марку, но 1С выдает ошибку отсутствия кода. Выясним, правильно ли настроено устройство. Для корректной передачи полного кода маркировки (с криптохвостом) сканер обязательно должен быть настроен в режиме эмуляции COM-порта (Native Mode).
В режиме клавиатуры сканер часто игнорирует непечатные символы, что приводит к искажению данных. Перенастройте сканер с помощью управляющих штрихкодов и убедитесь, что в 1С выбран правильный драйвер. В случаях, когда проблема приобретает массовый характер на уровне всей организации, может потребоваться массовое исправление настроек для ККТ, чтобы синхронизировать параметры работы оборудования на всех рабочих местах.
Если оборудование настроено верно, но ошибка сохраняется, значит, данных физически нет в информационной базе. Проанализируем ситуацию: марка есть в справочнике ШтрихкодыУпаковокТоваров, но в связанном регистре сведений ПулКодовМаркировкиСУЗ пусто. Иногда восстановить эти сведения помогает специальный отчет, позволяющий получить коды маркировки заказа на эмиссию с криптохвостом.
Рассмотрим пример кода, который позволяет принудительно создать запись в пуле для «Альтернативного табака». Этот алгоритм можно адаптировать под другие виды продукции, изменив значения перечислений.
// Пример заполнения регистра для альтернативной табачной продукции
// gtin - GTIN товара, serial - серийный номер из марки
// марка - полное значение штрихкода
МР = РегистрыСведений.ПулКодовМаркировкиСУЗ.СоздатьМенеджерЗаписи();
// Преобразуем данные в Base64 (необходимо для хранения полного кода)
ДвоичныеДанные = ПолучитьДвоичныеДанныеИзСтроки(Строка(gtin) + Строка(serial));
МР.ПолныйКодМаркировки = ИнтеграцияИСКлиентСервер.ДвоичныеДанныеBase64(ДвоичныеДанные);
МР.ЗаказНаЭмиссию = Документы.ЗаказНаЭмиссиюКодовМаркировкиСУЗ.ПустаяСсылка;
МР.ДокументОснование = Неопределено;
МР.КодМаркировки = Марка;
МР.ШтрихкодУпаковки = Справочники.ШтрихкодыУпаковокТоваров.НайтиПоРеквизиту("ЗначениеШтрихкода", Марка);
МР.ХешСуммаКодаМаркировки = ИнтеграцияИС.ХешированиеДанныхSHA256(МР.КодМаркировки);
МР.Номенклатура = НоменклатураСсылка;
МР.Организация = ОрганизацияСсылка;
МР.ДатаПечатиУниверсальная = ТекущаяДата();
МР.Шаблон = Перечисления.ШаблоныКодовМаркировкиСУЗ.АльтернативныйТабакПачка;
МР.ВидПродукции = Перечисления.ВидыПродукцииИС.АльтернативныйТабак;
МР.GTIN = gtin;
МР.СпособВводаВОборот = Перечисления.СпособыВводаВОборотСУЗ.Импорт;
МР.ТипШтрихкода = Перечисления.ТипыШтрихкодов.DataMatrix;
МР.МаркировкаОстатков = Ложь;
МР.Записать(Истина);
Важный момент: при записи в МР.ПолныйКодМаркировки система ожидает данные в формате Base64. Если вы просто запишете туда строку, касса может некорректно считать криптохвост.
Выясним, является ли проблема следствием ошибок в коде самой программы. В ранних версиях УТ 11.4 и первых релизах УТ 11.5 механизмы работы с ФФД 1.2 содержали ошибки. Рассмотрим опыт пользователей: переход на актуальные релизы часто решает проблему автоматически. Если же ошибка привела к тому, что чек был пробит некорректно или вовсе не попал в базу, вам может потребоваться изменение фискальных операций с дозагрузкой признаков, чтобы привести учет в соответствие с данными ККТ.
Также не забудьте обновить драйвер ККТ. Старые версии драйверов могут не поддерживать передачу тегов маркировки в формате ФФД 1.2, что провоцирует ошибку «не удалось найти код», хотя в 1С данные присутствуют.
Если ошибка возникает эпизодически на конкретных производителях, проанализируем настройки интеграции с ИС МП (Честный ЗНАК). Попробуйте следующее:
НСИ и адмистрация -> Интеграция с ИС МП опцию «Проверять коды маркировки перед продажей».Таким образом, мы выяснили, что проблема носит комплексный характер: от настроек «железа» до корректности заполнения системных регистров 1С. Последовательная проверка сканера, обновление конфигурации и программная корректировка регистра ПулКодовМаркировкиСУЗ позволяют полностью устранить ошибку и восстановить продажи.