Пример 1 | Поиск товара по коду (Id)
Исходные данные:
Штрихкод номенклатуры (общим шаблоном): {ProductId:5}{Quantity:3}{ExpiredDate:ddMMyyyy}
В выражении {ProductId:5} цифра «5» означает число символов штрихкода под уникальный код товара.
Сканируемые (вводимые) данные:
Штрихкод: «6789000928122017»
Разбор по шаблону:
6789000928122017 → ProductId = 67890; Quantity = 9; ExpiredDate = 28.12.2017
При вводе штрихкода будет производиться поиск товара по коду «67890», и если он будет найден, то будет выбран товар с этим кодом, в количестве 9 базовых упаковок и проставлена дата конца срока годности 28.12.2017.
Номенклатура:
Будет выбрана «Крупа гречневая (упак)», а не весовая, т.к. поиск ведётся по идентификатору (Id) товара.
Значение переменных в сессии:
Результат:
Пример 2 | Поиск товара по штрихкоду упаковки
Исходные данные:
Штрихкод номенклатуры (общим шаблоном): {Barcode:5}{Quantity:3}{ExpiredDate:ddMMyyyy}
В выражении {Barcode:5} цифра «5» означает число символов штрихкода.
Сканируемые (вводимые) данные:
Штрихкод: «5179601015102017»
Разбор по шаблону:
5179601015102017 → Barcode = 51796; Quantity = 10; ExpiredDate=15.10.2017
При вводе штрихкода будет производиться поиск товара по штрихкоду упаковки «51796», и если он будет найден, то будет выбран товар с этой упаковкой, в количестве 10 упаковок и проставлена дата конца срока годности 15.10.2017.
Номенклатура:
Будет выбрано «Молоко "Домик в деревне"», т.к. поиск ведётся по штрихкоду упаковки товара.
Значение переменных в сессии:
Результат:
Пример 3 | Товар не найден по общему шаблону
Исходные данные:
Штрихкод номенклатуры (общим шаблоном): {Barcode:13}{Quantity:3}
В выражении {Barcode:13} цифра «13» означает число символов штрихкода.
Сканируемые (вводимые) данные:
Штрихкоды: «2000020637963015», «20000206379630155»
Разбор по шаблону:
4607060501490005 → Barcode = 4607060501490; Quantity = 5
20000206379630155 → под шаблон не подходит (в ШК 17 символов, а шаблон подходит только для 16 символов ШК) → поиск в справочнике номенклатуры по полному штрихкоду «20000206379630155» → товар не найден.
Результат:
Пример 4 | Товар не найден по общему шаблону, но найден по шаблону упаковки
Исходные данные:
Штрихкод номенклатуры (общим шаблоном): {Barcode:5}{Quantity:3}{ExpiredDate:ddMMyyyy}
Штрихкод упаковки (шаблоном): 2183{Quantity:3}{SSCC:8}
Сканируемые (вводимые) данные:
Штрихкод: «218300912122017»
Разбор по шаблону:
218300912122017 → под шаблон не подходит (в ШК 17 символов, а шаблон подходит только для 16 символов ШК)
В случае если товар не найден по общим шаблонам, то дальше поиск будет вестись по шаблонам упаковки:
218300912122017 → подходит под шаблон 2183{Quantity:3}{SSCC:8} → Quantity = 9; SSCC = 12122017.
Номенклатура:
Значение переменных в сессии:
Результат:
Пример 5 | Совместная работа общих шаблонов и шаблонов упаковки
Исходные данные:
Товар: «продукт 4»
Штрихкод номенклатуры «кг» (общим шаблоном): {Barcode:13}{ExpDate:ddMMyy}
Штрихкод упаковки «кг» (шаблоном): 2112347{Quantity:3.2}{checksum:1}
Сканируемые (вводимые) данные:
Штрихкод: «2112347004457140812»
Разбор по шаблону:
-
Производится поиск товара по штрихкоду (общим шаблоном) «2112347004457».
«2112347004457140812» =>2112347004457140812 => Barcode = 2112347004457
-
Будет найден «продукт 4» и извлечены данные согласно его персональному шаблону. «2112347004457» => 211234700445 7=> Quantity = 4,45; checksum = 7
-
После этого будет извлечена дата срока годности, согласно общему шаблону
«2112347004457140812» => 2112347004457 140812=> ExpDate:ddMMyy = 14.08.2012
Результат:
Штрихкод | Переменная в сессии | Значение |
---|---|---|
«2112347004457140812» |
{SelectedProduct.Product} |
2112347004457 |
«2112347004457» |
{SelectedProduct.Product.Name} {SelectedProduct.Packing.Name} {SelectedProduct.Quantity} {SelectedProduct. checksum } |
«продукт 4» шт 4,45 7 |
«2112347004457140812» |
{SelectedProduct.ExpiredDate} |
14.08.2012 |
Пример 6 | Выбор шаблона из нескольких подходящих
Возможна такая ситуация, когда к отсканированному штрихкоду могут подходить несколько общих шаблонов.
Исходные данные:
Штрихкод номенклатуры (общим шаблоном): {Barcode:13}{SSCC:6}
Штрихкод номенклатуры (общим шаблоном): {Barcode:13}{ExpiredDate:ddMMyy}
Сканируемые (вводимые) данные:
Штрихкод: «2000020497963231117»
Штрихкод будет разобран по первому подходящему общему шаблону:
Производится поиск товара по штрихкоду (общим шаблоном {Barcode:13}{SSCC:6}) «2000020497963231117».
2000020497963231117 → Barcode = 2000020497963; SSCC = 231117
Номенклатура:
Значение переменных в сессии:
Результат:
Пример 7 | Поиск товара по общему шаблону в штрихкоде EAN128
Для штрихкода EAN-128 не нужно создавать какие-то специальные шаблоны со скобочками (цифры в скобочках - это идентификаторы применения, они объясняют, как интерпретировать цифры, идущие следом). Штрихкод EAN-128 распознается общим шаблоном.
(01)04260076865026(11)130902(3304)200000
Реально в штрихкоде EAN-128 символы скобок вокруг идентификаторов НЕ содержатся, а только отображаются при печати для удобства визуального восприятия.
Исходные данные:
Товар: «продукт»
Штрихкод номенклатуры «шт» (общим шаблоном): {Barcode:13}{ExpiredDate:yyMMdd}
Сканируемые (вводимые) данные:
Штрихкод: «010426007686502617130902»
Визуальное отображение штрихкода на этикетке: «(01)04260076865026(17)130902»
Разбор по шаблону:
- Производится поиск товара по штрихкоду (общим шаблоном) «4260076865026»
«010426007686502617130902» =>010426007686502617130902=> Barcode = 4260076865026
- После этого будет извлечена дата срока годности, согласно шаблону
«010426007686502617130902» =>010426007686502617130902=> ExpiredDate = 02.09.2013
Результат:
Штрихкод | Переменная в сессии | Значение |
---|---|---|
«010426007686502617130902» |
{SelectedProduct.Product} {SelectedProduct.Product.Name} {SelectedProduct.Packing.Name} {SelectedProduct.ExpiredDate} |
4260076865026 «продукт» «шт» 02.09.2013 |
В шаблонах номенклатуры можно использовать регулярные выражения. Примеры шаблонов номенклатуры с регулярными выражениями смотрите в статье Использование регулярных выражений в шаблонах штрихкодов.