Инструменти за потребители

Инструменти за сайта


nomenklaturi:pozicii:maski

Това е стара версия на документа!


Маски на баркодове

В най-простия си вид баркодовете най-често се използват за задаване на уникален в световен мащаб номер на артикул.

В номенклатура Позиции, в таб „Баркодове“ се намира съответствието между този уникален номер и номера на позицията в номенклатурата.
Баркодове може да се асоциират както с артикул, така и с контрагент.

В един баркод може да бъде кодирана информация освен за номера на артикула, така и за неговото тегло/количество, цена, сериен номер и т.н. Използването на теглови баркодове се прави най-често, ако във Вашата фирма имате електронна везна, с която се претегля артикула, след което везната автоматично печата етикет с баркод, в който се закодира номера на артикула и неговото тегло.

За да може тази информация да се използва, трябва баркода да бъде разпознат, че е от такъв „особен“ тип, а не е обикновен баркод, представляващ просто уникален номер на артикула. В програмата се прави проверка на маската на баркода и при грешка в нея, софтуера извежда съобщение за това.

Маската представлява низ от знаци, които определят правилата, по които се извлича информацията от баркода. Системата, по която се задават тези знаци е известна като „Регулярен израз“.
Идеята е първо баркода да бъде разпознат като такъв, от който може да се извлече информация, след което да се укаже на програмата от кои разпознати групички какво да извлече.

Израза започва с определени цифри, т.е. маската изисква прочетеният баркод задължително да започва с тях.

Обикновените скоби ('(' и ')') указват, че това е поредната група, която ще бъде разпознавана.

Вътре в групата, в квадратни скоби се изброяват възможните символи, които могат да следват, в случая [0-9] означава цифрите от 0 до 9 включително.
Възможно е да се напише и маска съдържаща други символи, като например [0-9abcABC], означаваща цифрите от 0 до 9 и буквите a, b,c, A, B и C (малките и главните букви са различни). Ако е необходимо да се направи маска, в която да участва символа тире, се изписва (примерно) [a-z/-], т.е. буквите от a до z или тире.

Във фигурните скоби се изписва броя знаци, които се очакват от текущата група. Обърнете внимание, че примерно {6} означава точно шест знака на дадената позиция.

Подробно описание на регулярните изрази (на български) можете да намерите на адрес http://python-bg.sourceforge.net/regex-1.0.1/regex.html

ИЗВЛИЧАНЕ НА ИНФОРМАЦИЯТА

След като баркода бъде разпознат, е необходимо да се укаже от коя група (заградена в обикновени скоби) каква информация ще се извлича.

В колони „Индекс на групата“ се въвежда номера на групата, от която ще се черпи информацията.

  1. Позиция - групата от израза, от която се изтегля номера на артикула (каквито цифри се извлечат от групата се приемат директно за номер на артикула)
  2. Сериен номер - групата, от която се изтегля серийния номер на артикула
  3. Баркод на позиция - групата от израза, от която се изтегля поредица от символи, които после се търсят в съответсвието на Баркод/Позиция, от където в крайна сметка се намира номера на артикула
  4. Количество - групата, от която се изтегля количеството
  5. Цена - групата, от която се изтегля цената
  6. Контрагент - групата, от която се изтегля контрагента
  7. Клас номер - групата, от която се изтегля номера на класа
  8. Документ номер - групата, от която се изтегля номера на документа
  9. Местоположение - групата, от която се изтегля местоположението
  10. Цвят - групата, от която се изтегля цветът
  11. Размер - групата, от която се изтегля размерът
  12. Баркод на контрагент - служи да разпознае баркод на контрагент от номенклатурата баркодове на контрагента
  13. Роля на контрагента, с три опции:
    1. Източник - за да се постави контрагента като източник, трябва в баркода в групичката за „роля на контрагента“ да пише „1“ (без кавичките)
    2. Посредник - за да се постави контрагента като посредник, трябва в баркода в групичката за „роля на контрагента“ да пише „2“
    3. Получател - за да се постави контрагента като получател, трябва в баркода в групичката за „роля на контрагента“ да пише „3“

Пояснение:

Независимо, че има настройка на Търговски документ, от която се определя дали баркода на контрагент отива в Източник/Посредник/Получател, е необходимо да направим това да може да става и с маска. Използват се с различно предназначение.
Идеята е да може в една и съща продажба да се сканират два различни баркода, от където чрез маската да разпознае, че например единият баркод се отнася за Получателя, а другият за Посредника.

Важно:

В Настройките на документи (търговски и финансови) в таб Други, има поле за „при избор на контрагент чрез баркод“, което работи само ако преди това чрез маска в баркода не е разпозната ролята на контрагента (Източник/Посредник/Получател).

С други думи приоритета е първо се гледа какво е разпознато с маската и ако не е разпозната роля на Контрагента, после вече се гледа настройката от документа.

