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