Перейти к основному содержимому
Версия: 4.0

Шаблоны штрихкодов

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

Штрихкод представлен в виде графического изображения (как правило, представляющее собой сочетание черных и белых полос или похожих на них графических элементов), в котором в соответствии с тем или иным стандартом кодируются текстовые или числовые данные.

Штрихкоды используются для идентификации любых объектов учета. Они содержат информацию, которая помогает определить принадлежность товара к какой-либо категории, заданной пользователем (производителем).

Штрихкоды в торговле позволяют быстрее идентифицировать товар и рассчитать покупателя. Штрихкоды на складе также позволяют быстрее идентифицировать товар или даже правильно распознать дополнительные характеристики (если они указаны в штрихкоде).

Если на товаре нет штрихкода, с которого зашифрованные в нем данные считываются автоматически, то соответствующие данные подлежат обработке человеком вручную.

Существует большое количество различных типов штрихкодов, это объясняется разными требованиями разных бизнесов, т. е. областью применения.

Какие бывают кодировки ШК

панел�ь управления

Штрихкоды принято разделять по типу изображения на:

Линейные коды имеют вид горизонтального ряда вертикально расположенных линий, в которых закодированы определенный набор символов. Шифрование довольно простое, но его достаточно для идентификации каждой единицы товара даже в гипермаркете.

Основными стандартами линейных ШК являются: UPC/EAN-128, EAN-13, UPC-E, Code39, UPC-A, EAN-8.

Среди всех перечисленных стандартов наибольшую популярность получили первые два. Именно их можно увидеть на большинстве товаров в супермаркетах.

Линейные штрихкоды

EAN-13

Один из самых распространенных, т.к. он присутствует на всех продовольственных товарах. Аббревиатура 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

панель управления

Итак, код состоит из двух групп штрихов, ограниченных разделителями «||». EAN13 позволяет закодировать 12 значимых цифр. Последняя цифра кода — чексумма, всегда вычисляется по определенной формуле из важных 12-ти и используется следующим образом: сканер восстанавливает из штрихов все 13 цифр, а из первых 12ти считает чексумму. Если чексумма и 13я цифра совпали — код считан верно.

Если сканер неверно прочтет какие-то цифры внутри кода, но верно прочтет чексумму (например, ему «покажется», что вместо «2457852111114» на коробке написано «2417852111114»), то можно будет вычислить чексумму для первых 12-ти прочтенных цифр и увидеть, что она не совпадает с 13-й прочтенной цифрой, а должна (в данном случае чексуммой кода «241785211111» является не «4», а «8», т. е. сканер тогда уж должен был бы прочесть «2417852111118», а не «2417852111114»), что и позволяет поймать ошибку.

Если же сканер верно прочел первые 12 цифр, но неверно прочел чексумму, то она опять не совпадет с вычисленной, и верить такому коду (или сканеру) тоже нельзя.

Как видно, код страны состоит из 3х цифр:

000-119 — США и Канада

400-440 — Германия

460-469 — Россия

Поскольку любой код, начинающийся с 0 или 1, — это США или Канада, то для их собственных товаров цифры EAN13 распределяются иначе: первая цифра — 0 или 1, следующие 6 — производитель, а оставшиеся 5 — код товара. Например «0|049000|…» — Сoca-Cola Corporation. Некоторым компаниям не хватает цифр для нумерации всех своих товаров, и тогда им выдается по много номеров производителя сразу.

Обратите внимание. В общем случае в коде EAN13 не хранится информации о цвете, размере или других характеристиках конкретной единицы товара.

GTIN

Существует довольно много кодировок товаров, т. е. способов назначить им номера. Помимо EAN13 и другие для продовольственных товаров, ISBN для книг и т. д. Всё это различные способы сделать одно и то же — выдать единице товара уникальный номер.

GTIN (Global Trade Item Number) — это глобальный код товара в самом общем смысле. Единое обозначение требуется во множестве приложений — например для прайс-листов или в маркировке грузов.

Чтобы получить GTIN, конкретный код с упаковки товара дополняется лидирующими нулями до 14 цифр. Если мы пользуемся EAN13, то GTIN будет равен «0|EAN13"(т.е. «0» и следом EAN13), а если мы пользуемся EAN8, то GTIN будет равен «000000|EAN8», ну и точно так же с другими кодами товара. Предполагается, что кодов товара длиннее 14 цифр не встречается.

EAN-128

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.

Cписок идентификаторов EAN128

