Мы имеем этикетку к примеру 40х100мм, больше проблематично будет лепить на профиль. Что мы можем впихнуть в штрих код, дабы он еще уместился на ней. Моя версия: "Номер заказа" (4), "Номер позиции"(2), "Количество штук в позиции"(3), итого мы имеем уже 9 цифр. Далее нам нужно как то различить, профиль и окно, причем все четыре палки профиля и дать им уникальный номер, так как что мешает один и тот же профиль или уже готовое окно, сосканировать рабочему как минимум два раза. Проблема первая, вместить информацию на этикетке, и проблема второго сканирования.
При таком принципе построения штрих кода добиться достаточной уникальности просто не удастся, поскольку для учета уникальности каждой палки профиля в штрих коде кроме вышеперечисленного, как минимум нужно добавлять и положение палки(верх, лево и т. д.), номер рамы, номер створки и импоста(в случае например глухаря, - номера створки и импоста могут быть нулями и т.д.). Само собой что это увеличит количество цифр в штрих коде до 13-15, но и такой штрих код вполне влезет на этикетку к примеру 40х100мм. Таким образом каждый элемент профиля будет иметь свой почти уникальный идентификационный номер. Почти – потому что уникальность будет зависеть от некоторых количественных факторов, например – на "Номер позиции" Вы выделили только 2 цифры и это означает что если в заказе окажется более 99 позиций – уникальность теряется т. д.

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

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

А проблему физического вмещения информации на этикетку небольшого размера нужно решать поиском “золотой середины”, между важностью этой информации, ее количеством и размером шрифтов. Для того чтобы это было легче сделать, нужно просто определить и разделить информацию по степени важности ее отображения на этикетке.
