← На главную
При работе с маркированными товарами в 1С Розница часто возникает ситуация, когда требуется идентифицировать номенклатуру по сканированному коду маркировки DataMatrix (который часто ошибочно называют QR-кодом). Особенно остро проблема встает, если коды маркировки были получены вне системы 1С (например, через систему «Честный ЗНАК» для остатков) и их привязка к конкретным позициям номенклатуры в базе 1С не была заранее установлена. В таких случаях при сканировании DataMatrix-кода типовой механизм 1С Розница не предлагает выбрать соответствующую номенклатуру из списка, а либо выдает ошибку, либо не обрабатывает код должным образом.
Понимание кодов DataMatrix, GTIN и SGTIN в контексте 1С Розница
Прежде чем рассматривать решения, давайте глубже разберемся с терминологией и принципами работы. Для товаров, подлежащих обязательной маркировке системой «Честный ЗНАК», используется не обычный QR-код, а специальный двухмерный штрихкод под названием DataMatrix. Именно DataMatrix является стандартом для маркировки и содержит в себе ключевую информацию о товаре:
- GTIN (Global Trade Item Number): Глобальный номер товарной позиции. Это идентификатор товара на уровне вида, группы товаров. GTIN по сути является тем же, что и обычный товарный штрихкод EAN-13, но в международном формате.
- SGTIN (Serialised Global Trade Item Number): Серийный глобальный номер товарной позиции. Это уникальный идентификатор конкретного экземпляра товара, который включает в себя GTIN и уникальный серийный номер.
В типовых конфигурациях 1С Розница, при работе с маркированными товарами, система ожидает, что номенклатура, к которой относится GTIN, уже заведена в базу данных и корректно сопоставлена с этим GTIN. При сканировании DataMatrix-кода, 1С извлекает из него GTIN и SGTIN. Основная задача системы – найти в своей базе номенклатурную позицию, соответствующую извлеченному GTIN. Если соответствие не найдено или найденная номенклатура не имеет признака «Маркируемый», система может работать некорректно или выдавать ошибки.
Типовой механизм 1С Розница и его ограничения для идентификации по DataMatrix
Стандартные механизмы 1С Розница по умолчанию не предоставляют функционал, который бы при сканировании DataMatrix-кода (содержащего GTIN и SGTIN), но не имеющего предварительной привязки к номенклатуре в базе, автоматически предлагал бы выбрать соответствующую номенклатуру из списка. Типовой сценарий работы с маркированным товаром обычно включает следующие шаги:
- Предварительное заведение номенклатуры: В базе 1С должна быть заведена карточка номенклатуры с указанием её GTIN и признаком «Маркируемый товар».
- Сканирование обычного штрихкода (EAN): Часто сначала сканируется обычный штрихкод товара, чтобы добавить позицию в чек или документ. Это позволяет идентифицировать тип товара по его GTIN.
- Сканирование кода маркировки (DataMatrix): После этого сканируется DataMatrix-код конкретного экземпляра товара для фиксации его SGTIN и проверки статуса в системе «Честный ЗНАК».
Если же мы сканируем только DataMatrix-код, и при этом GTIN из него не привязан ни к одной номенклатуре в 1С (особенно, если коды маркировки были получены и нанесены «мимо» 1С), то система не сможет определить, к какой именно номенклатурной позиции относится данный товар. В такой ситуации возникает потребность в дополнительной логике, которая позволила бы «связать» считанный DataMatrix с существующей номенклатурой или предложить создать новую.
Решение 1: Доработка механизма идентификации с использованием API «Честный ЗНАК»
Если коды маркировки остатков были выданы системой «Честный ЗНАК», и товары промаркированы, но привязка к конкретным позициям номенклатуры не хранится в 1С, то наиболее гибким и надежным решением будет доработка типового функционала. Здесь нам потребуется помощь программиста.
Проблема с GTIN в DataMatrix
Важно понимать, что GTIN, содержащийся внутри DataMatrix, не всегда может совпадать с EAN-штрихкодом, который вы традиционно использовали или планировали использовать в своей базе 1С. GTIN в DataMatrix может обозначать место упаковки/маркировки или иметь другие особенности. Поэтому прямое сопоставление GTIN из DataMatrix с вашими внутренними ШК может быть неточным.
Использование API «Честный ЗНАК»
Для получения актуального и правильного GTIN (а также другой информации о товаре) по SGTIN (который извлекается из DataMatrix-кода) можно использовать API системы «Честный ЗНАК». Это позволит программе в реальном времени получать информацию о том, какой GTIN официально связан с данным SGTIN. Разберем шаги, которые должен будет реализовать программист:
- Перехват сканирования DataMatrix-кода: При сканировании DataMatrix-кода, программа должна перехватывать его до стандартной обработки.
- Парсинг DataMatrix-кода: Из считанного DataMatrix-кода необходимо извлечь GTIN и SGTIN. Этот процесс обычно стандартизирован и не вызывает больших сложностей.
- Проверка наличия номенклатуры по GTIN: Сначала программа пытается найти номенклатуру в справочнике
Номенклатура по извлеченному GTIN. Возможно, этот GTIN уже забит в качестве штрихкода или в поле GTIN у какой-либо номенклатуры.
- Запрос через API «Честный ЗНАК» (при отсутствии прямого совпадения): Если по извлеченному GTIN не найдена соответствующая номенклатура, или найдено несколько, либо есть сомнения, то следующим шагом является отправка запроса в API «Честный ЗНАК» по SGTIN. Этот запрос позволит получить полную информацию о товаре, включая его правильный GTIN и другие характеристики.
- Поиск и предложение номенклатуры на основе данных API:
- После получения ответа от API, программа снова ищет номенклатуру в 1С, используя теперь уже данные из «Честного ЗНАКа» (например, по полному GTIN или наименованию).
- Если найдена одна номенклатурная позиция, она может быть автоматически подставлена.
- Если найдено несколько потенциально подходящих позиций (например, по частичному совпадению наименования), программа должна вывести список для выбора пользователем.
- Если номенклатура не найдена вовсе, программа может предложить создать новую карточку номенклатуры, автоматически заполнив часть данных из ответа API «Честный ЗНАК», и привязать к ней данный GTIN.
- Привязка SGTIN к номенклатуре: После того как номенклатура определена (автоматически или вручную), необходимо сохранить связь между данным SGTIN и выбранной номенклатурой. Это может быть сделано через регистры сведений или специальный справочник, чтобы при последующих сканированиях этого же SGTIN не повторять запрос к API.
Важно: Интеграция с API «Честный ЗНАК» — это задача для программиста, требующая навыков работы с веб-сервисами, JSON-форматом данных и понимания протоколов обмена с ГИС МТ. Типовая 1С Розница поддерживает интеграцию с «Честным ЗНАКом» для заказа кодов, управления ими и проверки статусов, но автоматическое сопоставление номенклатуры «на лету» при сканировании DataMatrix, когда GTIN не известен системе, является нетиповым функционалом.
Решение 2: Предварительное внесение информации о маркировке и привязка к номенклатуре
Если программистские доработки не представляются возможными в краткосрочной перспективе, или вы хотите минимизировать кастомизацию, то необходимо вручную или с помощью специализированных обработок внести информацию о маркировке и привязать её к номенклатуре до начала торговых операций. Это особенно актуально, если у вас уже есть коды маркировки остатков, полученные и нанесенные вне 1С.
- Создание/актуализация номенклатуры в 1С: Для каждого уникального GTIN (который вы можете извлечь из DataMatrix-кодов или получить из своих учетных данных) должна быть заведена соответствующая карточка номенклатуры в 1С. Убедитесь, что в ней указан признак «Маркируемый товар» и по возможности прописан GTIN.
- Сбор всех DataMatrix-кодов: Вам потребуется собрать все DataMatrix-коды, которые были выданы и нанесены на товары «мимо 1С». Это может быть сделано путем массового сканирования или загрузки из внешних файлов, если такие имеются.
- Внесение DataMatrix-кодов в справочник «Штрихкоды упаковок и товаров»: В 1С Розница есть справочник
Штрихкоды упаковок и товаров. Именно здесь хранится сопоставление номенклатуры с её различными штрихкодами, включая DataMatrix-коды. Для каждого DataMatrix-кода (SGTIN) вам необходимо будет создать запись в этом справочнике и явно указать, к какой именно номенклатурной позиции он относится.
- Ручной ввод: Открываем карточку номенклатуры, переходим в раздел штрихкодов и добавляем DataMatrix-код. Это возможно для небольшого количества товаров.
- Импорт или обработка: Для большого объема товаров целесообразно использовать внешние обработки для импорта данных или разработать небольшую утилиту, которая будет сканировать DataMatrix-коды и привязывать их к номенклатуре (возможно, с ручным подтверждением). Такая обработка может работать следующим образом:
- Сканируем DataMatrix-код.
- Извлекаем GTIN.
- Ищем в базе 1С номенклатуру по GTIN.
- Если номенклатура найдена, добавляем считанный DataMatrix в её штрихкоды.
- Если не найдена или найдено несколько, предлагаем пользователю выбрать или создать номенклатуру.
- Использование функционала «Маркировка остатков» в 1С: Если вы ранее не регистрировали эти остатки в 1С, вы можете использовать встроенный функционал «Маркировка остатков» для ввода этих кодов в оборот через систему. Даже если коды уже нанесены, 1С может помочь их «провести» через систему и связать с номенклатурой. Это требует тщательной сверки, чтобы не произошло дублирования или некорректной регистрации.
После того как все DataMatrix-коды будут корректно привязаны к соответствующим позициям номенклатуры в справочнике Штрихкоды упаковок и товаров, типовой механизм 1С Розница сможет корректно обрабатывать сканирование этих кодов, так как для каждого SGTIN будет найдена его номенклатура.
Проверка состава маркировки программой 1С Розница
Очень важный момент, который часто вызывает вопросы: проверяет ли 1С Розница состав маркировки, если просто внести DataMatrix-коды в справочник «Штрихкоды упаковок и товаров»?
Да, современные версии 1С Розница действительно проверяют состав и статус маркировки, а не просто «принимают» любой введенный код. Это критически важно для соблюдения законодательства о маркировке. 1С Розница поддерживает полноценную интеграцию с системой «Честный ЗНАК» и включает в себя механизмы для:
- Проверки валидности кода: Система проверяет корректность структуры DataMatrix-кода, его алфавит, длину и т.д. Если код поврежден или имеет неверный формат, программа уведомит об ошибке.
- Запроса статуса кода в ГИС МТ: При проведении операций (например, при продаже на кассе, при приемке или отгрузке) 1С Розница отправляет запрос в систему «Честный ЗНАК» для проверки текущего статуса SGTIN. Проверяется, находится ли код в обороте, не выведен ли он уже, кому принадлежит и соответствует ли он вашей организации.
- Соответствия номенклатуре: 1С проверяет, соответствует ли GTIN, извлеченный из DataMatrix-кода, GTIN, указанному для выбранной номенклатурной позиции в вашей базе. Если есть расхождение, это будет сигналом к ошибке.
- Уведомления о проблемах: Если в ходе проверок обнаруживаются какие-либо проблемы (код не в обороте, принадлежит другому владельцу, неверный формат), система информирует пользователя, предотвращая некорректные операции и возможные штрафы.
Таким образом, простое внесение DataMatrix-кодов без их фактической регистрации и корректной привязки в системе «Честный ЗНАК» (и без соответствия с вашей номенклатурой) не позволит вам беспрепятственно торговать этими товарами. Программа будет выполнять обязательные проверки.
Дополнительные аспекты для работы с маркировкой
Для полноценной и бесперебойной работы с маркировкой в 1С Розница необходимо учесть несколько важных моментов:
- Регистрация в «Честном ЗНАКе»: Ваша организация должна быть зарегистрирована в системе государственной информационной системы мониторинга товаров (ГИС МТ) «Честный ЗНАК».
- Электронная подпись (УКЭП): Для работы с «Честным ЗНАКом» и электронным документооборотом (ЭДО) требуется усиленная квалифицированная электронная подпись.
- Электронный документооборот (ЭДО): Для обмена универсальными передаточными документами (УПД) с маркированными товарами необходимо подключение к оператору ЭДО. 1С Розница поддерживает интеграцию с различными операторами.
- Оборудование:
- 2D-сканер штрихкодов: Обязателен для считывания DataMatrix-кодов. Обычные 1D-сканеры их не считывают.
- Принтер этикеток: Если вы планируете самостоятельно печатать коды маркировки (например, для перемаркировки или остатков).
- Онлайн-касса с ФФД 1.2: Для розничной продажи маркированных товаров касса должна поддерживать формат фискальных данных 1.2, который позволяет передавать информацию о выбытии кодов маркировки в ОФД и далее в «Честный ЗНАК».
- Актуальность конфигурации: Регулярно обновляйте 1С Розница до последних версий, так как законодательство и требования к работе с маркировкой постоянно меняются, и 1С выпускает обновления для их поддержки.
В заключение, проблема выбора номенклатуры по DataMatrix-коду, когда привязка к товарам отсутствует, решается либо путем программной доработки с использованием API «Честный ЗНАК» для получения полной информации о GTIN и автоматического сопоставления, либо путем предварительного ручного (или полуавтоматического) внесения всех DataMatrix-кодов и их привязки к номенклатуре в справочнике Штрихкоды упаковок и товаров. В любом случае, 1С Розница будет выполнять проверки кодов маркировки, поэтому корректность и легальность их регистрации в системе «Честный ЗНАК» является обязательным условием для успешной работы.