AIОписание по-английскиОписание по-русскиФормат
00Serial Shipping Container Code (SSCC-18)Уникальный код большого контейнера в формате SSCC-1818 цифр
01Shipping Contained Code (SSCC-14)Код малого контейнера в формате SSCC-1414 цифр
02Number of containers contained in another unit (used with AI 37)GTIN единицы груза, для которого в AI37 указано сколько таких единиц находится в контейнере14 Digits
10Batch NumbersНомер партии (поставки)от 1 до 20 буквы/цифры
11Production DateДата производстваГГММДД
(две цифры года,
две месяца и две дня)
13Packaging DateДата упаковкиГГММДД
15Sell By Date (Quality Control)Желательно продать до датыГГММДД
17Expiration Date (Safety Control)Срок годностиГГММДД
20Product VariantПодваринт товара (дополнительно к GTIN)2 цифры
21Serial NumberСерийный номерот 1 до 20 буквы/цифры
22HIBCC Quantity, Date, Batch and LinkСпециальное поле индустрии здравоохранения: количество, дата, партия и чексумма поляот 1 до 29 буквы/цифры
235Lot NumberНомер лотаот 1 до 28 буквы/цифры
240Additional Product IdentificationДополнительное поле для более точной идентификации продуктаот 1 до 30 буквы/цифры
250Second Serial NumberВторой серийный номерот 1 до 30 буквы/цифры
310yProduct Net Weight in KgВес нетто товара в кг6 цифр
311yProduct Length/1st Dimension (Meters)Длина (высота, любой 1й размер) товара в метрах6 цифр
312yProduct Width/Diameter/2nd Dimension (Meters)Ширина (диаметр, любой 2й размер) товара в метрах6 цифр
313yProduct Depth/Thickness/3rd Dimension (Meters)Глубина (толщина, любой 3й размер) товара в метрах6 цифр
314yProduct Area (Square Meters)Площадь товара в м.кв.6 цифр
315yProduct Volume (Liters)Объем товара в литрах6 цифр
316yProduct Volume (Cubic Meters)Объем товара в кубических метрах6 цифр
320yProduct Net Weight (Pounds)Вес нетто товара в фунтах6 цифр
321yProduct Length/1st Dimension (Inches)Длина (высота, любой 1й размер) товара в дюймах6 цифр
322yProduct Length/1st Dimension (Feet)Длина (высота, любой 1й размер) товара в футах6 цифр
323yProduct Length/1st Dimension in (Yards)Длина (высота, любой 1й размер) товара в ярдах6 цифр
324yProduct Width/Diamater/2nd Dimension (Inches)Ширина (диаметр, любой 2й размер) товара в дюймах6 цифр
325yProduct Width/Diameter/2nd Dimension (Feet)Ширина (диаметр, любой 2й размер) товара в футах6 цифр
326yProduct Width/Diameter/2nd Dimension (Yards)Ширина (диаметр, любой 2й размер) товара в ярдах6 цифр
327yProduct Depth/Thickness/Height/3rd Dimension (Inches)Глубина (толщина, любой 3й размер) товара в дюймах6 цифр
328yProduct Depth/Thickness/Height/3rd Dimension (Feet)Глубина (толщина, любой 3й размер) товара в футах6 цифр
329yProduct Depth/Thickness/Height/3rd Dimension (Yards)Глубина (толщина, любой 3й размер) товара в ярдах6 цифр
330yContainer Gross Weight (Kg)Вес брутто контейнера в кг6 цифр
331yContainer Length/1st Dimension (Meters)Длина (высота) контейнера в метрах6 цифр
332yContainer Width/Diameter/2nd Dimension (Meters)Ширина (диаметр) контейнера в метрах6 цифр
333yContainer Depth/Thickness/3rd Dimension (Meters)Глубина (высота, толщина) контейнера в метрах6 цифр
334yContainer Area (Square Meters)Площадь контейнера в кв.м.6 цифр
335yContainer Gross Volume (Liters)Общий объем контейнера в литрах6 цифр
336yContainer Gross Volume (Cubic Meters)Общий объем контейнера в кубических метрах6 цифр
340yContainer Gross Weight (Pounds)Общий вес контейнера в фунтах6 цифр
37Number of Units Contained (Used with AI 02)Количество единиц товара в контейнереот 1й до 8ми цифр
400Customer Purchase Order Numberrchase Order NumberСоответствующий номер заказаот 1 до 29 буквы/цифры
410Ship To/Deliver To Location Code (EAN13 or DUNS code)Куда доставить в виде кода EAN13 или DUNS13 цифр
411Bill To/Invoice Location Code (EAN13 or DUNS code)Куда доставить счет в виде кода EAN13 или DUNS13 цифр
412Purchase From Location Code (EAN13 or DUNS code)Где было куплено в виде кода EAN13 или DUNS13 цифр
420Ship To/Deliver To Postal Code (Single Postal Authority)Почтовый индекс доставкиот 4 до 12 цифр
8001Roll Products — Width/Length/Core Diameterять счет на оплатуДлина, ширина или диаметр центрального ролика для товаров в рулонах14 цифр
8002Electronic Serial Number (ESN) for Cellular Phone илиESN мобильного телефона, если груз — мобильный телефонот 1 до 20 цифр
8003GTIN and Serial Number of Returnable AssetGTIN и серийный номер той части груза, которую после доставки требуется вернуть назад (упаковка, документы).14 цифр GTIN + от 1 до 16 буквы/цифры
8004UPC/EAN Serial Identification
8005Price per Unit of MeasureЦена за единицу6 цифр
90Mutually Agreed Between Trading PartnersМожет использоваться по договоренности между поставщиком, экспедитором и покупателемот 1 до 30 буквы/цифры
91Internal Company CodesДля внутреннего использованияот 1 до 30 буквы/цифры
99Internal Company CodesДля внутреннего использованияот 1 до 30 буквы/цифры

«y» — цифра, обозначающая точность после запятой. Например, AI 330y = 3304 будет означать, что в шести цифрах веса четыре их них будут стоять после запятой и «(3304)123456» будет равно 12,3456 кг.

Двумерные штрихкоды

Для маркировки товаров используется штрихкод GS1 DataMatrix. Он позволяет кодировать идентификационные ключи системы GS1, а также любую дополнительную информацию о товаре (вес, срок годности, номер серии, номер партии, дата изготовления).

Обратите внимание. С введением в РФ обязательной маркировки — формировать, печатать и проверять коды GS1 DataMatrix должна научиться практически каждая организация.

панель управления панель управления