В колоните за „Позиция“ и „Контрагент“ въвеждате конкретна позиция, съответно контрагент според естеството на баркода.
Колони „Позиция“ например се попълват при работата с тегловни баркодове, когато за един артикул трябва да се сканират множество баркодове, в които са заложени различни тегла.

Колона „Множител количество“ се попълва, ако баркода съдържа количество на позицията. След като количеството бъде извлечено, то се умножава по множител количество и се подава като стойност за количество, от баркода.

Аналогично колона „Множител цена“ се попълва, ако баркода съдържа цена на позицията. След извличане на цената тя се умножава по множителя и се подава като стойност за цена.

Колона „Приоритет“ се попълва, тъй като е възможно, няколко маски едновременно да отговарят на един и същ баркод.
Баркода се съпоставя последователно на маските, сортирани възходящо, по стойността на техния приоритет.

Възможно е баркодовете да съдържат серийни/партидни номера, които се приемат за „текст“ идвайки от баркода. В случай, че пред серийния/партидния номер има водещи нули и желаете те да се игнорират при сканиране, отпред пред групата за сериен/партиден номер се слага „0*“. Същевременно за групата, с която се описва серийния/партиден номер не се слага твърдо брой символи, а се записват граници (отделят се със запетая).

Пример:

Маска ^30*([0-9]{1,8})$ - префик 3; 0*-премахване на водещи нули; броя на символите за серийния/партидния номер може да е от 1 до 8.
Примерен баркод: 30003305007

За по-голяма яснота, относно начина на работа и съобразно идентичността на системата от релийз 2016.1 бандове Множител, Позиция, Контрагент и Количество се обединяват под един общ банд „Константи“, а колона „Цена“ от банд „Индекс на групата“ се преименува на „Цена без ДДС преди ТО“.

Често в практиката баркодовете на позициите, които се използват не са по първа мерна единица, а по втора, трета и т.н.. До момента при сканиране на баркод, даже и подразбиращата се мерна единица на артикула да е различна от МЕ1, то сканираното количество се вписва в Кол.1.

За да се избегнат подобни разминавания и грешки от релийз 2015.08 в „Маски на баркодове“ е направена промяна да може да се указва съответната маска какво количество да попълни и в коя мерна единица. За целта е добавен нов банд „Количество“ с две колони, съответно за Количество и Мерна единица. Логиката на работа е следната:

  • Ако има Индекс на групата|Количество (съществуващата колона за кол-во до момента) - тя е с най-висок приоритет;
  • Ако Количество|Количество е празна – за Количество се приема стойност 1-ца;
  • Ако Количество|Количество има стойност (например 5) - за Количество се взима тази стойност (т.е. за количество ще се постави 5).

Относно „Мерната единица“, по която ще се попълва съответното количество възможните стойности са следните: Подразбираща се мерна единица (подразбираща се ст-ст при нов запис); МЕ1; МЕ2; МЕ3 или МЕ4.

Създадени са и други две нови колони, относно маските - „Коментар“ и „Активна ДА/НЕ“ (по подразбиране ДА при нов запис). Наличието на активни и неактивни маски ще оптимизира сканирането на баркодове на база само активните маски.

Важно:

При ъпгрейд всички съществуващи маски стават активни и за мерна единица се попълва МЕ1.

В практиката при зареждане на позиции в документите чрез използване на баркод четец и работа с местоположения е удобно при разпознаване на баркода да се разпознава и кое местоположение е сканирано (Източник, Посредник или Получател).

За реализацията на това от релийз 2016.12 в номенклатурата на Маските на баркодове е добавена възможност за указване (разпознаване от баркода) ролята на местоположението (Източник-1, Посредник-2 или Получател-3). Подобно на контрагентите e създадена отделна група в индексите на маските за Роля на местоположението. Съобразено е посочването на роля да може да се задава и в маски за Позиции. Новата група се разпознава и при тест за проверка на маските.

ПРОВЕРКА НА БАРКОД

Разтваряйки със стрелката в дясно панела за „Проверка на баркод“ може да проверите, доколко въведената маска е правилно записана.
След сканиране (вписване) на произволен баркод, отговарящ на маската, излиза съобщение дали е намерена маска или не, както и данните какво е разпознато.

Примери:

За да се улесни попълването на условията на отделните промоции и да е по-ясно кои колони изискват попълването и на други свързани с тях колони, в релийз 2016.1 е направено така, че съответните колони да се активират, само когато се пише в колоните, с които влияят едновременно. Приложена е и промяна на цвета на неактивните колони.

В номенклатура Маски на баркодове направената промяна е при попълване на колона „Индекс на групата/Количество“. При тази ситуация колона „Количество/Количество“ е неактивна.

Допълнителна информация: Основни табове и бутони, Редакция на изгледи, Таблична част, Моделиране на таблици, Филтриране на данни.

nomenklaturi/pozicii/maski.1492068948.txt.gz · Последна промяна: 2018/01/11 15:29 (външна редакция)