Това е стара версия на документа!
В най-простия си вид баркодовете най-често се използват за задаване на уникален в световен мащаб номер на артикул.
В номенклатура Позиции, в таб „Баркодове“ се намира съответствието между този уникален номер и номера на позицията в номенклатурата.
Баркодове може да се асоциират както с артикул, така и с контрагент.
В един баркод може да бъде кодирана информация освен за номера на артикула, така и за неговото тегло/количество, цена, сериен номер и т.н. Използването на теглови баркодове се прави най-често, ако във Вашата фирма имате електронна везна, с която се претегля артикула, след което везната автоматично печата етикет с баркод, в който се закодира номера на артикула и неговото тегло.
За да може тази информация да се използва, трябва баркода да бъде разпознат, че е от такъв „особен“ тип, а не е обикновен баркод, представляващ просто уникален номер на артикула. В програмата се прави проверка на маската на баркода и при грешка в нея, софтуера извежда съобщение за това.
Маската представлява низ от знаци, които определят правилата, по които се извлича информацията от баркода. Системата, по която се задават тези знаци е известна като „Регулярен израз“.
Идеята е първо баркода да бъде разпознат като такъв, от който може да се извлече информация, след което да се укаже на програмата от кои разпознати групички какво да извлече.
Израза започва с определени цифри, т.е. маската изисква прочетеният баркод задължително да започва с тях.
Обикновените скоби ('(' и ')') указват, че това е поредната група, която ще бъде разпознавана.
Вътре в групата, в квадратни скоби се изброяват възможните символи, които могат да следват, в случая [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
ИЗВЛИЧАНЕ НА ИНФОРМАЦИЯТА
След като баркода бъде разпознат, е необходимо да се укаже от коя група (заградена в обикновени скоби) каква информация ще се извлича.
В колони „Индекс на групата“ се въвежда номера на групата, от която ще се черпи информацията.
Пояснение:
Важно:
С други думи приоритета е първо се гледа какво е разпознато с маската и ако не е разпозната роля на Контрагента, после вече се гледа настройката от документа.
В колоните за „Позиция“ и „Контрагент“ въвеждате конкретна позиция, съответно контрагент според естеството на баркода.
Колони „Позиция“ например се попълват при работата с тегловни баркодове, когато за един артикул трябва да се сканират множество баркодове, в които са заложени различни тегла.
Колона „Множител количество“ се попълва, ако баркода съдържа количество на позицията. След като количеството бъде извлечено, то се умножава по множител количество и се подава като стойност за количество, от баркода.
Аналогично колона „Множител цена“ се попълва, ако баркода съдържа цена на позицията. След извличане на цената тя се умножава по множителя и се подава като стойност за цена.
Колона „Приоритет“ се попълва, тъй като е възможно, няколко маски едновременно да отговарят на един и същ баркод.
Баркода се съпоставя последователно на маските, сортирани възходящо, по стойността на техния приоритет.
Възможно е баркодовете да съдържат серийни/партидни номера, които се приемат за „текст“ идвайки от баркода. В случай, че пред серийния/партидния номер има водещи нули и желаете те да се игнорират при сканиране, отпред пред групата за сериен/партиден номер се слага „0*“. Същевременно за групата, с която се описва серийния/партиден номер не се слага твърдо брой символи, а се записват граници (отделят се със запетая).
Пример:
За по-голяма яснота, относно начина на работа и съобразно идентичността на системата от релийз 2016.1 бандове Множител, Позиция, Контрагент и Количество се обединяват под един общ банд „Константи“, а колона „Цена“ от банд „Индекс на групата“ се преименува на „Цена без ДДС преди ТО“.
Често в практиката баркодовете на позициите, които се използват не са по първа мерна единица, а по втора, трета и т.н.. До момента при сканиране на баркод, даже и подразбиращата се мерна единица на артикула да е различна от МЕ1, то сканираното количество се вписва в Кол.1.
За да се избегнат подобни разминавания и грешки от релийз 2015.08 в „Маски на баркодове“ е направена промяна да може да се указва съответната маска какво количество да попълни и в коя мерна единица. За целта е добавен нов банд „Количество“ с две колони, съответно за Количество и Мерна единица. Логиката на работа е следната:
Относно „Мерната единица“, по която ще се попълва съответното количество възможните стойности са следните: Подразбираща се мерна единица (подразбираща се ст-ст при нов запис); МЕ1; МЕ2; МЕ3 или МЕ4.
Създадени са и други две нови колони, относно маските - „Коментар“ и „Активна ДА/НЕ“ (по подразбиране ДА при нов запис). Наличието на активни и неактивни маски ще оптимизира сканирането на баркодове на база само активните маски.
Важно:
В практиката при зареждане на позиции в документите чрез използване на баркод четец и работа с местоположения е удобно при разпознаване на баркода да се разпознава и кое местоположение е сканирано (Източник, Посредник или Получател).
За реализацията на това от релийз 2016.12 в номенклатурата на Маските на баркодове е добавена възможност за указване (разпознаване от баркода) ролята на местоположението (Източник-1, Посредник-2 или Получател-3). Подобно на контрагентите e създадена отделна група в индексите на маските за Роля на местоположението. Съобразено е посочването на роля да може да се задава и в маски за Позиции. Новата група се разпознава и при тест за проверка на маските.
При приемане на стока много удобно, използвайки баркод четец, е да се сканират етикетите на палети, кашони и т.н., като обикновено в тях доставчиците са кодирали информация, освен за артикул, количество и сериен/партиден номер, също така и за Срок на годност. По този начин на готово би се попълнила цялата необходима информация в документа за заприхождаване, без да се дописва нещо на ръка.
За покриването на този начин на работа в релийз 2017.06 е добавена възможност, в маските на баркодове, да може да се разпознава и попълва Срока на годност. Целта е при сканиране на баркод, съдържащ информация за Срок на годност, същият да се попълни в ТД, в таблица „Серийни/партидни номера“.
Тъй като различните стандарти използват различен формат за изписване на датата, в конфигурацията на маските има възможност да укажете формат за въвеждане на дата (YYMMDD или DDMMYYYY и т.н.).
В случай, че сканирането на баркод от етикет може да се извърши и при изписване на стока (продажба), където партидата вече може да има попълнен Срок на годност (още при доставката) съществуващият Срок на годност (въведен към партидата) е с приоритет. Ако липсва такъв, се взима този от баркода.
В допълнение, за да се настройват маски за разпознаване на стандартни баркодове (по GS1 класификацията) е необходимо в баркода да може да се съхранява достатъчно информация за дадена Партида/Сериен номер, така че да се покриват изискванията на регулаторните органи за хранителни продукти и потребителски стоки с общо предназначение. Тъй като самият стандарт дефинира много опции са реализирани само тези, които до момента намират приложение:
Изброените дати може да се разпознават от маските на баркодовете, като всяка дата може да има собствена маска.
Попълването на тези полета става при: сканиране на баркод в ТД; ръчно писане в ТД; протокола за Атрибути на сериен/партиден номер.
Трябва да се има предвид, че взаимовръзката на полетата Дата на производство и Срок на годност се запазва. Т.е. ако няма зададени Брой и Мярка на Срок на годност и ако от баркода бъдат разпознати Дата на производство и Срок на годност, едно от полетата ще остане празно (Например, ако първоначално се попълни Дата на производство, а след това Срок на годност, тъй като няма на каква база от него да се изчисли Датата на производство, тя ще остане празна и обратно).
ПРОВЕРКА НА БАРКОД
Разтваряйки със стрелката в дясно панела за „Проверка на баркод“ може да проверите, доколко въведената маска е правилно записана.
След сканиране (вписване) на произволен баркод, отговарящ на маската, излиза съобщение дали е намерена маска или не, както и данните какво е разпознато.
Примери:
За да се улесни попълването на условията на отделните промоции и да е по-ясно кои колони изискват попълването и на други свързани с тях колони, в релийз 2016.1 е направено така, че съответните колони да се активират, само когато се пише в колоните, с които влияят едновременно. Приложена е и промяна на цвета на неактивните колони.
В номенклатура Маски на баркодове направената промяна е при попълване на колона „Индекс на групата/Количество“. При тази ситуация колона „Количество/Количество“ е неактивна.
Релийз 2017.06
В практиката, когато се говори за малка вътрешна опаковка (например вафла), най-често баркода съдържа само идентификация на артикула и нищо друго (пример: баркод по EAN13 стандарт). Когато се говори за голяма външна опаковка (например кашон от същите вафли), най-често се използва баркод, който съдържа повече информация. Пример: EAN128 стандарта, в себе си може да съдържа EAN13 идентификатора, Количество в определена мерна единица, Партида, Срок на годност и др..
Когато е налице големият външен баркод (EAN128) и в него са подадени всички необходими данни, най-сигурният и лесен начин за въвеждане на информацията е да се прочете от него всичко възможно. По тази причина, ако има подадено количество, мярка и т.н., които бъдат разпознати с маска, те трябва да са с най-голям приоритет (без значение, дали има попълнени в номенклатурата подразбиращи се стойности за мярка, количество и т.н.).
Ако баркодът не съдържа всичко необходимо (например, не е подадена информация за количеството и мярката), тогава трябва да се вземат подразбиращите се стойности (по познатият и до сега начин), защото така все пак ще се улесни (спести) ръчното въвеждане на данни.
Поради изброените причини стойностите от маската (когато има такива) винаги трябва да са с приоритет, независимо дали в номенклатурата на баркодовете (в позиции) са въведени подразбиращи стойности за количество и мярка или не. Целта е да може максимално да се улесни (автоматизира) въвеждането в СМЕРП на необходимата информация за вписване и изписване на стока, която има баркод на опаковката.
Специфичен момент е, ако в маска има избрана мерна единица (първа, втора, ….) и има количество в сканирания баркод (или като група или като константа), тогава се игнорира стойността на мерната единица от баркода на позицията и се гледа тази от маската.
Ако в маската е посочена подразбираща се мерна единица, тогава се взима подразбиращата се МЕ за баркода на позицията, ако няма се гледа подразбиращата се МЕ на сериен/партиден номер и най-накрая подразбиращата се МЕ на позицията (ако няма друга).
Тъй като при промени в номенклатурата на Маски на баркодове е необходимо те да влизат в сила веднага, без да се налага рестарт на системата, е реализирано опресняване на данните.
„Изчистването на кешираните данни“ също е съобразено да включва Маски на баркодове.
Допълнителна информация: Основни табове и бутони, Редакция на изгледи, Таблична част, Моделиране на таблици, Филтриране на данни.