Данный раздел содержит общие сведения, касающиеся штрихкодирования, нюансы, связанные с формированием изображения штрихкодов, а также методику штрихкодирования товаров на предприятии.
Формат EAN13
Формат EAN13 является расширением формата UPC-A. Данный формат позволяет кодировать 12 символов (цифры от 0 до 9), к которым добавляется справа контрольная (тринадцатая) цифра, значение которой однозначно расчитывается в соответствии с кодируемой последовательностью. Значение штрихкода UPC-A соответствует значению штрихкода EAN-13, у которого первый символ 0.
Кодируемая при помощи этого алгоритма последовательность символов, обычно, представляет уникальный международный номер товара EAN13/UCC, который является уникальным в международном масштабе.
Формат EAN8
Формат EAN8 является расширением формата UPC-E и представляет сокращённую форму EAN13. Данный формат позволяет кодировать 7 символов (цифры от 0 до 9), к которым добавляется справа контрольная (восьмая) цифра, значение которой однозначно расчитывается в соответствии с кодируемой последовательностью. Значение штрихкода UPC-E соответствует значению штрихкода EAN-8, у которого первый символ 0.
Формат Code 39
Существует также расширение Code 39, которое, по сути, представляет набор правил, по которым символы, не входящие в список допустимых для данного формата, кодируются при помощи последовательностей допустимых символов. Стандартное расширение дополняет список допустимых символов строчными буквами латиницы.
Формат Code 93
Формат Code 93 (также называется «USS-93») позволяет кодировать такую же последовательность символов, как и расширение Code 39, но при этом изображение штрихкода получается заметно меньше. К недостаткам формата можно отнести отсутствие возможности упаковки кодируемой информации.
Формат Industrial 2 of 5
Формат Interleaved 2 of 5
Формат Codabar
Формат Codabar (также называется «Ames code», «USD-4», «NW-7», «2 of 7 code») позволяет кодировать цепочку символов (цифры, некоторые знаки пунктуации) произвольной длины + один из 4 возможных (A, B, C, D) префиксов и один из 4 возможных суффиксов (также A, B, C и D).
К недостаткам данного алгоритма следует отнести отсутствие возможности упаковки кодируемой цепочки символов.
Формат Code 128
Формат Code 128 является форматом высокой плотности, позволяет кодировать цепочку символов (первые 128 символов ASCII-таблицы) произвольной длины. Формат поддерживает упаковку данных.
Формат EAN128
Формат RSS 14
Формат RSS 14 является, как и Code 128, форматом высокой плотности и позволяет кодировать цепочку символов (первые 128 символов таблицы ASCII) произвольной длины. При кодировании осуществляется упаковка кодируемой последовательности символов. К недостаткам можно отнести то, что штрихкоды данного типа поддерживаются ограниченным набором сканеров.
Формат Code 16k
Формат Code 16k является двумерным, штрихкод представляет последовательность одномерных штрихкодов (формат которых подобен Code 128), расположенных друг над другом, что позволяет увеличить плотность кодирования. К недостаткам алгоритма можно отнести то, то данный формат поддерживается ограниченным набором сканеров штрихкода.
Формат PDF-417
Формат PDF-417 является одним из самых распространённых двумерных форматов штрихкодирования. Данный формат позволяет кодировать последовательность символов кодовой страницы CP437, поддерживает ряд методов упаковки данных, а также параметризуемый алгоритм восстановления информации в случае повреждения изображения штрихкода.
Формирование изображения штрихкода
Необходимо отметить, что для корректного считывания изображения штрихкода сканерами, требуется, чтобы был достаточный контраст между тёмными и светлыми элементами штрихкода. В связи с этим существует ограничение на сочетания цветов элементов штрихкода.
Нормально считываются сканером следующие сочетания цветов:
Считываются при определённых условиях:
Не считываются при определённых условиях:
Также следует обратить внимание, что изображение штрихкода, в общем случае, нельзя масштабировать, т.к. при этом могут нарушиться соотношения ширины штрихов и пробелов штрихкода. Масштабирование, обычно, допускается в сторону увеличения изображения в целое число раз (этим, в частности, объясняется «скачкообразное» изменение размеров штрихкода при использовании элемента управления «1С:Печать штрихкодов»).
Методика штрихкодирования
При штрихкодировании товаров на предприятии, в первую очередь, следует уделить внимание уникальности используемых значений штрихкодов. В большинстве случаев в торговых точках осуществляется продажа товаров, на упаковки которых уже нанесён корректный штрихкод EAN13 или EAN8. При этом в случае, если существует необходимость задать штрихкоды для других товаров, применяется следующая методика: товарам назначается штрихкод EAN13, уникальный в пределах предприятия, значение которого начинается с цифры «2». При этом гарантируется, что ни для какого из товаров, на заводской упаковке которого содержится изображение штрихкода EAN13, не будет совпадения с присваиваемым самостоятельно штрихкодом (первая цифра «2» указывает на то, что используется «внутренний» штрихкод предприятия, уникальность которого должна обеспечиваться на предприятии самостоятельно).
Большинство весов, осуществляющих этикетирование весового товара при помощи EAN13, формируют штрихкод следующего формата:
Дополнительно Более подробно с описанием штрихкодов, их структурой и областью применения можно ознакомиться в подразделе «Штрихкоды» данного раздела.
Один из самых распространенных, т.к. он присутствует на всех продовольственных товарах. Аббревиатура EAN означает Европейский Номер Артикула (European Article Number).
Код EAN имеет свою историю, и это не самый первый код для товаров, который был придуман. Самым первым кодом для товаров, который получил большое распространение, был код UPC. UPC — Универсальный Код Продукта (Universal Product Code), но подходит для использования только в США и Канаде.
Когда «моду на штрихкод» решили перенять в Европе, встала проблема: какой код использовать, ведь UPC уже занят американскими и канадскими компаниями. В оригинальном UPC было 12 цифр, из которых одна — тоже чексумма, т. е. реально полезных только 11, которыми можно закодировать 1011 = десять миллиардов товаров.
Для выхода из ситуации было придумано решение — добавить одну лишнюю цифру, ничего при этом реально к штрихкоду не добавляя.
Поэтому при создании кода EAN13 решено было кодировать дополнительную 13ю цифру ничем иным, как чехардой кодировки первой (левой) группы цифр кода UPC. Если все цифры первой группы имеют обычную кодировку, как в оригинальном коде UPC, то 13я считается равной «0». А для того, чтобы закодировать «1», «2» и т. п. предусмотрена таблица замены обычной кодировки для отдельных цифр в первой группе на зеркальную инвертированную — это будет уже «неправильный» код UPC, и оригинальный американский сканер (вымерший) его бы не прочел.
EAN13 уникален тем, что он имеет, кроме собственного формата (словаря), еще и собственный алфавит. Кроме EAN13 похожим алфавитом пользуется только EAN8. Т. е., если кто-то говорит «EAN13», он сразу как бы говорит и о системе кодирования, и о формате, и о том, как это выглядит:
Итак, код состоит из двух групп штрихов, ограниченных разделителями «||». EAN13 позволяет закодировать 12 значимых цифр. Последняя цифра кода — чексумма, всегда вычисляется по определенной формуле из важных 12-ти и используется следующим образом: сканер восстанавливает из штрихов все 13 цифр, а из первых 12ти считает чексумму. Если чексумма и 13я цифра совпали — код считан верно.
Если сканер неверно прочтет какие-то цифры внутри кода, но верно прочтет чексумму (например, ему «покажется», что вместо «2457852111114» на коробке написано «2417852111114»), то можно будет вычислить чексумму для первых 12-ти прочтенных цифр и увидеть, что она не совпадает с 13-й прочтенной цифрой, а должна (в данном случае чексуммой кода «241785211111» является не «4», а «8», т. е. сканер тогда уж должен был бы прочесть «2417852111118», а не «2417852111114»), что и позволяет поймать ошибку.
Если же сканер верно прочел первые 12 цифр, но неверно прочел чексумму, то она опять не совпадет с вычисленной, и верить такому коду (или сканеру) тоже нельзя.
Как видно, код страны состоит из 3х цифр:
000-119 — США и Канада
Поскольку любой код, начинающийся с 0 или 1, — это США или Канада, то для их собственных товаров цифры EAN13 распределяются иначе: первая цифра — 0 или 1, следующие 6 — производитель, а оставшиеся 5 — код товара. Например «0|049000|…» — Сoca-Cola Corporation. Некоторым компаниям не хватает цифр для нумерации всех своих товаров, и тогда им выдается по много номеров производителя сразу.
Обратите внимание. В общем случае в коде EAN13 не хранится информации о цвете, размере или других характеристиках конкретной единицы товара.
Существует довольно много кодировок товаров, т. е. способов назначить им номера. Помимо EAN13 и другие для продовольственных товаров, ISBN для книг и т. д. Всё это различные способы сделать одно и то же — выдать единице товара уникальный номер.
GTIN (Global Trade Item Number) — это глобальный код товара в самом общем смысле. Единое обозначение требуется во множестве приложений — например для прайс-листов или в маркировке грузов.
Чтобы получить GTIN, конкретный код с упаковки товара дополняется лидирующими нулями до 14 цифр. Если мы пользуемся EAN13, то GTIN будет равен «0|EAN13″(т.е. «0» и следом EAN13), а если мы пользуемся EAN8, то GTIN будет равен «000000|EAN8», ну и точно так же с другими кодами товара. Предполагается, что кодов товара длиннее 14 цифр не встречается.
Код EAN128
EAN128 предназначен для передачи данных о грузе между компаниями.
Обратите внимание. В коде EAN128 хранятся данные только о весе и габаритах конкретного контейнера или груза с товаром, но нет данных о цвете.
Для построения штрихкода используется алфавит CODE128. Число 128 в EAN128 не означет, что в нем подряд должно стоять 128 цифр. Число 128 попало в EAN128 из CODE128, а в CODE128 оно обозначает количество символов, которое способен отобразить данный алфавит, т. е. все 128 символов стандартного ASCII.
Группы цифр в скобках под кодом, такие как (02), (15), (3303) и т. д., называются AI (Application Identifiers — коды применения) и объясняют как интерпретировать цифры, идущие следом. Например, AI с кодом 15 задает последний срок, когда товар еще можно продавать, в формате «2 цифры года, 2 цифры номера месяца, 2 цифры дня» (т.е. ггММдд). A, например, AI с кодом 330y задает вес груза (паллеты или контейнера) в килограммах, используя также 6 цифр, при этом «y» должен быть заменен на число десятичных знаков в интерпретации этих 6 цифр. Все эти вещи определены стандартом на EAN128.
Носители данных в системе GS1 в лице кодов EAN-8 и EAN-13 признаны во всем мире. Она предоставляют пользователю поистине безграничные возможности по организации учета и контроля, продаж и прослеживаемости. Но в то же самое время не могут выполнить самых простых вещей: представить в символе штрихового кода дополнительную информацию, не цифровую, а алфавитно-цифровую, или иные широко используемые знаки. Часто требуется, чтобы вместе с информацией о предприятии и уникальном идентификаторе предмета торговли была доступна и информация, помогающая проведению различных логистических операций, например, складированию или транспортным перевозкам. А в этом случае возможностей стандартного кода EAN-13 явно недостаточно. При современном уровне оснащения складов, терминалов, перевозчиков для поддержания соответствующего уровня, скорости, достоверности и качества обработки операций требуется информационный носитель, объединяющий все преимущества кодов GS1 и имеющий возможность кодировать дополнительную информацию для всех сторон цепи поставок.
Система идентификации на основе Глобального номера предмета торговли (GTIN) является незначащей системой. Она используется для идентификации предметов торговли, но не для их классификации или представления информации о них. Фиксированная информация о товарах вводится пользователем в свои компьютерные файлы и извлекается из них по номеру изделия. Этот подход является логичным и эффективным, поскольку коды при этом не становятся чрезмерно громоздкими, «набитыми» различной информацией, которая может (а, может, и нет) пригодиться конкретному пользователю, и позволяет удовлетворять растущие потребности в информации и классификации, невзирая на ограничения, налагаемые самой структурой кода. Успех этой системы привел на практике к растущему спросу на отображение все большего объема информации символами штриховых кодов. И выход был найден в применении уже хорошо зарекомендовавшей себя символики штрихового кодирования Code 128.
Символика UCC/EAN-128 является подмножеством символики Code 128. Ее использование лицензировано исключительно для целей GS1. До недавнего времени область применения символов UCC/EAN-128 ограничивалась только логистикой и не предназначалась для считывания с изделий, проходящих через розничные точки расчета. Однако в настоящее время в связи с повышенным вниманием к безопасности пищевых продуктов и в соответствии с этим внедрением процедур прослеживаемости использование UCC/EAN-128 становится возможным и даже необходимым на потребительской упаковке.
Идентификаторы применения (ИП) GS1 могут использоваться для более эффективного движения товаров по цепи поставок. Информация, содержащаяся в кодах с ИП, применяется для организации перемещения товарной продукции как внутри предприятия, так и вне его. Она может быть использована во всем мире и независимо от отраслевой принадлежности предприятия.
ИП разработаны для обеспечения максимальной гибкости, чтобы с высокой стоимостной эффективностью разрешать разнообразные ситуации, возникающие в сфере распределения, в рамках международной торговли. Использование ИП очень похоже на универсальный язык, где используются типовые идентификаторы. «Слова» установлены в соответствии со стандартизированной «орфографией» и «определениями». Эти «слова» могут использоваться при необходимости для создания «сообщения», которое требуется для определенного типа товаров и сферы распределения. «Сообщения», переданные при помощи этого языка, понятны всем и везде.
Идентификаторы применения также дополняют (а не заменяют) другие идентификаторы ресурсов GS1, которые были разработаны, в первую очередь, для идентификации товаров. Промышленность выразила заинтересованность в систематизации идентификации не только товара. ИП предоставляют такую возможность. В дополнение к первоначальной идентификации товара ИП добавляют необходимую гибкость обмену информацией между предприятиями. В сообщения, кодируемые в символах штрихового кода, могут быть теперь включены номер серии/партии, уникальная идентификация транспортной упаковки, количество и величина предметов торговли в соответствующих единицах и другие атрибуты, характеризующие товар и логистическую единицу. Символика UCC/EAN-128 предлагает альтернативный метод представления некоторых символов штрихового кода в системе GS1, находящихся в обращении, другими символами. Однако эта особенность вводится лишь с тем, чтобы расширить возможности эффективного конструирования сообщений. Идентификаторы применения позволяют закодировать в символах UCC/EAN-128 значительно больший объем информации, чем это может быть сделано с применением неструктурированных данных в символах штрихового кода. Это интегральный коммуникационный инструмент, обладающий способностью объединять информацию и товары. Он дополняет имеющиеся процессы идентификации, в которых использовались структуры данных системы GS1. Он как бы подсоединяет физические товары к информации, передаваемой через каналы электронного обмена данными. Стандарт может эффективно использоваться для облегчения перестройки управления информационными процессами бизнеса.
Пример символа UCC/EAN-128.
Таблица 1. Примеры идентификаторов применения и описываемых форматов данных
* Описание формата символа: n = числовые знаки an = алфавитно-цифровые знаки .. = поле переменной длины цифра = количество знаков
** X показывает положение десятичной точки
Пример символа UCC/ EAN-128, представляющего Глобальный номер предмета торговли GTIN, дату реализации и номер партии.
Строка элемента – порция данных определенной структуры и значения, включающая в себя идентификационную и информационную части и представленная на носителе данных, установленном в системе GS1. Идентификатор применения – поле из двух и более знаков, расположенное в начале строки элемента, которое однозначно определяет ее формат и значение.
Каждый ИП содержит от двух до четырех знаков, за которыми следуют поля данных, которые он идентифицирует. Для того чтобы сократить запись, более широко используются ИП только из двух цифр.
За ИП следуют данные, которые в целом могут быть буквенными и/или цифровыми знаками, количество которых может достигать 30. Поля данных имеют либо фиксированную, либо переменную длину. Поле фиксированной длины всегда должно равняться соответствующей ему длине данных. Максимальная длина поля данных определена для каждого поля переменной длины. Этот максимум определен для облегчения программирования пользовательских систем. Кодируемые данные, используемая структура и ограничения по кодируемым знакам в дальнейшем будут описываться для каждого ИП.
ИП и их поля данных кодируются в символах штрихового кода в соответствии со спецификацией UCC/EAN-128, подмножеством Code 128. Символ UCC/EAN-128 содержит специальный знак – ФУНКЦИОНАЛЬНЫЙ ЗНАК 1 (FNС 1), который является первым знаком после знака СТАРТ. Эта комбинация зарезервирована исключительно для использования GS1.
Указанное сочетание типовых форматов данных и уникальной структуры символа штрихового кода обеспечивает совместимость кодирования между различными компаниями, позволяя в то же время компаниям, которые не заинтересованы в каких-либо особенных типах данных, программировать свое оборудование так, чтобы игнорировать эти данные.
Символика UCC/EAN-128 является чрезвычайно гибкой. Она позволяет представлять несколько строк элементов в одном символе штрихового кода. Такой подход называется соединением.
Несколько ИП и их поля данных могут быть эффективно объединены в один символ штрихового кода. В том случае, когда два первых знака ИП соответствуют определенной длине индикатора, разделитель поля не требуется. Следующий ИП идет сразу после последнего знака в поле данных предыдущего ИП. За полем переменной длины должен непосредственно следовать знак разделителя поля, если только это не последнее поле в символе штрихового кода. В качестве разделителя используется FNC 1.
Примечание Когда требуется объединить несколько ИП и поля их данных, где только одно из полей имеет переменную длину, рекомендуется разместить его в конце символа. В этом случае не требуется знак разделителя.
Для определения максимальной длины символа EAN/UCC-128 необходимо рассмотреть два параметра: физическую длину, которая зависит от количества закодированных знаков и используемого фактора увеличения, и количество закодированных знаков данных, исключая вспомогательные знаки.
Максимальная длина любого символа EAN/UCC-128 может быть в следующих пределах:
Физическая длина символа EAN/UCC-128, включая светлые поля, не должна превышать 16,5 см.
Максимальное количество закодированных знаков данных, включая ИП и FNC 1, если он используется как разделительный знак, но исключая вспомогательные знаки и контрольный знак символа, составляет 48.
Там, где это возможно, ИП и поля данных фиксированной длины должны состоять из четного числа знаков. Это уменьшает длину символа, т. к. символика EAN/UCC-128 может упаковывать пару цифр в один знак символа. Хотя символика EAN/UCC-128 может кодировать алфавитно-цифровые поля любой длины, поля данных будут занимать меньше места, если они состоят только из чисел и имеют четное число знаков. Например, когда присваивается номер партии, он должен иметь четное число цифр, чтобы получился наикратчайший символ штрихового кода. Отметим, что ИП, состоящие из трех цифр, такие как «номер заказа на товар», будут требовать нечетного количество цифр данных, чтобы получить поле четной длины.
Символ UCC/EAN-128 имеет переменную длину, зависящую от числа и вида кодируемых знаков, а также от качества печати. Для заданной длины данных размер символа варьируется в установленных пределах с учетом разного качества печати, достигаемого используемым способом печати. Символ предназначен для двунаправленного сканирования стационарным или переносным сканером.
Символы UCC/EAN-128 могут печататься с коэффициентом увеличения от 25 % до 100 %. Для обеспечения эффективного сканирования в любой среде, включая конвейерное сканирование, должен использоваться минимальный коэффициент увеличения 50 %.
Только символика UCC/EAN-128 позволяет кодировать помимо идентификационных данных дополнительную информацию. Символ UCC/EAN-128 может использоваться с идентификатором применения 01 для кодирования номеров GTIN-12, GTIN-13 или GTIN-14.
Если возникает необходимость напечатать дополнительную, помимо идентификационной (серийный номер и т. п.), информацию на предмете торговли, который уже маркирован символом EAN-13 или EAN-14 (ITF-14), можно выбрать один из следующих вариантов:
Нанести этикетку с дополнительной информацией в символе UCC/EAN-128 в дополнение к ранее нанесенному символу EAN-13 или ITF-14. Все символы должны быть выровнены по горизонтали. Этот вариант должен использоваться, если у клиентов еще нет возможности считывать символы UCC/EAN-128.
Нанести этикетку, закрывающую существующие символы. В этом случае идентификационный номер, представленный в первоначальном символе, должен быть напечатан на новой этикетке вместе с выбранными дополнительными данными, предпочтительно в символике UCC/EAN-128.
Использование ИП регламентировано установленными правилами. Некоторые ИП всегда должны использоваться вместе с другими ИП, например, за ИП 02 всегда должен следовать ИП 37. Некоторые ИП никогда не должны использоваться вместе, например, ИП 01 и ИП 02. Предприятия не могут произвольно выбирать ИП из списка, они должны соблюдать установленные правила.
Контрольный знак символа должен присутствовать в символе как последний, перед знаком СТОП. Кроме того, отдельные ИП могут требовать использования контрольного знака данных, и это определяется, соответственно, в описаниях индивидуального формата данных. Отдельные пользователи могут также выбрать вариант использования контрольных чисел для собственных целей, в каком-либо участке данных, выбранном на их собственное усмотрение (например, в используемых ими номерах партии).