Как правильно загрузить коды маркировки DataMatrix в 1С:Розница и избежать их двойной продажи?

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

Часто при автоматизации розничных магазинов мы сталкиваемся с задачей загрузки кодов маркировки (DataMatrix) в учетную систему. Рассмотрим типичную ситуацию: из системы Честный ЗНАК были получены списки кодов маркировки на остатки товаров в виде CSV-файлов, и теперь нам нужно внести их в базу 1С:Розница. Первая мысль, которая часто приходит в голову разработчикам — написать свою небольшую обработку и напрямую загрузить эти данные в справочник ШтрихкодыУпаковокИТоваров.

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

Почему нельзя просто записать марки в справочник штрихкодов?

Если мы программно создадим элементы справочника ШтрихкодыУпаковокИТоваров с типом DataMatrix, система просто свяжет строку кода с номенклатурой. Но для полноценного учета маркированных товаров (одежда, обувь, табак и прочее) этого недостаточно. Подсистема маркировки работает значительно сложнее, чем базовый справочник для штрихкодов формата EAN-13.

Для корректной работы кассового узла, фиксации выбытия марок и проверок необходимо использовать штатную подсистему — Интеграция с ИС МП. На форумах часто спрашивают, как написать свой собственный регистр накопления, который будет списывать проданные позиции и блокировать их повторную продажу. Ответ здесь однозначен: изобретать собственный "велосипед" категорически не рекомендуется. Штатный функционал уже умеет делать всё необходимое, нужно лишь правильно его применить.

Где в 1С хранятся данные о проданных марках?

Многие разработчики, пытаясь отследить статус кода и найти "корзину" с проданными марками, начинают изучать регистры базы. Часто подозрение падает на регистр сведений ПулКодовМаркировкиСУЗ. Разберем подробнее, для чего он нужен на самом деле.

Регистр ПулКодовМаркировкиСУЗ предназначен исключительно для хранения новых, только что сгенерированных кодов маркировки (вместе с криптохвостом) до момента их печати и фактического нанесения на товар. В нем лежат коды, полученные при эмиссии из СУЗ (Станции управления заказами), но еще не введенные в оборот. Как только этикетка с маркой успешно распечатана и код введен в оборот, он удаляется из пула. Таким образом, искать информацию о проданных позициях там бессмысленно — проданные марки там не хранятся.

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

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

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

Как предотвратить двойную продажу одного кода DataMatrix?

Посмотрим, как штатными средствами 1С запретить продажу одних и тех же марок. Для этого в актуальных версиях программы (например, 1С:Розница 2.3 и новее) реализованы механизмы контроля:

  1. Разрешительный режим на кассах (онлайн-проверка). Это самый надежный способ. При сканировании марки на кассе программа отправляет моментальный запрос напрямую в базу Честного ЗНАКа (ГИС МТ). Если государственная система отвечает, что данный код уже был выведен из оборота (продан) или вовсе никогда не вводился в оборот, 1С моментально блокирует добавление такого товара в чек.
  2. Контроль статусов кодов маркировки внутри 1С. В настройках раздела "Интеграция с ИС МП" (Настройки сканирования и проверок) необходимо включить опцию контроля статусов. При активированной настройке 1С будет самостоятельно проверять статус марки перед пробитием чека, основываясь на данных, полученных по API. Если код уже числится проданным, кассир получит ошибку, и операция будет прервана.

Пошаговая инструкция: как правильно загрузить коды остатков в 1С

Разберем по шагам алгоритм правильных действий, если на руках имеется CSV-файл с кодами маркировки, полученными из Честного ЗНАКа. Наша задача — не просто записать их в базу, а легализовать для кассовой программы.

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

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

← На главную