ASCII 232 (FNC1); (01) Код продукта (он же GTIN); (17) Серийный номер; разделители групп данных ASCII 29 (GS) или ASCII 232 (FNC1); (10) Срок годности

В соответствии с требованиями GS1 DataMatrix Guideline, в начало получаемой строки кода необходимо добавлять признак символики — ASCII232 (так называемый FNC1). FNC1 — специальный символ, который указывает, что закодированная последовательность является штрихкодом GS1. В случае отсутствия этого символа технические средства не распознают код правильно и не смогут его корректно обработать.

В конце полей переменной длины необходимо использовать специальные символы GS1 — разделители. Они нужны для того чтобы идентифицировать отдельные блоки штрихкода. В качестве разделителей допустимо использовать либо символ ASCII 29 (GS), либо тот же FNC1. Визуально в подписи к ШК такие разделители не отображаются.

Основные ошибки, которые допускаются при формировании DataMatrix:

  • в начале не вставлен FNC1 (один специальный символ);
  • вместо спецсимвола FNC1 в начале вставлен текст «FNC1» (4 символа);
  • вместо спецсимвола FNC1 в начале вставлен GS (в начале должен быть FNC1 !!!);
  • не вставлены разделители групп данных после полей переменной длины (например, после серийного номера);
  • разделители групп данных вставлены не туда, где они должны быть (например, после поля (01) GTIN, которое имеет фиксированную длину и не требует в конце разделителя);
  • вместо спецсимвола GS вставлен текст «GS»;
  • используются программы или алгоритмы для печати, которые непоправимо искажают информацию (например, удаляют из кода символы, которые они считают лишними. Зачастую это арифметические символы, скобки и т.п.).

Пути решения возможных ошибок указаны в FAQ, раздел «Возможные ошибки в штрихкодах DataMatrix и GS1-128»..

Код транспортной упаковки (SSCC)

Serial Shipping Container Code — серийный код транспортной упаковки.

панель управления

Кто должен формировать SSCC

Выдержка из Постановления Правительства РФ от 5 июля 2019 г. № 860, часть VII:

40. Код идентификации транспортной упаковки обувных товаров представляется в виде одномерного штрихового кода, соответствующего международному стандарту GS1-128. Состав кода идентификации транспортной упаковки обувных товаров определяется участником оборота обувных товаров, осуществляющим агрегацию обувных товаров в транспортную упаковку.

Это означает что для транспортных упаковок коды не получится заказать в Честном знаке, нужно сделать их самостоятельно.

Что должно содержаться в SSCC

Создание SSCC регламентируется компанией GS1.

Структура этого кода следующая:

панель управления
  • Идентификатор применения (00) показывает, что поле данных содержит номер SSCC.

  • Цифра расширения используется для увеличения емкости серийного ссылочного номера в SSCC. Она присваивается компанией, создающей номер SSCC. Цифра расширения может быть от 0 до 9. Мы, например, используем расширение «1» для палет, а все остальные — для коробок.

  • Префикс компании GS1 — глобальный уникальный номер, присваиваемый члену GS1. Его выдаёт GS1, у вас он уже есть. Это первые 9 цифр из вашего GLN.

  • Серийный ссылочный номер — «серийная» часть номера, присваиваемая компанией-владельцем префикса КАЖДОЙ логистической единице для создания глобального уникального номера SSCC. Серийный номер контейнера. Должен быть уникальным в пределах одной цифры расширения.

  • Контрольное число — число, вычисляемое по специальному алгоритму из предшествующих цифр, служит для гарантии целостности данных.

Подробнее можно прочитать тут:

Пример кода SSCC

Пример кода транспортной упаковки для компании с GLN 4601234567892:

00046012345600000010

Здесь:

  • 00 — идентификатор применения, указывающий, что за ним следует поле данных с номером SSCC. Код транспортной упаковки всегда начинается с 00.
  • 0 — цифра расширения. Используем «0» для коробки, «1» для палеты. Если типов коробок несколько, то можно использовать следующую цифру из диапазона 2-9.
  • 460123456 — префикс компании GS1. Это первые 9 цифр из GLN компании.
  • 0000001 — серийный ссылочный номер. Серийный номер транспортной упаковки. Следующий будет 0000002 и т. д.
  • 0 — контрольное число.

Затем всё это кодируется в штрихкод формата GS1-128 (раньше назывался EAN-128):

панель управления

Готово!

Объект EAN-128

EAN128 – специальный объект, который позволяет получить программный доступ к данным штрихкода в формате EAN-128 (GS1-128). Он может содержать информацию о коде товара, количестве (весе), сроке годности и различных дополнительных полях, в зависимости от содержания исходного штрихкода.

Кем заполняется

При сканировании штрихкода EAN-128 (GS1-128) в действии выбора номенклатуры в сессию добавляется объект c именем EAN128, содержащий данные о распознавании штрихкода, и позволяющий получить доступ к его содержимому в других действиях.

Кроме этого может быть получен программно, с помощью глобальных функций:

