Перейти к основному содержимому
Версия: Платформа 3.4

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

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

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

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

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

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

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

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

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

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

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

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

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