Технологии штрихкодирования
Штрихкоды были изобретены в США в конце 1940х двумя студентами Норманом Вудлендом и Бернардом Сильвером как средство автоматизированной обработки информации о товарах (патент #2612994 от 1952 года). Существует известная легенда о том, что первым в мире товаром со штрихкодом была жевательная резинка Wrigley. На самом деле Wrigley была первым товаром из продовольственной тележки, с которого был считан штрихкод при проведении демонстрации новой технологии в магазине сети Marsh в городе Трой, Огайо. Помимо Wrigley в тележке были и другие товары со штрихкодом, но кассир выбрал первыми 10 пачек именно этой знаменитой жевательной резинки.
Тот факт, что часто пишут «жевательная резинка Wrigley была первым товаром со штрихкодом», уже сам по себе говорит о плохом понимании что тут к чему. Ну представьте себе: какой смысл тратиться на печать штрихкода, если его негде и нечем считать? Кто станет оснащать магазин сканерами ради жевательной резинки? Внедрение подобных технологий требует создания огромной инфраструктуры и изменения бизнес-процессов множества торговых и производственных компаний. Только положение крупного закупщика могло сподвигнуть производителей на технологическое изменение упаковки и окупить вложенные инвестиции.
Настоящий прорыв в распространении штрихкодирования случился 1 сентября 1981 года с решением министерства обороны США использовать код на основе кодировки CODE39 для маркировки всего товара, закупаемого министерством на военные нужды. Точно так же сейчас локомотивами внедрения штрихкодов на вторичной упаковке (т.е. на коробках и ящиках) в России являются такие компании как Ашан и Мега, которые «вежливо намекают» на это производителям.
Что такое штрихкод
Штрихкод — это всего лишь один из способов машинного считывания информации. Если бы компьютеры ценой $50 умели быстро читать текст с коробок, как это делает человек, никаких штрихкодов не понадобилось бы. Штрих коды бывают линейные (1D) и двумерные (2D). Линейный код можно увидеть на пачке сока или сигарет, а двумерный - на алкогольной акцизной марке. Сам по себе любой линейный штриховой код — это своеобразная азбука Морзе из точек и тире в виде полосок разной ширины с одним важным дополнением: буквы штрихкода сильно отличаются друг от друга, а используемые «правила письма» и «знаки препинания» позволяют нелишний раз проверить правильность прочитанного. Известно, что в штрихкоде не спрятано ничего интересного кроме тех самых цифр, что уже написаны под ним:
Пример кода EAN13
Т.е. «закодировано» в данном случае не значит «зашифровано и спрятано». Возникает вопрос: почему так много полосок и так мало информации? В цифрах снизу это занимает намного меньше места! Мы привыкли, что при компьютерном кодировании целые энциклопедии умещаются на одной пылинке, а тут такой расход бумаги. Этому есть сразу несколько причин. Причина №1 - чтобы кассиру было легче найти штрихкод. Причина №2 - чтобы мелкие повреждения не смогли исказить информацию. Причина №3 - уже упомянутые буквы и правила письма; чтобы трижды себя перепроверить, черточек не жалеют. И причина №4 - компьютеры за $50 не умеют (когда-то не умели) читать слишком мелкий «текст».
Вопрос: правда ли, что в штрихкоде «зашита» информация о цвете, размере или цене товара? Ответ на него требует объяснений и позволяет понять, что представляют из себя штрих-коды с точки зрения бизнеса.
Какие бывают кодировки и что это такое
Существует большое количество различных типов штрих-кодов, и это объясняется разными требованиями разных бизнесов, т.е. областью применения. Т.к. штрихкод - это особый язык, у любого типа штрихкодов есть свой алфавит и свой словарь. Под алфавитом понимается правила кодирования отдельных цифр, букв и других знаков, дозволительных в данной системе кодирования, с помошью «штрихов». А под словарем - что означают эти цифры и буквы внутри кода, где они должны стоять и т.д. Рассмотрим это на примере кода EAN13:
Код EAN13
Код EAN13, наверное, самый распространенный код на планете, т.к. он присутствует на всех продовольственных товарах. EAN13 уникален тем, что он имеет, кроме собственного формата (словаря) еще и собственный алфавит. Кроме EAN13 похожим алфавитом пользуется только EAN8. Т.е., если кто-то говорит «EAN13», он сразу как бы говорит и о системе кодирования, и о формате, и о том, как это выглядит:
Разбор кода EAN13
На рисунке видно, что код состоит из двух групп цифр, ограниченных разделителями (в подписи первая цифра стоит отдельно, но кодируется она вместе с первой группой). Последняя цифра кода - чексумма, вычисляемая по определенной формуле из оставшихся 12-ти, - которая используется таким образом: если сканер неверно прочтет какие-то цифры внутри кода, но верно прочтет чексумму (например, ему «покажется», что вместо «2457852111114» на коробке написано «2417852111114»), то можно будет вычислить чексумму для первых 12-ти прочтенных цифр и увидеть, что она не совпадает с 13-й прочтенной цифрой, а должна (в данном случае чексуммой кода «241785211111» является не «4», а «8», т.е. сканер тогда уж должен был бы прочесть «2417852111118», а не «2417852111114»), что и позволяет поймать ошибку.
если же сканер верно прочел первые 12 цифр, но неверно прочел чексумму, то она опять не совпадет с вычисленной, и верить такому коду (или сканеру) тоже нельзя.
Как видно, в EAN13 (как и в EAN8) нет информации о цвете или размере, да и уместиться ей негде. Понятно, что некоторым странам не хватает цифр, и тогда им выделяются целые блоки номеров. Например, 000-119 - США и Канада, 400-440 - Германия, 460-469 - Россия. Поскольку любой код, начинающийся с 0 или 1, - это США или Канада, то для их собственных товаров цифры EAN13 распределяются так: первая цифра - страна, следующие 6 - производитель, а оставшиеся 5 - код товара. Например «0|049000|.....» - Сoca-Cola Corporation. Но некоторым компаниям не хватает 3х, 4х, 5ти цифр для нумерации всех своих товаров, и тогда им тоже выдаются блоки номеров.
Помимо блоков номеров, любые коды EAN13, которые начинаются с префиксов 20-29, могут быть использованы предприятием для целей внутреннего учета (т.е. такие штрихкоды будут уникальны только внутри организации).
Итак, в коде присутствуют 13 цифр, из которых использовать для внешней торговли организация может только 3, 4 или 5 цифр (по договоренности с Юнискан). Где же тогда хранится цвет и размер? В электронном каталоге производителя! Т.е. можно попросить производителя выслать Excel-файл с кодами и описаниями товаров. Итак, ответ для кода EAN13 найден: «нет, в коде EAN13 не хранится информации о цвете, размере или других характеристиках конкретной единицы товара». В нем хранятся страна, фирма и номер товара. При этом никто в магазине не воспринимает EAN13 как нечто, что можно разобрать по частям. В подавляющем большинстве случаев все 13 цифр EAN13 используются как уникальный цифровой код номенклатуры, наподобие артикула. А что насчет других кодов? Читаем дальше.
Код EAN128
В отличие от EAN13, у кода EAN128 уникальный только словарь. Для построения EAN128 используется алфавит CODE128. Т.е. если кто-то говорит «CODE128», то он имеет в виду алфавит (какие цифры и буквы какими черточками обозначаются). А если кто-то говорит «EAN128», то он имеет в виду систему кодирования свойств конкретного товара или груза на основе кодировки CODE128. Число 128 в EAN128 не означает, что в нем подряд должно стоять 128 цифр. Число 128 попало в EAN128 из CODE128, а в CODE128 оно обозначает количество символов, которое способен отобразить данный алфавит, т.е. все 128 символов стандартного ASCII. отношения между EAN128 и CODE128 такие же, как между формой Торг-12 и русским языком. Используя русский язык можно писать о чем угодно, но Торг-12 имеет свой формат, и не все, что написано по-русски, является формой Торг-12.
EAN128 является, по-видимому, вторым по распространенности кодом на планете, и вот почему: это код для обмена информацией о товарах и грузах между производственными, транспортными и торговыми компаниями:
Разбор кода EAN128
Группы цифр в скобках под кодом называются AI (Application Identifiers - коды применения) и объясняют как интерпретировать цифры, идущие следом. Например, AI с кодом 15 задает последний срок, когда товар еще можно продавать, в формате «2 цифры дня, 2 цифры номера месяца, 2 цифры года» (т.е. ддММгг). A, например, AI с кодом 330y задает вес груза (паллеты или контейнера) в килограммах, используя также 6 цифр, при этом «y» должен быть заменен на число десятичных знаков в интерпретации этих 6 цифр. Все эти вещи определены стандартом на EAN128.
GTIN, используемый в качестве значения AI(02), - это глобальный код товара (Global Trade Item Number), который будет отличаться в зависимости от того, что у нас указано на самой упаковке товара. Если мы пользуемся EAN13, то GTIN будет равен «0|EAN13»(т.е. «0» и потом EAN13), а если мы пользуемся EAN8, то GTIN будет равен «000000|EAN8», ну и точно так же с другими кодами товара (UCC12, EAN/UCC-14 и т.д.).
Что интересно, стандарт задает значение и формат как минимум 90 кодов применения, упоминая номера накладных, индексы адресов, объемы, серийные номера и т.д., но ничего не говорит о цвете. Так же нет ни слова о размере свитера или обуви. Итак, ответ найден: «нет, в коде EAN128 не хранится информации о цвете, но да, в коде хранятся данные о весе и габаритах конкретного контейнера или груза с товаром».
Где же взять цвет и немного о кодах CODE
Помимо CODE128 существуют еще CODE11 и CODE39 (не считая других, которые не-CODE). Соответственно, CODE11 может кодировать 10 цифр и тире (например, можно написать «110-2102-43»), а CODE39 может кодировать 10 цифр, 26 латинских букв, тире, а также пробел и символы «.+/%$», что, вообще-то, дает 44 символа (в данном случае 39 означает не число символов, а «3 из 9», когда каждый символ кодируют 9 полосок, из которых 3 «толстые»).
Наиболее популярным и распространенным для внутренних целей является CODE39. Он был создан в 1974 году в компании Intermec Дэйвидом Аллаисом и Рэем Стивенсом. Единственный недостаток CODE39 - он проигрывает CODE128 в компактности.
Так где же взять цвет? Ответ прост. Для этого используются нестандартные внутренние штрихкоды, использующие алфавит CODE11, CODE39 или CODE128. На коды с цветами не написаны стандарты, и это понятно: слишком много существует разнообразия в обозначении цветов и размеров. Такие коды можно и нужно разрабатывать самим.
Целесообразность внедрения штрих-кодов
Как и всё остальное, технологии окупаются только там, где их применение целесообразно. Все технологии в бизнесе можно условно разделить на 2 группы: 1) инвестиционно-затратные, которые уменьшают себестоимость единицы продукции или услуги, и 2) увеличивающие себестоимость, но приносящие выгоду в чем-то другом. Например, покупка компьютера ускоряет набор и правку документов, а пастеризация молока уменьшает потери.
С введением штрих кодов нужно делать больше операций на каждую коробку и паллету, что, по идее, должно увеличить время приемки. Однако сканирование и вообще занесение данных о принимаемом товаре не является самым долгим делом при приемке. Машина часами ждет подачи, документы забиваются в информационную систему, человек водит пальцем по накладной в поисках нужной строки... Например, в наименовании по накладной пару слов переставлено по сравнению с заявкой и тем, что написано на коробе. Кладовщик пойдет пешком к операционистам, постоит подождет, пока оператор договорит по телефону. Минута-вторая и десяти минут как не бывало. Итак, основные факторы потери времени при выполнении складских операций:
- Необходимость пешком относить/приносить бумажные документы;
- Ручной подсчет и суммирование количества;
- Согласование бумажных поручений, их перепроверка и расшифровка почерков.
Все три пункта сводятся к использованию мобильных компьютеров и беспроводной связи. Зачем тогда нужно штрихкодирование и штрихкоды? Затем, что компьютеру пока нельзя сказать "Мороженное ванильное, 24 коробки по 8 килограммов", чтобы он все понял. Затем, что даже глядя на коробки с колбасой, человек может сказать "Мороженное ванильное... (и дальше полная ерунда)". А так он сканирует штрихкод - и компьютер всё понял.
Если обклейка штрих кодами всего входящего товара явно увеличивает время приемки, то выгоды нужно искать на другом уровне. И выгоды эти проявляются при а) увеличении пропускной способности склада и б) увеличении номенклатурного ряда.
Штрихкоды сами по себе никого не дисциплинируют и ничью работу на себя не берут. Они не дают гарантий отсутствия ошибок и вообще каких-либо гарантий. Это принципиально невозможно. Работу после внедрения штрихкодов можно сравнить с грамотностью документов после установки Microsoft Word с проверкой орфографии. Формально набираемые на компьютере письма не стали более понятными и "правильными". Однако добрые 99% ошибок в орфографии и 50% в пунктуации исчезнут. Можно, конечно, продолжать писать "инвентаризация" и не обращать внимание на красную волнистую линию. То же самое может делать и рабочий склада, сканируя один товар, а отгружая другой, или сканируя одну ячейку, а беря из другой. Потому как, вообще говоря, он может вместо исполнения документа взять под мышку коробку с товаром и пойти домой.
Технология рассчитана на добросовестных работников, которые не хотят злонамеренно отгрузить не то, принять на склад лом по цене запчастей или "потерять"/"забыть" на складе пару тонн мороженных котлет. Не хотят, но из-за спешки, большого объема работы или большого количества похожих товаров, допускают ошибки.
В то же время подбор товара к выдаче становится намного удобнее и быстрее, поскольку на терминале видно, сколько и чего нужно взять из каждой ячейки. При этом каждая ячейка обладает собственным штриховым кодом и программа терминала требует сканировать его, чтобы убедиться в адресе хранения. Конечно, можно использовать и бумажные поручения на подбор, только их а) придется печатать и б) вводить с них в компьютер результат.
Резюмируя, повторим еще раз: штрих-коды позволяют справиться с повальным количеством ошибок при увеличении нагрузки на склад, росте числа поставок и номенклатурного ряда. Если же товаров два, клиент один, а складские работники все равно заблудятся в трех соснах, никакие штрих-коды не спасут.