Как продавать табачную продукцию коробками через кассу и ПКО в 1С:УТ 11 при разрешительном режиме?

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

С введением разрешительного режима с 1 апреля 2024 года (Постановление Правительства №1944) многие оптовые компании, работающие в 1С:Управление торговлей 11, столкнулись с серьезной технической проблемой. Ситуация выглядит следующим образом: организация получает табак от поставщика в транспортных коробах, оформляет оптовую продажу, но покупатель желает оплатить товар наличными. В этом случае, согласно 54-ФЗ, необходимо пробить кассовый чек. Однако при попытке отсканировать штрихкод коробки система выдает ошибку: «Требуется код маркировки для товара» или «[М] отсутствует, Отсутствует полный код маркировки».

В этой статье мы подробно разберем, почему возникает эта ошибка, проанализируем внутренние механизмы 1С и «Честного ЗНАКа», а также найдем способы решения задачи для бесперебойной отгрузки товара.

Суть проблемы: Логистическая vs Потребительская упаковка

Для начала проанализируем ситуацию с точки зрения системы маркировки. В «Честном ЗНАКе» (ИС МП) существует жесткое разграничение типов упаковок:

  1. Потребительская упаковка (пачка) и групповая упаковка (блок): имеют уникальный DataMatrix код. Именно эти коды предназначены для выбытия через ККТ (розничной или мелкооптовой продажи с чеком).
  2. Логистическая упаковка (короб или палета): идентифицируется кодом GS1-128 или SSCC. Эта упаковка предназначена исключительно для логистических операций (перемещение, отгрузка через ЭДО).

Разрешительный режим требует, чтобы кассовое ПО отправило онлайн-запрос в ИС МП перед пробитием чека. Проблема в том, что система «Честный ЗНАК» не выдает положительный токен проверки для логистического кода при попытке его розничного выбытия. Касса «ожидает» коды вложенных блоков, а не код самой коробки.

Почему 1С не видит вложенные блоки при пробитии чека?

Разберем техническую сторону вопроса в 1С:Управление торговлей 11. Когда мы принимаем товар по ЭДО, в систему зачастую попадает только код короба (так называемая «доверительная приемка»). Если мы не выполняли полную проверку и подбор каждой пачки или блока при поступлении, в базе 1С отсутствуют данные о том, какие именно марки блоков находятся внутри этого короба.

Как отмечается в обсуждении, даже если в отладчике изменить Перечисления.ВидыУпаковокИС.Логистическая на Потребительская, это не решает проблему, так как система перестает корректно считывать серии из ШК. Программа 1С честно пытается найти вложенные элементы, но не находит их в своем регистре сведений «Коды маркировки подакцизных товаров».

Решение №1: Запрос состава транспортной упаковки

Это наиболее корректный и законный способ решения проблемы. Чтобы 1С смогла пробить чек на коробку, она должна «разложить» её на блоки в момент формирования чека. Для этого база должна заранее знать состав этой коробки.

Рассмотрим пошагово, как это реализовать:

  1. В документе «Приобретение товаров и услуг» или в отдельном рабочем месте «Проверка и подбор маркируемой продукции» необходимо использовать функцию «Запрос состава упаковки».
  2. При сканировании кода коробки 1С отправляет запрос в ИС МП (Честный ЗНАК).
  3. В ответ система присылает полный список всех кодов DataMatrix (блоков), которые числятся внутри данного короба.
  4. Эти данные сохраняются в базу 1С.
  5. Теперь при оформлении продажи и пробитии чека, когда вы сканируете коробку, 1С автоматически подставит в чек коды всех вложенных блоков.

Важный нюанс: В этом случае кассовый чек может стать очень длинным, так как в него запишутся все блоки (например, 50 штук). Однако только так касса сможет пройти проверку разрешительного режима для каждого кода.

Решение №2: Программное отключение проверки (не рекомендуется)

Некоторые специалисты пытаются решить вопрос через расширение конфигурации, отключая проверку кодов на стороне 1С. Рассмотрим пример кода, который часто предлагается для обхода блокировки:


&Вместо("ФискальноеУстройствоПоддерживаетПроверкуКодовМаркировки")
Функция Расш1_ФискальноеУстройствоПоддерживаетПроверкуКодовМаркировки(ИдентификаторУстройства)
    // Принудительно возвращаем Ложь, чтобы программа не инициировала онлайн-проверку в ЧЗ
    Возврат Ложь;
КонецФункции

Проанализируем последствия такого решения. Несмотря на то что чек может пробиться, возникает ряд критических проблем:

Решение №3: Изменение бизнес-процесса отгрузки

Если «разагрегация» и запрос состава каждой коробки занимают слишком много времени (например, при отгрузке фурами), следует рассмотреть изменение способа расчетов с покупателями. Разрешительный режим и требования к кодам маркировки в чеке возникают только при использовании ККТ (наличные, оплата картой).

Выясним, как можно оптимизировать процесс:

  1. Переход на безналичный расчет: При оплате по счету (платежным поручением) чек ККТ не требуется. Маркировка передается через УПД в ЭДО целыми коробками. Это самый быстрый и штатный способ для опта.
  2. Предварительная подготовка данных: Если оплата наличными неизбежна, необходимо настроить автоматическую загрузку состава упаковок сразу после получения входящего УПД. Это можно реализовать с помощью фонового задания, которое будет запрашивать составы всех новых логистических упаковок в ИС МП, пока товар лежит на складе.

Технические детали реализации в 1С

При работе с кодами GS1-128 в 1С важно понимать, как программа парсит строку. Логистический ШК содержит идентификаторы применения (AI). Для коробок это обычно (01) — GTIN короба и (21) — серийный номер или (00) — SSCC.

Выясним причину, почему подстановка «подчиненных ШК» вручную (как пробовал автор вопроса) не работает. При пробитии чека 1С проверяет не просто наличие записи в справочнике, а корректность формирования объекта ДанныеМаркировки. Для табака требуется наличие «криптохвоста» (кода проверки), которого нет у логистического штрихкода. Именно поэтому 1С пишет об отсутствии полного кода.

Резюме для технического специалиста:

  1. Убедитесь, что в базе включена опция «Вести учет маркируемой продукции».
  2. В настройках интеграции с ИС МП проверьте параметры подключения к станции управления заказами (СУЗ).
  3. Для автоматизации процесса получения кодов блоков можно использовать метод ИнтеграцияИСМП.ЗапроситьСоставТранспортныхУпаковок() в серверном модуле.

Таким образом, единственным надежным способом продать коробку табака через чек в условиях разрешительного режима является обеспечение базы данных 1С сведениями о каждом вложенном блоке. Это достигается либо детальной приемкой, либо онлайн-запросом состава упаковки перед продажей.

← На главную