Как исправить ошибку «Отсутствует полный код маркировки» при продаже табачных изделий в 1С:Розница 2.3?

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

При работе с маркированным товарами, особенно с табачной продукцией, пользователи часто сталкиваются с ситуацией, когда предварительная проверка марки в интерфейсе 1С проходит успешно (горят зеленые индикаторы), но в момент пробития чека кассовый аппарат выдает ошибку «Отсутствует полный код маркировки». Эта проблема стала массовой после перехода на формат фискальных данных ФФД 1.2 и введения разрешительного режима (решается через настройка онлайн-касс под разрешительный режим), который предусматривает проверку QR марок Честного знака. Рассмотрим детально, почему это происходит и как настроить систему для корректной работы.

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

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

  1. Различия в структуре кода: Табачная марка имеет свою специфику в структуре GS1. Если сканер настроен некорректно, он может отсекать часть данных, которые необходимы ККТ для формирования фискального признака в ФФД 1.2.
  2. Версия конфигурации: В старых релизах (например, 2.3.10.61) еще не были реализованы механизмы обязательного онлайн-контроля (разрешительного режима), который вступил в силу для табака с апреля 2024 года.
  3. Криптохвост (теги 91 и 92): Для успешной финализации чека в кассу должен передаваться полный код маркировки. Если 1С передает только GTIN и серийный номер, драйвер ККТ АТОЛ (или другого производителя) заблокирует операцию.
  4. Сопоставление номенклатуры: Если система не понимает, что данный GTIN относится именно к табачной продукции, она применяет неверные алгоритмы обработки кода. Аналогичные проблемы могут возникать и при выгрузке никотиносодержащей продукции из 1С:Розница 2.3 во Frontol 6, требуя корректной настройки. Для сопоставления марок табачной продукции с позицией номенклатуры существуют специализированные обработки.

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

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

Параллельно с обновлением программы необходимо обновить драйвер ККТ. Для касс АТОЛ рекомендуемая версия драйвера — 10.10.0.0 и выше — для этого подойдёт обслуживание ККТ АТОЛ и ШТРИХ-М для маркировки. Проверим также прошивку самой кассы: для ФФД 1.2 на платформе 5.0 версия прошивки должна поддерживать последние изменения законодательства по маркировке.

Шаг 2. Настройка регистра «Описание GTIN ИС»

Одной из скрытых причин ошибки является отсутствие связи между штрихкодом (GTIN) и категорией маркируемой продукции в системных регистрах. Рассмотрим, как это исправить. Нам необходимо убедиться, что для каждого GTIN сигарет в базе создана запись, определяющая его как табачную продукцию, что важно для сопоставления марок табачной продукции с позицией номенклатуры. Для получения карточек товаров по GTIN и информации по кодам марок из Честного знака можно использовать специализированные обработки.

Перейдем в функции для технического специалиста и найдем регистр сведений ОписаниеGTINИС (в некоторых редакциях он может называться «Параметры штрихкодов упаковок»). Выполним следующие действия:

Это позволит 1С правильно сформировать структуру данных для передачи в драйвер ККТ, включая корректное заполнение тега 2108 (мера количества предмета расчета).

Шаг 3. Проверка полноты кода маркировки и работа со справочником

Посмотрим на пример из практики: иногда в справочнике Штрихкоды упаковок и товаров сохраняются усеченные коды. Если в базе записан только короткий код вида (01)GTIN(21)Serial, то при пробитии чека касса не получит криптохвост и выдаст ошибку отсутствия полного кода.

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

(01)04680161068208(21)5n-C-XXh_OpDg91EE0992OxM1ukgrv0FvRMALP8geBSYtn3OST39FpRshcUlG++I=

Если в вашей базе хранятся только первые 21-31 символ, это и есть причина проблемы. Выясним, почему код сохраняется не полностью. Чаще всего это связано с настройками сканера штрихкода.

Шаг 4. Настройка сканера (символ GS1 / FNC1)

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

Проанализируем ситуацию в «Тесте драйвера ККТ» или в блокноте: если при сканировании марки вы видите только часть символов или отсутствие спецсимволов в начале блоков (91, 92), сканер настроен неверно. Настройте сканер так, чтобы он передавал полный префикс и все скрытые символы. Примеры реализации работы сканера штрихкода через БПО могут помочь в этом, обеспечивая корректную передачу данных. Это критично для табака, так как ККТ при ФФД 1.2 выполняет жесткую валидацию структуры DataMatrix.

Шаг 5. Проверка настроек интеграции с ИС МП

В настройках интеграции с маркировкой (раздел Администрирование — Настройки ИС МП) найдем пункт «Проверять коды маркировки средствами ККТ». Посмотрим, как ведет себя система при разных положениях этого флага:

Пример программной проверки передачи данных

Если вы обладаете навыками программирования, проанализируем, какой XML-пакет формирует 1С для драйвера ККТ. В модулях интеграции с оборудованием можно найти место формирования структуры GoodCodeData. Посмотрим на упрощенный пример того, как должны передаваться данные:


// Пример структуры для передачи в драйвер ККТ (упрощенно)
ДанныеКода = Новый Структура;
ДанныеКода.Вставить("MarkingCode", ПолныйКодИзСканера); // Здесь должен быть весь код с хвостом
ДанныеКода.Вставить("RealizationAttribute", 1); // Признак реализации
// Если в MarkingCode попадает обрезанная строка, ККТ выдаст "Отсутствует полный код"
Результат = ОбъектДрайвера.СформироватьЧек(ПараметрыЧека, ДанныеКода);

Убедитесь через отладку, что переменная, содержащая код маркировки, на этапе передачи в драйвер содержит все символы, включая криптографическую часть после тегов 91 и 92.

Итоговый алгоритм решения проблемы

Подведем итог нашим действиям. Если вы столкнулись с ошибкой «Отсутствует полный код маркировки» на табаке:

  1. Обновите 1С:Розница до последнего актуального релиза (не ниже 2.3.19).
  2. Обновите драйвер АТОЛ до версии 10.10.x и выше.
  3. Настройте сканер в режим COM-порта и убедитесь, что он считывает марку полностью (с криптохвостом).
  4. Заполните регистр «Описание GTIN ИС» для всех табачных GTIN, указав вид продукции.
  5. Проверьте настройки ОФД в самой кассе (через тест драйвера), чтобы запросы к ИС МП уходили корректно.

Соблюдение этих шагов позволит восстановить нормальную торговлю табачными изделиями в соответствии с требованиями законодательства 2024 года.

← На главную