что делать если на товаре нет штрих кода
На товаре нет штрихкода: что делать
Время чтения: 3 минут.
В чем проблема со штрихкодами?
На маркетплейсах бывают ситуации, когда один и тот же вид товара продают два и более продавца. Система маркетплейса просто не допустит, чтобы в базе оказались разные клиенты с одним и тем же штрихкодом на один товар.
При работе с Кактусом в личном кабинете на всех маркетплейсах — Wildberries, Goods. Ozon, Яндекс.Маркет и Aliexpress — также желательно, чтобы был один штрихкод на один вид товара: это нужно для корректной передачи данных.
В этом случае одному из клиентов придется самостоятельно присваивать новый штрихкод, который должен соответствовать требованиям конкретной площадки, чтобы она его пропустила.
В идеальном варианте штрихкод предоставляют клиенты: они заносят их в карточки товаров и проставляют на сам товар.
А что делать, если штрихкода не оказалось?
Откуда брать штрихкод
Штрихкода может не быть, потому что клиенты заказывают товар либо из Китая, либо у поставщика, который делает товар без штрихкода. В данном случае есть несколько вариантов, где клиент можно взять штрихкод:
их предоставляют маркетплейсы;
бесплатные генераторы штрихкодов;
платные сервисы генерации;
Рассмотрим каждый из способов подробнее.
Штрихкоды от маркетплейсов
Требования площадок к штрихкодам — тема отдельной статьи. Здесь мы приводим ссылки на соответствующие справочные данные для каждого из пяти популярных маркетплейсов. Специально сделали их безанкорными, чтобы вы могли скопировать их прямо из этой статьи.
Ozon
Wildberries
Справочный раздел площадки не находится в свободном доступе, но в сети есть руководство, как там получить штрихкоды. Например, это: https://amazonmarket.ru/562-poshagovaja-pomosch-dlja-sozdanija-shtrihkoda-barkoda-dlja-marketpleisa-vaildberriz.html
Яндекс.Маркет
Процедура получения штрихкода описывается в разделе barcode Яндекс.Справки: https://yandex.ru/support/partnermarket/elements/barcode.html
Goods
Aliexpress
Информация раскрыта в блоге о покупках на этой площадке, в материале «Штрихкод на Алиэкспресс: расшифровка и сканирование»: http://aliexpressin.ru/shtrih-kod-na-aliekspress-kak-rasshifrovat-i-otskanirovat-shtrih-kod-na-aliekspress.html
В заключение здесь нужно отметить, что штрихкоды, которые выдает отдельная площадка, подходит ТОЛЬКО для работы на ней.
Бесплатные генераторы штрихкодов
Barcode
Сервис позволяет генерировать такие штрихкоды как:
Когда необходим штрих-код на товар и как его сделать самостоятельно?
Штрих-код — это графическая информация, наносимая на упаковку, поверхность или маркировку различных товаров и изделий. По нему считывается определенная информация о продукте или непродовольственном товаре. Можно ли самому создать штрих-код и что для этого нужно сделать, подробно рассказано ниже в статье.
Дорогие читатели! Наши статьи рассказывают о типовых способах решения юридических вопросов, но каждый случай носит уникальный характер.
Можно ли создать код для своих изделий и как их затем реализовать?
Самостоятельно сгенерировать штрих-код можно, но без его официальной регистрации в отдельной организации по стандартизации, выдающей штриховые коды, произведенную продукцию на международный рынок вывести не получится. В итоге, такой способ маркировки товара подходит только для внутреннего использования в организации (на предприятии).
О том, где можно заказать штрих-код на продукцию, рассказывается здесь.
Как сделать его по системе EAN-13 для продукции самостоятельно?
Сегодня существует несколько видов систем штрих-кодовой маркировки товара, но самой популярной считается EAN13 (часто используется в супермаркетах и в иных аналогичных торговых сетях). Штрих-код EAN-13 уникален в международном масштабе. Более 1 0000 компаний (предприятий) во всем мире маркируют им свою продукцию.
Как сформировать для внутреннего использования?
Штрих-код для внутреннего использования формируется таким образом — перед регистрационным 13-значным номером ставится цифра «2», что означает «внутреннее использование». В подобной ситуации, например, универмаг изготавливает собственные товарные этикетки с цифрой «2» вначале и наклеивает их на товары без маркировки от производителя.
Штриховой код EAN-13 для внутреннего пользования содержит цифру 2 и еще 13 стандартных цифр, имеющие такие обозначения:
Как самостоятельно присвоить изделию?
Разные предприятия и иные организации проводят маркировку товаров в различных программах. Однако, чаще это делают в программе «1С: розница».
Для присвоения товару собственного штрихового кода в программе «1С: розница» надо:
Что понадобится для формирования?
Для того, чтобы составить сам штриховой код существуют такие программные средства, как онлайн-генераторы штрих-кодов. Например, можно воспользоваться сайтом roskod.ru. Затем, необходимо выполнить 3 простых шага:
Ниже представлено видео о том, как самостоятельно сделать штрих-код:
Как нанести?
Для штрих-кодовой маркировки товара на обычной бумаге лучше использовать офисный лазерный принтер. Однако, кроме принтера, в этом деле используются и иные технические средства, которые перечислены ниже.
Что понадобится для нанесения на продукцию?
Напечатать штрих-код можно с помощью различного полиграфического оборудования. Этикетки печатаются на таких технических средствах:
Для того, чтобы сделать самому маркировку товара, необходимо использовать такое оборудование и материалы как:
Требования к изображению
Качественное считывание штрих-кодовой информации специальным сканером возможно только при соблюдении рекомендуемых конретных размеров штриховых кодов, а также, при выполнении определенных требований по цветому сочетанию штрихового символа с фоном этикетки. Для штрихового кода EAN-13 установлены такие рекомендуемые (номинальные) размеры:
Символ EAN-13 можно увеличить на 100% от номинальных размеров и уменьшить не более, чем на 20%.
Рекомендации по печати
Дизайн упаковки или этикетки продукции может войти в конфликт с требованием нанесения черного штриха на белый фон этикетки (упаковки). В этом случае необходимо воспользоваться нижеприведенными рекомендуемыми цветовыми сочетаниями.
Цветовые сочетания штриха с фоном этикетки, хорошо считываемые сканером:
Цветовыми сочетаниями, не рекомендуемыми к использованию, являются такие: зеленый, коричневый или синий штрих на красном фоне и черный штриховой символ на красном, коричневом, зеленом или синем фоне.
Цветовые сочетания, запрещенные к применению на этикетках:
Надо ли регистрировать?
Нанесение и регистрация созданного штрихового кода является добровольным делом. Регулируется данный процесс ГОСТом ISO/IEC 15420-2010.
Однако, есть перечень товаров, которые подлежат не штрихкодированию, а обязательной маркировке контрольно-идентификационными знаками и госрегистрации. Согласно распоряжению Правительства РФ № 792-р от 28 апреля 2018 года, таковыми являются:
Регистрация штрих-кодов требуется, если товары будут использоваться вне предприятия (например, товары будут продаваться в различных сетевых магазинах). Ведь без проведения такой регистрации товары не принимаются на реализацию в торговой сети.
Таким образом, самостоятельно сделать штрих-код не так уж и сложно. Для этого нужно использовать соответствующее оборудование и программу 1С. Регистрацию штриховых кодов необходимо проводить только в том случае, если товары будут продаваться в сетевых магазинах.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Что делать, если нет штрих кода – правильный порядок действий
Что делать, если у вас до сих пор нет штрих кода – спешить получить уникальные серийные номера на ваш товар. Ведь без штрихкодирования очень сложно торговать с современном мире. Не имея штриховых кодов, становится невозможным продавать товары в супермаркетах и других торговых площадках. Операций, связанных со штрихкодированием немало: отгрузка, транспортировка, разгрузка и прием, внесение информации в базу данных, реализация, складской учет и инвентаризация. Но как же быть и что делать, если штрихкод отсутствует.
Что делать, если нет штрих кода у предприятия-производителя
Для присвоения штрихкода продукции предприятие-производитель должно обратиться к официальному регистратору товарной нумерации в России. Уполномоченным регистратором является автономная некоммерческая организация РОСКОД. При обращении подразумевается, что предприятие имеет статус юридического лица. Это обязательно, так как преимуществами штрихового кодирования не могут воспользоваться физические лица.
Сначала необходимо подать заявление с просьбой о принятии предприятия в ряды организации; к заявлению приложить список продукции, на которую планируется нанести штрихкод. Также придется оплатить вступительный и ежегодный взносы, после чего предприятие будет зачислено в международную базу данных, а указанная в заявлении продукция обзаведется собственными штрих кодами. Узнайте подробнее о штриховом кодировании EAN-13.
Что делать, если у поступившего в магазин товара нет штриховой кодировки
Если магазин соглашается взять на реализацию товар, на который не проставили штрих код ни предприятие-производитель, ни поставщик, то идентификационный номер можно нанести непосредственно перед реализацией.
Поскольку наносимый штрихкод нужен только для внутреннего учета, его структура может быть произвольной, только первые три цифры должны представлять числовой ряд от 200 до 299.
Для создания такого штрихового кода можно воспользоваться программами-генераторами штрихкодов, или браузерными сервисами, предлагающими создать штрих код онлайн.
Как получить
Надеемся, теперь вам понятно, что делать, если нет штрих кода. С целью продавать товар, необходимо регистрировать штрихкодовые номера в международной базе. Для внутренних нужд предприятия, можно использовать произвольные незарегистрированные номера. Но как только продукцию нужно поставить на полки супермаркетов, тогда возникает необходимость регистрации штрихкодов и получения уникальных серийных номеров. Чтобы заказать штрихкодирование, оставьте заявку на сайте РОСКОД.
ПОЛУЧИТЕ ШТРИХ КОД НА ТОВАР. Бесплатно выдадим штрих-коды за 1 час.
Мы подготовили для Вас полный набор материалов которые закрывают все вопросы по выводу товаров в сеть.
Шаблоны документов и инструкцию как начать работать со всеми торговыми сетями России
Аудит и помощь в подготовке
разрешительной и технической
документации (ТУ/СТО/ТИ +
Сертификаты/Декларации + СГР + ISO)
Аудит торговой марки
Международный Сертификат качества продукции ISO (не для всех)
Помощь в получении сертификата Роскачество
Инструкции и материалы по использованию штрих-кодов
Инструкцию, как правильно разработать этикетку
Получите доступ сейчас
Там есть то, что вы ищете…
Ответим на любые вопросы по штрих кодам от создания и регистрации до внедрения!
Позвоните по номеру 8 (800) 333-69-22 (звонок по России бесплатный)
Оставьте заявку на регистрацию компании и продукции в международной базе EAN
Ответим на любые вопросы по штрих-кодам от создания и регистрации до внедрения!
Расскажем как сэкономить и оптимизировать ваши затраты по работе со штрих-кодами.
Национальная система штрихкодирования
ООО «АПБ»
Москва, Россия, 117570
улица Шаболовка, дом 34, стр 5
Телефон: 8 (800) 333-69-22
(звонок по РФ бесплатный)
РОСКОД 2018 © Все права защищены.
Политика в отношении обработки персональных данных посетителей сайта
Настоящая Политика конфиденциальности персональной информации (далее — Политика) действует в отношении всей информации, которую юр.лицо ООО Агентство промышленной безопасности (ОГРН: 1177746892938, ИНН: 7726409452,адрес регистрации: 117570, г Москва, улица Чертановская, дом 36 КОРПУС 1, ЭТАЖ 1 ОФ. IV) и/или его аффилированные лица, могут получить о пользователе во время использования им сайта https://roskod.ru/, https://roskod.info/.
Использование сайта https://roskod.ru/, https://roskod.info/ означает безоговорочное согласие пользователя с настоящей Политикой и указанными в ней условиями обработки его персональной информации; в случае несогласия с этими условиями пользователь должен воздержаться от использования данного ресурса.
1.1. В рамках настоящей Политики под «персональной информацией пользователя» понимаются:
1.1.1. Персональная информация, которую пользователь предоставляет о себе самостоятельно при оставлении заявки, совершении покупки, регистрации (создании учётной записи) или в ином процессе использования сайта.
1.1.2 Данные, которые автоматически передаются сайтом https://roskod.ru/, https://roskod.info/ в процессе его использования с помощью установленного на устройстве пользователя программного обеспечения, в том числе IP-адрес, информация из cookie, информация о браузере пользователя (или иной программе, с помощью которой осуществляется доступ к сайту), время доступа, адрес запрашиваемой страницы.
1.1.3. Данные, которые предоставляются сайту, в целях осуществления оказания услуг и/или продаже товара и/или предоставления иных ценностей для посетителей сайта, в соответствии с деятельностью настоящего ресурса:
1.2. Настоящая Политика применима только к сайту https://roskod.ru/, https://roskod.info/ и не контролирует и не несет ответственность за сайты третьих лиц, на которые пользователь может перейти по ссылкам, доступным на сайте https://roskod.ru/, https://roskod.info/. На таких сайтах у пользователя может собираться или запрашиваться иная персональная информация, а также могут совершаться иные действия.
1.3. Сайт в общем случае не проверяет достоверность персональной информации, предоставляемой пользователями, и не осуществляет контроль за их дееспособностью. Однако сайт https://roskod.ru/, https://roskod.info/ исходит из того, что пользователь предоставляет достоверную и достаточную персональную информацию по вопросам, предлагаемым в формах настоящего ресурса, и поддерживает эту информацию в актуальном состоянии.
2.1. Сайт собирает и хранит только те персональные данные, которые необходимы для оказания услуг и/или продаже товара и/или предоставления иных ценностей для посетителей сайта https://roskod.ru/, https://roskod.info/.
2.2. Персональную информацию пользователя можно использовать в следующих целях:
2.2.1 Идентификация стороны в рамках соглашений и договоров с сайтом
2.2.2 Предоставление пользователю персонализированных услуг и сервисов, товаров и иных ценностей
2.2.3 Улучшение качества сайта, удобства его использования, разработка новых товаров и услуг
2.2.4 Таргетирование рекламных материалов
2.2.5 Заключения, исполнения и прекращения гражданско-правовых договоров с физическими, юридическими лицами, индивидуальными предпринимателями и иными лицами, в случаях, предусмотренных действующим законодательством и/или Уставом предприятия
3.1. Сайт https://roskod.ru/, https://roskod.info/ хранит персональную информацию пользователей в соответствии с внутренними регламентами конкретных сервисов.
3.2. В отношении персональной информации пользователя сохраняется ее конфиденциальность, кроме случаев добровольного предоставления пользователем информации о себе для общего доступа неограниченному кругу лиц.
3.3. Сайт https://roskod.ru/, https://roskod.info/ вправе передать персональную информацию пользователя третьим лицам в следующих случаях:
3.3.1. Пользователь выразил свое согласие на такие действия, путем выражения согласия в предоставлении таких данных;
3.3.2. Передача необходима в рамках использования пользователем определенного сайта https://roskod.ru/, https://roskod.info/, либо для предоставления товаров и/или оказания услуги пользователю;
3.3.3. Передача предусмотрена российским или иным применимым законодательством в рамках установленной законодательством процедуры;
3.3.4. В целях обеспечения возможности защиты прав и законных интересов сайта https://roskod.ru/, https://roskod.info/ или третьих лиц в случаях, когда пользователь нарушает Пользовательское соглашение сайта https://roskod.ru/, https://roskod.info/.
3.4. При обработке персональных данных пользователей сайт https://roskod.ru/, https://roskod.info/ руководствуется Федеральным законом РФ «О персональных данных».
4.1. Пользователь может в любой момент изменить (обновить, дополнить) предоставленную им персональную информацию или её часть, а также параметры её конфиденциальности, оставив заявление в адрес администрации сайта следующим способом:
4.2. Пользователь может в любой момент, отозвать свое согласие на обработку персональных данных, оставив заявление в адрес администрации сайта следующим способом:
5.1. Сайт принимает необходимые и достаточные организационные и технические меры для защиты персональной информации пользователя от неправомерного или случайного доступа, уничтожения, изменения, блокирования, копирования, распространения, а также от иных неправомерных действий с ней третьих лиц.
6.1. Сайт имеет право вносить изменения в настоящую Политику конфиденциальности. При внесении изменений в актуальной редакции указывается дата последнего обновления. Новая редакция Политики вступает в силу с момента ее размещения, если иное не предусмотрено новой редакцией Политики.
6.2. К настоящей Политике и отношениям между пользователем и Сайтом, возникающим в связи с применением Политики конфиденциальности, подлежит применению право Российской Федерации.
7.1. Все предложения или вопросы по поводу настоящей Политики следует направлять следующим способом:
Малоизвестные факты о штрихкодах — загадочные цифры под штрихкодом
Число зверя, штрихи смерти — насколько все это реально? Можно ли зашить в штрихкод видеоролик или фото голой Эммы Уотсон? Бывают ли “неправильные штрихкоды”, и что вообще значит “неправильный штрихкод”?
В “Клеверенсе” мы разрабатываем платформу Mobile SMARTS для создания мобильных решений по учету маркированного товара и постоянно сталкиваемся с детскими ошибками в маркировке. Обычно они вызваны простым нежеланием людей хоть немного разбираться в теме.
Наша платформа тоже не идеальна, но кое-что в своём деле мы понимаем. Статья не к тому, что типа мы крутые и разбираемся, а все вокруг не крутые и не разбираются, нет. У каждого свои задачи, мы тоже часто лажаем. Просто тема набирает популярность и выходит в массы, а любые ошибки стоят денег.
Сначала для затравки расскажем про кассовый штрихкод, а затем про загадочный GS1 DataMatrix, который используется в проекте тотальной маркировки товаров.
Сама статья больше развлекательная, всё изложенное при желании легко гуглится, но может и побудить кого-то изучить тему глубже.
Загадочные цифры под штрихкодом
Цифры под штрихкодом — что это такое? Знающие люди говорят, что тут всё просто: именно эти цифры “зашиты” в штрихкод. Девушка на кассе вбивает в программу цифры под штрихкодом — и вуаля — товар найден.
К сожалению, это заблуждение. Цифры под штрихкодом не “зашиты” в штрихкод. Для разговоров у камина сойдет, а для айтишника беда.
Это распространенное заблуждение приводит к тому, что когда встает задача распечатать штрихкод, человек гуглит бесплатный онлайн генератор штрихкода, пихает в поле эти самые цифры, и… получает проблему на ровном месте.
Надписи под штрихкодом называются Human readable interpretation (HRI). Одно только название уже должно наводить на мысль, что тут не всё в порядке.
Рассмотрим подробнее, где тут собака зарыта.
Кассовый штрихкод
Пример про кассовый штрихкод — для затравки. Он на самом деле не вызывает никаких проблем, потому что за 50 лет использования в софте и оборудовании были вставлены 1000 костылей, чтобы обойти все проблемы (ну почти). Зато он хорошо иллюстрирует вопрос.
Вот в этих двух штрихкодах (EAN-13) ниже, под которыми написано “4601200000003” и “0123456789128”, в обоих нет штрихов для первой цифры. В первом штрихкоде нет штрихов для “4” (она закодирована другим способом), а во втором штрихкоде вообще в принципе нет лидирующего нуля, хотя он и напечатан под штрихкодом.
Да-да, именно первой цифры, а не последней (чексуммы) как можно было бы подумать. Последняя цифра (чексумма) в полосках этих штрихкодов как раз-таки есть, иначе затея с чексуммой не будет работать.
Рассмотрим поближе, что тут происходит.
В первом приведенном штрихкоде (“4601200000003”) в начале идут две длинные полосочки, они кодируют “начало штрихкода”, далее идут штрихи и пропуски для цифры “6”, затем про цифры “0”, “1”, “2”, “0” и “0”, две длинные полосочки в центре говорят про середину, затем пять одинаковых групп штрихов и пропусков кодируют “00000”, далее идут штрихи и пропуски для цифры “3” и завершающие две длинные полоски про конец штрихкода. Итого, в штрихкоде есть штрихи только про “601200000003”. Цифра “3” (последняя) в полосках штрихкода есть, а первой “4” нет! Откуда же взялась “4”?
Дело в том, что “4” закодирована грязным хаком. Для неё не хватает места, и вообще всё это большой исторический казус.
Изначально такие кассовые штрихкоды появились в США, там они состоят из 12 цифр и называются UPC (Universal Product Code). Для переноса технологии в Европу и адаптации стандарта Европе нужны были дополнительные цифры, потому что американские 12 все уже были заняты.
Первым товаром, приобретенным по штрих-коду на этикетке, стал блок из 10 жевательных резинок Wrigley Juicy Fruit. Это произошло в супермаркете Marsh города Трой (Огайо) в четверг, 26 июня 1974 года в 8.01 утра. В историю вошли и имя покупателя, и имя кассира, открывших новую страницу розничной торговли. Теперь упаковка жвачки, которая тогда обошлась в 67 центов, вместе с чеком хранятся в музее американской истории Смитсоновского института.
Чтобы расширить емкость, можно было бы просто добавить еще немного штрихов и пропусков, но в те времена это серьезно ухудшало считываемость. Поэтому вместо того, чтобы просто увеличить штрихкод в ширину, был применен “хак”.
По американскому стандарту любая из цифр штрихкода может быть записана: а) обычными штрихами и пропусками; б) их зеркальным отражением; в) инверсией черного и белого; г) зеркальной инверсией. Всё это нужно для того, чтобы можно было печатать инверсные штрихкоды (белым по черному) и сканировать штрихкод вверх ногами (зеркальное отражение в случае штрихкода — то же самое, что и поворот на 180°).
В “американском” штрихкоде (который на 12 цифр) первые 6 цифр кодируются обычными штрихами, а вторые 6 цифр инвертированными штрихами (где черные штрихи заменены на белые полоски и наоборот). Это сделано для того, чтобы понимать, перевернут штрихкод или нет, нормально я его сканирую или вверх ногами (и затем декодировать цифры в правильном порядке, а не задом наперед).
В новом “европейском” штрихкоде (который на 13 цифр), первая цифра (например, “4”) кодируется не штрихами, а путем «перетасовывания» способов кодирования следующих за ней 6 цифр из первого блока (второй блок из 6 оставили в покое).
Например, следующая за четверкой “6” выводится как обычно, штрихи следующего за ней “0” выводятся в обратном порядке (зеркально), следующие за ней “1” и “2” выводится снова в обычном виде, следующие два “0” снова зеркально. Общая длина штрихкода и число штрихов в результате этого трюка не меняется.
Для “американского сканера” такая белиберда не имеет смысла, а для Европы это тайный знак того, что в штрихкоде закодирована еще одна цифра! (да, мы всегда знали, что европейцы извращенцы).
Для всех цифр от “1” до “9” были придуманы такие правила тасовки способов кодирования. Для “0” ничего нет, т.е. 13-значный штрихкод с лидирующим нулем визуально ничем не отличается от 12-значного штрихкода без этого лишнего ноля (EAN-13 с лидирующим нулем эквивалентен UPC-А).
Из этого получается первый прикол, что если перед нами “американский” штрихкод (в котором варианты кодирования не “перетасованы”), то “американский сканер” читает 12 цифр, а условный “европейский сканер” может считать, что в нем есть лидирующий «0», и считывать лишний ноль (т.к. для кодирования ноля не предусмотрено никакой “перетасовки”, этого “лидирующего нуля” очевидно в принципе нигде нет в штрихкоде).
Конечно, мир давно глобализован, поэтому “американский” сканер и “европейский” сканер — это просто условности. Сканер один и тот же, но у него есть настройка: нужно ли ему в принципе считывать EAN-13 (Европа) или читать только UPC-А (США), а если считывать EAN-13, то надо ли добавлять лишний ноль к американским штрихкодам UPC-А.
С этим связана одна распространенная проблема при внедрении штрихкодирования: когда в базе данных у компании либо нет нолей в начале штрихкодов, а сканер считывает с “лишним” нолем, либо наоборот, в базе данных есть ноль в начале, а сканер его “не считывает” (хотя, что там считывать, — этого ноля в принципе в штрихкоде нет).
Казалось бы, сложно накосячить в использовании EAN-13/UPC. Тем не менее, люди делают следующие ошибки:
В наших программных продуктах, таких как “Магазин 15” или “Склад 15”, построенных на платформе Mobile SMARTS, мы решаем эту проблему очень просто: сканер устройства всегда автоматически настраивается на возврат ноля, а поиск товара по базе данных производится два раза: и с нолем, и без ноля (чтобы уж точно найти товар).
Сканер мы стараемся настраивать программно, без участия человека. Если сканер нельзя настроить программно — то это всегда проблема, потому что по умолчанию сканером может обрезаться не только 0 (который в начале), но еще и чексумма (которая в конце), тогда в программу придут не 13, а уже 11 символов, зачастую даже без указания типа штрихкода (такие замечательные сканеры тоже бывают).
В этом случае мы бессильны улучшить результат. 11 символов могли прийти от сканирования любого другого типа штрихкода, мы не можем считать все штрихкоды как EAN-13. Чтобы настроить сканер, человеку придется сканировать с листа настроечные штрихкоды или заходить в какие-нибудь меню, а всё это — источники ошибок.
GS1 DataMatrix
Этот пример стал популярным благодаря введению обязательной маркировки товаров. История полна граблей, велосипедов и трупиков мелких животных, как сарай вашей бабушки.
Ну ладно, допустим с EAN-13 можно придраться и сказать, что первая цифра всё-таки есть в штрихкоде, просто она закодирована не совсем штрихами (хотя для лидирующего “0” это и не так).
Возьмем тогда другой пример, штрихкод GS1 DataMatrix «(21)abba01(01)04601200000003»:
В этом штрихкоде “внутри” нет ни скобок, ни символа «0», ни буквы «a», ни переноса строки.
Что тут происходит?
Во-первых, никакие скобки в штрихкод не кодируются, они печатаются только для удобства прочтения человеком. Это снова называется Human readable interpretation (HRI), привет, кожаный мешок.
Во-вторых, в штрихкоде есть специальные управляющие символы, которые должна расставить та программа, которая формирует данные для штрихкода. Не какая-то бесплатная opensource программа, написанная умными очкариками, а ваша программа, та самая, которую пишете Вы, мой друг. В этот раз символы, которые нужно вставить, не имеют отношения к “коррекции” и т.п., а размечают данные, которые нужно закодировать в штрихкод.
В самом начале в штрихкод вставляется управляющий символ, который называется FNC1 и имеет код 232, что соответствует либо странному печатаемому символу «Þ» (ANSI), либо русской букве “и” (Windows-1251), смотря какую кодировку использовать. Этот символ говорит, что у нас не просто абы какой DataMatrix, а именно GS1 DataMatrix, данные в котором имеют определенный формат: массив данных из пар (“код поля”, “значение поля”).
Этот управляющий символ FNC1 попадает в самое начало штрихкода, но его нельзя “передать” в штрихкод в составе данных.
Кроме того, непечатаемые символы, вполне очевидно, нельзя копипастить в составе строки, хаха! Страдай, кожаный мешок!
Указание, нужен префикс или не нужен, обычно передают как отдельную настройку (галочку) в программу формирования штрихкода. Если передать префикс как часть данных, то получим либо ошибку, либо два префикса в штрихкоде (в зависимости от используемой программы).
Далее, поскольку в штрихкоде внутри нет скобок, то уже непонятно, где кончается одно поле и начинается другое, где тут номера полей. Без скобок получается “21abba010104601200000003” (тут “01” встречается три раза, ха-ха).
Где заканчивается “01” из значения поля (21) и начинается настоящее (01)?
Это решается следующим способом:
По стандарту GS1 поля имеют формат. Не абы что, а формат значения. Например, значение для (01) должно состоять из 14 цифр и баста (нельзя 13 цифр, нельзя 12 цифр, нельзя не цифры). А поле (21), наоборот, имеет переменную длину, разрешены цифры, латинские буквы обоих регистров, знаки препинания и даже (опачки!) скобки.
Если после значения для (21) штрихкод не закончился, и там еще что-то есть, то в данные вставляется разделитель (это может быть снова или FNC1, или непечатаемый символ GS с кодом 29).
А общее правило звучит так: спецсимвол GS не вставляется, только в случае если AI начинается с пары цифр из этой вот таблицы:
Для всех остальных полей GS1 (не из этой таблицы) в конце значения нужно вставлять GS.
Т.е., мы получим “FNC121abba01GS0104601200000003” (только помним, что первый FNC1 мы не будем передавать в программу формирования штрихкода, а второй GS — это не строка “GS”, а один символ с кодом 29).
Эти требования — именно про данные, а не про штрихкод DataMatrix, потому что в штрихкод DataMatrix можно положить любые данные, они прекрасно закодируются и прочитаются. Тут речь о GS1 DataMatrix, который имеет определенный формат, и ваша программа должна соблюсти этот формат, прежде чем подавать данные в штрихкод.
Вообще говоря, в мире существуют программы печати штрихкодов, которым можно скармливать данные со скобками и они сами всё разрулят. Но это специализированный софт, который стоит денег, а не тот бестолковый и бесплатный онлайн-генератор штрихкодов, которым вы пользуетесь.
И наконец. То, как это будет напечатано и то, как это будет отсканировано, — две большие разницы. То, как данные печатаются под штрихкодом, и как они передаются сканером — это в чистом виде настройки принтера и сканера.
В нашем примере мы закодировали в штрихкод поля порядке: сначала (21), потом (01), а на изображении под штрихкодом распечаталось сначала (01), потом (21). Это снова называется Human readable interpretation (HRI), и порядок вывода в подписи соответствует правилу “потому что так принято”.
Сканер штрихкодов тоже имеет свои настройки, которые заставляют его переставлять поля, вставлять скобки и другие символы, переносить строки и т.п.
В большинстве случаев сканер прочитает наш штрихкод как “21abba01GS0104601200000003”. Никакого лидирующего FNC1, никаких скобок, GS не печатаемый и не виден в “Блокноте” (нужно использовать хотя бы Notepad+).
И принтер, и сканер могут делать со штрихкодами что хотят: добавлять и убирать символы, менять их местами — ради соответствия гайдлайну или для совместимости со сторонней программой.
Что еще интересно: в этом штрихкоде только 16 байт данных (на 24 символа без скобок).
Вот что тут происходит:
Т.е. чтобы закодировать “a”, нужно записать в штрихкод “b”, чтобы закодировать “1”, нужно записать “2” и т.д., именно поэтому прямо в самом штрихкоде нет байта 97 (значение буквы “a” в ASCII).
Итого, в приведенном штрихкоде “закодировано” в байтах 232, 151, 98, 99, 99, 98, 131, 232, 131, 134, 190, 142, 130, 130, 130, 133. И это еще до кодов коррекции и паддинга!
Непонимание процесса кодирования приводит к тому, что, например, для начавшейся обязательной маркировки обуви люди печатают на принтер неправильно сформированные данные и получают неправильные штрихкоды, которые выглядят вполне нормально, читаются приложением “Честный знак”, но данные в них неверные, как минимум это не GS1 DataMatrix.
Штрихкоды неправильно напечатаны, неправильно читаются, и такая обувь не считается правильно промаркированной.
В своем софте “Кировка” мы боремся с этим следующим образом: для печати принимаем в качестве исходных данных любой мусор, пытаемся распарсить его как GS1 DataMatrix, разбираем на косточки. Если всё прошло удачно, то конвертируем в правильный формат, чтобы принтер это понял; а при сканировании перепроверяем данные от сканера, делая таким образом вывод о правильности печати.
Для этого нам, конечно, приходится работать на нативном уровне и со сканером мобильных устройств, и с принтерами, чтобы всё это было правильно ими интерпретировано, а мы собирали максимально полную информацию.
Выполним еще одно упражнение: посмотрим, какого размера должен быть штрихкод GS1 DataMatrix для хранения кода маркировки обуви и легпрома.
На сайте «Честного знака» написано, что код маркировки обуви должен содержать следующие поля (для легпрома те же требования):
Для каждого из этих полей в данных для штрихкода должен быть указан идентификатор применения GS1 (AI, application identifier).
Таблица codeword для DataMatrix
Таблица, объясняющая кодирование КМ обуви в DataMatrix:
Что | Формат | Codewords | Сколько байт | Всего байт, минимум | Всего байт, максимум |
---|---|---|---|---|---|
— | Codeword [232] | 1 | 1 | 1 | |
AI (00) | — | Codeword [130] | 1 | 2 | 2 |
GTIN | 14 цифр | Codeword со [130] по [229] | 7 | 9 | 9 |
AI (21) | — | Codeword [141] | 1 | 10 | 10 |
s/n | 13 знаков ASCII | Codewords с [1] по [128] и со [130] по [229] | от 7 до 13* | 17 | 23 |
— | Codeword 30 | 1 | 18 | 24 | |
AI (91) | — | Codeword 221 | 1 | 19 | 25 |
Ключ проверки | 4 цифры | Codeword с 130 по 229 | 4 | 23 | 29 |
AI (92) | — | Codeword 222 | 1 | 24 | 30 |
Код проверки | 88 знаков ASCII | Codewords с [1] по [128] и со [130] по [229] | от 44 до 88* | 28 | 118 |
* если в данных для штрихкода есть пары подряд идущих цифр, то они будут кодироваться одним байтом, а не двумя (Codewords со [130] по [229]), и это экономит байты.
Как видно, размер данных в теории может меняться в широких пределах от 68 до 118 байт. На практике разброс меньше, длина ближе к 118, потому что в серийном номере и в криптокоде мало цифр и много знаков препинания, включая скобки.
Согласно GS1 DataMatrix Guideline, такие данные укладываются в штрихкоды размером от 36х36 до 44х44 (колонок и строк битов, не миллиметров). В миллиметрах размер будет зависеть от разрешающей способности принтера (обычно это 203-600 dpi).
Таблица из GS1 DataMatrix Guideline
А как же голая Эмма Уотсон? Рассмотрим в следующей статье.