global::Cleverence.Barcoding.Ean128.Parse(штрихкод — в качестве аргумента служит уже отформатированный с помощью скобок штрихкод, например (01)04260076865026 (11)130902

global::Cleverence.Barcoding.Ean128.FormatAndParse(штрихкод) — в качестве аргумента служит еще неотформатированный с помощью скобок штрихкод, например 0104260076865026 11130902

Результатом функций служит объект EAN128 или null если распознать штрихкод не удалось.

Пример:

EAN128= global::Cleverence.Barcoding.Ean128.FormatAndParse(ScannedBarcode)

Как используется

Можно извлекать из объекта EAN128 находящиеся в нем данные в переменные, которые могут быть использованы действиями.

Например, строку с серийным номером ([[идентификатор|идентификатор]] AI 21) можно извлечь в переменную из объекта EAN128 (если в объекте такой идентификатор есть) с помощью выражения присваивания:

serial= EAN128.GetValue(“21”), где

serial – переменная, для сохранения данных;

(“21”) – число 21 означает AI [[идентификатора|идентификатора]] серийного номера.

Основные поля

Свойства объектаОписаниеПримеры
BarcodeИсходный штрихкод EAN-128 (без скобок).EAN128.Barcode возвращает «0104260076865026111309023304200000»

(штрихкод на этикетке: (01)04260076865026 (11)130902(3304)200000)
GTINВозвращает GTIN из значения AI 02.EAN128.GTIN возвращает «08000607997453»

(штрихкод на этикетке: (02)08000607997453(15)07000814(37)72)
SSCC14Возвращает строковое значение для AI01.EAN128.SSCC14 возвращает «04260076865026»

(штрихкод на этикетке: (01)04260076865026 (11)130902(3304)200000)
UpcВозвращает код UPC14/13/12/8 или EAN14/13/12 из кода GTIN в значении AI02 или AI 01.EAN128.Upc возвращает «8000607997453»

(8000607997453 – код EAN13)

(штрихкод на этикетке: (02)08000607997453(15)07000814(37)72)
QtyВозвращает количество единиц товара из значения AI 37 в виде числа.EAN128. Qty возвращает число 72

(72 шт.)

(штрихкод на этикетке: (02)08000607997453(15)07000814(37)72)
Qty30Возвращает количество единиц товара из значения AI 30 в виде числа.EAN128. Qty30Возвращает число 61

(61 шт.)

(штрихкод на этикетке: (01)04260076865026 (11)130902(30)61)
WeightInKgВозвращает вес товара из значения AI 310y.EAN128.WeightInKg возвращает число 7.2

(7,2 кг)

(штрихкод на этикетке: (02)08000607997453(15)07000814(3102)72)
ProductionDateВозвращает дату производства из значения AI 11.EAN128.ProductionDate возвращает дату 2013.09.02

(02 сентября 2013 г.)

(штрихкод на этикетке: (01)04260076865026 (11)130902(30)61)
ExpiredDateВозвращает срока годности из значения AI 17.EAN128.ExpiredDate возвращает дату 2015.09.25

(25 сентября 2015 г.)

(штрихкод на этикетке: (02)08000607997453(15)07000814(17)150925)
PackagingDateВозвращает дату упаковки из значения AI 13.EAN128.PackagingDate возвращает дату 2013.08.15

(15 августа 20013 г.)

(штрихкод на этикетке: (01)04260076865026 (13)130815(30)61)
Contains(string ai)Проверяет присутствие в коде указанного AI. True, если указанный AI присутствует в коде.EAN128.Contains(“21”) возвращает False (отсутствует в штрихкоде)

EAN128.Contains(“15”) возвращает True (присутствует в штрихкоде)

(штрихкод на этикетке: (02)08000607997453(15)07000814(37)72)
GetValue(string ai)Возвращает строковое значение для указанного AI или null, если указанный AI отсутствует в коде.EAN128.GetValue(“3111”) возвращает «000053»

(5,3 метра)

(штрихкод на этикетке: (02)08000607997453 (3111)000053)
GetObjectValue(string ai)Возвращает значение для указанного AI или null, если указанный AI отсутствует в коде.EAN128.GetObjectValue(“3302”) возвращает 2000.00

(2000 кг)

(штрихкод на этикетке: (01)04260076865026 (11)130902(3302)200000)

Список идентификаторов EAN-128

Группы цифр в скобках под кодом, такие как (02), (15), (3303) и т. д., называются AI (Application Identifiers) идентификаторы применения и объясняют, как интерпретировать цифры, идущие следом.

AIОписание по-английскиОписание по-русскиФормат
00Serial Shipping Container Code (SSCC)Уникальный код большого контейнера в формате SSCC-1818 цифр
01Global Trade Item Number (GTIN)Глобальный номер товарной продукции.
GTIN-13 может быть закодирована в EAN-13 (ноль и 13 цифр)
14 цифр
02GTIN of Contained Trade ItemsGTIN единицы груза, для которого в AI37 указано, сколько таких единиц находится в контейнере14 цифр
10Batch/Lot NumberНомер партии поставкиОт 1 до 20 буквы/цифры
11Production DateДата производства6 цифр (ГГММДД
две цифры года, две месяца и две дня)
12Due DateСрок оплаты6 цифр (ГГММДД)
13Packaging DateДата упаковки6 цифр (ГГММДД)
15Sell by Date (Quality Control)Срок годности (контроль качества)6 цифр (ГГММДД)
17Expiration DateСрок годности6 цифр (ГГММДД)
20Product VariantПодвариант товара (дополнительно к GTIN)2 цифры
21Serial NumberСерийный номерОт 1 до 20 буквы/цифры
22Secondary Data FieldsВторичные поля данныхОт 1 до 29 буквы/цифры
23nLot number nНомер лотаОт 1 до 19 буквы/цифры
240Additional Product IdentificationДополнительное поле для более точной идентификации продуктаОт 1 до 30 буквы/цифры
241Customer Part NumberАртикул покупателяОт 1 до 30 буквы/цифры
242Made-to-Order Variation NumberСделанный на заказ номер вариацииОт 1 до 6 буквы/цифры
250Secondary Serial NumberВторой серийный номерОт 1 до 30 буквы/цифры
251Reference to Source EntityСсылка на исходный объектОт 1 до 30 буквы/цифры
253Global Document Type IdentifierГлобальный идентификатор типа документаОт 13 до 17 буквы/цифры
254GLN Extension ComponentGLN компонент расширенияОт 1 до 20 буквы/цифры
30Count of itemsКоличество элементовОт 1 до 8 буквы/цифры
310yProduct Net Weight in kgПродукт Вес нетто в кг6 цифр
311yProduct Length/1st Dimension, in metersДлина (высота, любой 1й размер) товара в метрах6 цифр
312yProduct Width/Diameter/2nd Dimension, in metersШирина (диаметр, любой 2й размер) товара в метрах6 цифр
313yProduct Depth/Thickness/Height/3rd Dimension, in metersГлубина (толщина, любой 3й размер) товара в метрах6 цифр
314yProduct Area, in square metersПлощадь товара в квадратных метрах6 цифр
315yProduct Net Volume, in litersОбъем товара в литрах6 цифр
316yProduct Net Volume, in cubic metersОбъем товара в кубических метрах6 цифр
320yProduct Net Weight, in poundsВес нетто товара в фунтах6 цифр
321yProduct Length/1st Dimension, in inchesДлина (высота, любой 1й размер) товара в дюймах6 цифр
322yProduct Length/1st Dimension, in feetДлина (высота, любой 1й размер) товара в футах6 цифр
323yProduct Length/1st Dimension, in yardsДлина (высота, любой 1й размер) товара в ярдах6 цифр
324yProduct Width/Diameter/2nd Dimension, in inchesШирина (диаметр, любой 2й размер) товара в дюймах6 цифр
325yProduct Width/Diameter/2nd Dimension, in feetШирина (диаметр, любой 2й размер) товара в футах6 цифр
326yProduct Width/Diameter/2nd Dimension, in yardsШирина (диаметр, любой 2й размер) товара в ярдах6 цифр
327yProduct Depth/Thickness/Height/3rd Dimension, in inchesГлубина (толщина, любой 3й размер) товара в дюймах6 цифр
328yProduct Depth/Thickness/Height/3rd Dimension, in feetГлубина (толщина, любой 3й размер) товара в футах6 цифр
329yProduct Depth/Thickness/3rd Dimension, in yardsГлубина (толщина, любой 3й размер) товара в ярдах6 цифр
330yContainer Gross Weight (kg)Вес брутто контейнера в кг6 цифр
331yContainer Length/1st Dimension (Meters)Длина (высота) контейнера в метрах6 цифр
332yContainer Width/Diameter/2nd Dimension (Meters)Ширина (диаметр) контейнера в метрах6 цифр
333yContainer Depth/Thickness/3rd Dimension (Meters)Глубина (высота, толщина) контейнера в метрах6 цифр
334yContainer Area (Square Meters)Площадь контейнера в кв.м.6 цифр
335yContainer Gross Volume (Liters)Общий объем контейнера в литрах6 цифр
336yContainer Gross Volume (Cubic Meters)Общий объем контейнера в кубических метрах6 цифр
340yContainer Gross Weight (Pounds)Общий вес контейнера в фунтах6 цифр
341yContainer Length/1st Dimension, in inchesДлина (высота) контейнера в дюймах6 цифр
342yContainer Length/1st Dimension, in feetДлина (высота) контейнера в футах6 цифр
343yContainer Length/1st Dimension in, in yardsДлина (высота) контейнера в ярдах6 цифр
344yContainer Width/Diameter/2nd Dimension, in inchesШирина (диаметр) контейнера в дюймах6 цифр
345yContainer Width/Diameter/2nd Dimension, in feetШирина (диаметр) контейнера в футах6 цифр
346yContainer Width/Diameter/2nd Dimension, in yardsШирина (диаметр) контейнера в ярдах6 цифр
347yContainer Depth/Thickness/Height/3rd Dimension, in inchesГлубина (высота, толщина) контейнера в дюймах6 цифр
348yContainer Depth/Thickness/Height/3rd Dimension, in feetГлубина (высота, толщина) контейнера в футах6 цифр
349yContainer Depth/Thickness/Height/3rd Dimension, in yardsГлубина (высота, толщина) контейнера в ярдах6 цифр
350yProduct Area (Square Inches)Площадь товара в квадратных дюймах6 цифр
351yProduct Area (Square Feet)Площадь товара в квадратных футах6 цифр
352yProduct Area (Square Yards)Площадь товара в квадратных ярдах6 цифр
353yContainer Area (Square Inches)Площадь контейнера в квадратных дюймах6 цифр
354yContainer Area (Square Feet)Площадь контейнера в квадратных футах6 цифр
355yContainer Area (Square Yards)Площадь контейнера в квадратных ярдах6 цифр
356yNet Weight (Troy Ounces)Вес нетто в тройских унциях6 цифр
357yNet Weight/Volume (Ounces)Вес нетто / объем в унциях6 цифр
360yProduct Volume (Quarts)Объем товара в квартах6 цифр
361yProduct Volume (Gallons)Объем товара в галлонах6 цифр
362yContainer Gross Volume (Quarts)Общий объем контейнера в квартах6 цифр
363yContainer Gross Volume (U.S. Gallons)Общий объем контейнера в галлонах (США)6 цифр
364yProduct Volume (Cubic Inches)Объем товара в кубических дюймах6 цифр
365yProduct Volume (Cubic Feet)Объем товара в кубических футах6 цифр
366yProduct Volume (Cubic Yards)Объем товара в кубических ярдах6 цифр
367yContainer Gross Volume (Cubic Inches)Общий объем контейнера в кубических дюймах6 цифр
368yContainer Gross Volume (Cubic Feet)Общий объем контейнера в кубических футах6 цифр
369yContainer Gross Volume (Cubic Yards)Общий объем контейнера в кубических ярдах6 цифр
37Number of Units ContainedКоличество единиц товара в контейнереОт 1 до 8 цифры
390yAmount payable (local currency)Сумма, подлежащая выплате (местная валюта)От 1 до 15 буквы/цифры
391yAmount payable (with ISO currency code)Сумма, подлежащая выплате (с кодом валюты ISO)От 3 до 18 буквы/цифры
392yAmount payable per single item (local currency)Цена (местная валюта)От 1 до 15 буквы/цифры
393yAmount payable per single item (with ISO currency code)Цена (с кодом валюты ISO)От 3 до 18 буквы/цифры
400Customer Purchase Order NumberСоответствующий номер заказа покупателяОт 1 до 30 буквы/цифры
401Consignment NumberНомер партииОт 1 до 30 буквы/цифры
402Bill of Lading numberНомер отгрузки, присвоенный продавцом (отправителем) товаров17 цифр
403Routing codeКод маршрута, определяется транспортной компанией (перевозчиком).От 1 до 30 буквы/цифры
410Ship To/Deliver To Location Code (Global Location Number)Куда доставить в виде кода EAN13 или DUNS13 цифр
411Bill To/Invoice Location Code (Global Location Number)Кому выставлять счет в виде кода EAN13 или DUNS13 цифр
412Purchase From Location Code (Global Location Number)Где было куплено в виде кода EAN13 или DUNS13 цифр
413Ship for, Deliver for, or Forward to Location Code (Global Location Number)Кому доставить или переслать в виде кода EAN13 или DUNS13 цифр
414Identification of a physical location (Global Location Number)Адрес доставки в виде кода EAN13 или DUNS13 цифр
420Ship To/Deliver To Postal Code (Single Postal Authority)Почтовый индекс доставкиОт 1 до 20 буквы/цифры
421Ship To/Deliver To Postal Code (with ISO country code)Почтовый индекс (с указанием кода страны ISO)От 3 до 15 буквы/цифры
422Country of Origin (ISO country code)Страна происхождения ( ISO код страны)3 цифры
423Country or countries of initial processingСтрана или страны производстваОт 3 до 15 буквы/цифры
424Country of processingСтрана производства3 цифры
425Country of disassemblyСтрана разборки3 цифры
426Country of full process chainСтрана полной технологической цепочки производства3 цифры
7001NATO Stock Number (NSN)NSN код13 цифр
7002UN/ECE Meat Carcasses and cuts classificationUN/ECE мясных туш и кусковОт 1 до 30 буквы/цифры
7003expiration date and timeДата/время срока годности10 цифр ГГММДДЧЧММ
7004Active PotencyАктивная сила некоторых продуктов здравоохраненияОт 1 до 4 буквы/цифры
703nProcessor approval (with ISO country code); n indicates sequence number of several processorsПроцесс (с указанием кода страны ISO), n — указывает порядковый номер процесса (технологическая цепочка производства)От 3 до 30 буквы/цифры
8001Roll Products: Width/Length/Core Diameter/Direction/SplicesДлина, ширина или диаметр центрального ролика для товаров в рулонах14 цифр
8002Mobile phone identifierESN мобильного телефона, если груз — мобильный телефонОт 1 до 20 буквы/цифры
8003Global Returnable Asset IdentifierGTIN и серийный номер той части груза, которую после доставки требуется вернуть назад (упаковка, документы).От 14 до 30 буквы/цифры
8004Global Individual Asset IdentifierGIAI используется для идентификации основных средств.От 1 до 30 буквы/цифры
8005Price per Unit of MeasureЦена за единицу измерения6 цифр
8006identification of the components of an itemКомплектующие одного товара18 цифр
GTIN — 14 цифр
Порядковый номер компонента — 2 цифры
Общее число компонентов — 2 цифры
8007International Bank Account NumberМеждународный номер банковского счета (IBAN)От 1 до 30 буквы/цифры
8008Date/time of productionДата / время производстваОт 8 до 12 буквы/цифры
ГГММДДЧЧММСС
8018Global Service Relation NumberГлобальный номер услуг (GSRN) используется для определения отношений между поставщиком услуг и их получателем.18 цифр
90Mutually Agreed Between Trading PartnersМожет использоваться по договоренности между поставщиком, экспедитором и покупателемОт 1 до 30 буквы/цифры
91-99Internal Company CodesДля внутреннего использованияОт 1 до 30 буквы/цифры

«n» — цифра, обозначающая длину поля. Например, AI 23x = 237 будет означать, что серийный номер состоит из 7 цифр, и в коде это будет выглядеть как «(237)1234567».

«y» — цифра, обозначающая точность после запятой. Например, AI 330y = 3304 будет означать, что в шести цифрах веса четыре их них будут стоять после запятой и «(3304)123456» будет равно 12,3456 кг.

Отключение распознавания EAN-128

Иногда требуется отключение автоматического распознавания штрихкода EAN-128.

Например, когда штрихкод состоит из набора данных, очень похожий на EAN-128, но не являющийся им и Mobile SMARTS пытается его определить как EAN-128, или когда требуется передать целиком штрихкод в 1С и там его распознать.

Для отключения автоматического распознавания штрихкода EAN-128 необходимо в начале работы задать выражение присваивания:

global::Cleverence.Barcoding.Ean128.AutoFormatEnabled=false

Выражение можно задать, например, в операции «При старте работы» или в конкретный тип документа, в котором не требуется распознавать штрихкод EAN-128.

Чтобы включить автоматическое распознавание штрихкода EAN-128, нужно задать выражение присваивание:

global::Cleverence.Barcoding.Ean128.AutoFormatEnabled=true

Использование регулярных выражений в шаблонах

В шаблонах штрихкодов (номенклатуры, ячеек, палет) можно использовать регулярные выражения. Шаблон состоит из односимвольных или многосимвольных литералов, операторов или конструкций.

В регулярных выражениях можно использовать как цифры, так и буквенные символы латинского алфавита (в верхнем и нижнем регистре).

Шаблоны штрихкода с регулярными выражениями задаются примерно такого вида:

{Позиция:@[A-D]}{Barcode:@[0-9]+}

  • Позиция, Barcode — в какую колонку будут сохраняться данные, найденные по этому шаблону (названия в шаблоне должны соответствовать названиям колонок, если в колонках не найдено такое название, то данные по этому названию никуда не записываются).
  • @ — означает, что после этого символа будет идти регулярное выражение;
  • [A-D] — означает буквенные символы латинского алфавита в верхнем регистре от A до D;
  • [0-9]+ — означает одна или несколько десятичных цифр (если нет знака «+» [0-9] — означает одна десятичная цифра).

Регулярное выражение используется для проверки соответствия строки шаблона

Символ регулярного выраженияЗначение выраженияФактическая отработка в шаблонах
[\w]ноль или более символов из указанного набораподдерживается
[A-D]`
[\W]ноль или более буквенных символов, не являющихся символами латинского алфавита, десятичными цифрами или символами _поддерживается
[0-9]+одна или несколько десятичных цифрподдерживается
[0]/[N]явно указанное число/буква. В данном примере '0' и 'N'поддерживается
[\w]+один или более буквенных символов латинского алфавита, десятичных цифр или или символов _поддерживается
[\W]+один или более символов, не являющиxся буквой латинского алфавита, десятичной цифрой или или символом _поддерживается
[A-Da-d]один буквенный символ латинского алфавита в верхнем или нижнем регистре от A до Dподдерживается

Для шаблонов [\W], [\w] и [\W] помимо букв и цифр, ещё учитывается символ подчёркивания "_"

Отладить и протестировать шаблоны с регулярными выражениями можно здесь http://regexstorm.net/tester.

Пример 1 | Шаблон номенклатуры с регулярными выражениями

Выгруженные данные:

Шаблон имениШаблон штрихкода
45{tmp:@[0]*}

{Barcode:@[\w]+}
{tmp:@[0]*}

[0]* указывают на один или более буквенных символов латинского алфавита (в верхнем и нижнем регистре) или десятичных цифр.

{Barcode:@[\w]\}

[\w]+ означает один или более буквенных символов латинского алфавита (в верхнем и нижнем регистре) или десятичных цифр

Сканируемые (вводимые) данные:

Штрихкоды: «04Z67», «451799067», «23GH67», «450004Е87»

Разбор по шаблону:

«04Z67» не подходит к шаблону, нет префикса 45.

«451799067» подходит к шаблону.

«23GH67» не подходит к шаблону, нет префикса 45.

«450004Е87» подходит к шаблону.

Пример 2 | Шаблон номенклатуры с регулярными выражениями

Выгруженные шаблоны:

45{tmp:@[0-9]+}{Barcode:@[\w]+}

45{tmp:@[0]*}{Barcode:@[\W]+}

45{tmp:@[0]*}{Barcode:@[\w]+}

{Префикс:@[\d]{2}}{tmp:@[0]*}{Barcode:@[\w]+}

Где 45{tmp:@[0-9]+}{Barcode:@[\w]+}:

  • [0-9]+ — означает одна или несколько десятичных цифр;
  • [\w]+ — означает означает один или более буквенных символов латинского алфавита (в верхнем и нижнем регистре) или десятичных цифр;

45{tmp:@[0]*}{Barcode:@[\W]+}:

  • [0]* — указывают на один или более буквенных символов латинского алфавита (в верхнем и нижнем регистре) или десятичных цифр;
  • [\W]+ — означает любой символ, не являющийся буквой или цифрой;

45{tmp:@[0]*}{Barcode:@[\w]+}

  • [0]* — указывают на один или более буквенных символов латинского алфавита (в верхнем и нижнем регистре) или десятичных цифр;
  • [\w]+ — означает означает один или более буквенных символов латинского алфавита (в верхнем и нижнем регистре) или десятичных цифр;

{Префикс:@[\d]{2}}{tmp:@[0]*}{Barcode:@[\w]+}

  • [\d]{2} — означает две любые десятичные цифры;
  • [0]* — указывают на один или более буквенных символов латинского алфавита (в верхнем и нижнем регистре) или десятичных цифр;
  • [\w]+ — означает означает один или более буквенных символов латинского алфавита (в верхнем и нижнем регистре) или десятичных цифр.

Сканируемые (вводимые) данные: Штрихкод: «4500000023GH67»

Разбор по шаблону:

При вводе штрихкода «4500000023GH67», будет производиться поиск подходящего шаблона.

45{tmp:@[0-9]+}{Barcode:@[\w]+} — шаблон не подходит, Barcode не будет найден.

45{tmp:@[0]*}{Barcode:@[\W]+} — шаблон не подходит, Barcode не будет найден.

45{tmp:@[0]*}{Barcode:@[\w]+} — шаблон подходит

{Префикс:@[\d]{2}}{tmp:@[0]*}{Barcode:@[\w]+} — шаблон подходит, но он слишком общий и к нему подойдут штрихкоды с другими префиксами, состоящие из 2 цифр.

Пример 3 | Шаблон палет с регулярными выражениями

Выгруженные шаблоны:

{Позиция:@[A-D]}{Номер:@[0-9]+}

{Палета:@[A-Da-d]}{Номер:@[0-9]}

{Позиция:@[A-Da-d]}{Номер:@[0-9]+}

{Бочка:@[A-Da-d]}{Номер:3}

Где:

{Позиция:@[A-D]}{Номер:@[0-9]+}

  • [A-D] — означает буквенные символы латинского алфавита в верхнем регистре от A до D, [0-9]+ — означает одна или несколько десятичных цифр;

{Палета:@[A-Da-d]}{Номер:@[0-9]}

  • [A-Da-d] — означает буквенные символы латинского алфавита в верхнем и нижнем регистре от A до D, [0-9] — означает одна десятичная цифра;

{Позиция:@[A-Da-d]}{Номер:@[0-9]+}

  • [A-Da-d] — означает буквенные символы латинского алфавита в верхнем и нижнем регистре от A до D, [0-9]+ — означает одна или несколько десятичных цифр;

{Бочка:@[A-Da-d]}{Номер:3}

  • [A-Da-d] — означает буквенные символы латинского алфавита в верхнем и нижнем регистре от A до D, {Номер:3} — цифры после «:» означают количество символов в параметрах.

Сканируемые (вводимые) данные:

Штрихкод: «b123»

Разбор по шаблону:

При вводе штрихкода контейнера «b123», будет производиться поиск подходящего шаблона.

{Позиция:@[A-D]}{Номер:@[0-9]+} шаблон не подходит, не совпадает регистр буквенного символа

{Палета:@[A-Da-d]}{Номер:@[0-9]} — шаблон не подходит, не хватает цифровых символов

{Позиция:@[A-Da-d]}{Номер:@[0-9]+} — шаблон подходит

{Бочка:@[A-Da-d]}{Номер:3} — шаблон подходит

Результат:

В данном примере подходят 2 шаблона {Позиция:@[A-Da-d]}{Номер:@[0-9]+} и {Бочка:@[A-Da-d]}{Номер:3} у них подходят как буквенные части так и цифровые.

Пример 4 | Шаблон ячеек с регулярными выражениями

Выгруженные данные:

Шаблон имениШаблон штрихкода
99{Стеллаж:@[A-Za-z]{3}}{Позиция:@[0-9]+}{Стеллаж:@[A-Za-z]{3}}

[A-Za-z] означает буквенные символы латинского алфавита в верхнем и нижнем регистре

{3} означает число буквенных символов штрихкода

{Позиция:@[0-9]+}

[0-9]+ означает одна или несколько десятичных цифр

Сканируемые (вводимые) данные

Штрихкоды: «99SDF8», «99fgh786», «99WJG6R3», «99ФБУ63», «99WG6», «99WGH»

Разбор по шаблону

Ячейка «99SDF8» подходит к шаблону.

Ячейка «99fgh786» подходит к шаблону.

Ячейка «99WJG6R3» не подходит к шаблону, лишние символы.

Ячейка «99ФБУ63» не подходит к шаблону, не совпадает буквенная часть (русские буквы) в «Стеллаж».

Ячейка «99WG6» не подходит к шаблону, не хватает буквенных символов в «Стеллаж».

Ячейка «99WGH» не подходит к шаблону, нет символов «Позиция».

Результат:

В данном примере к шаблону подходят ячейки «99SDF8», «99fgh786».

Пример 5 | Шаблон ячеек с регулярными выражениями

Выгруженные данные:

Шаблон имениШаблон штрихкода
{Ряд:@[A-F]}``{Позиция:@(0[1-9][1-2][0-9]

Сканируемые (вводимые) данные: штрихкоды: «A93», «F352», «R213», «A362», «B154», «b282»

Разбор по шаблону

Ячейка «F352» подходит к шаблону.

Ячейка «A093» подходит к шаблону.

Ячейка «A93» не подходит к шаблону, неверно указана «Позиция», не может быть 9, необходимо вводить 09.

Ячейка «R213» не подходит к шаблону, неверно указан «Ряд».

Ячейка «A362» не подходит к шаблону, неверно указана «Позиция», превышает число 35.

Ячейка «A02» не подходит к шаблону, неверно указана «Позиция», не может быть 0.

Ячейка «B154» не подходит к шаблону, не верно указан «Этаж», не может превышать 3.

Ячейка «b282» подходит к шаблону.

Результат:

В данном примере к шаблону подходят ячейки «A093», «F352».

Обратите внимание. Какой регистр в регулярных выражениях заявлен в ШК, такой и придет обратно. Если же при сканировании используется классы CellSelectAction и функция ProcessBarcodeInt то, в действиях выбора ячейки будет убрано приведение к верхнему регистру.

Статьи по теме: