0
r72cccp
27.02.14
✎
17:06
|
Может кому пригодится.
Краткое описание: у газет и журналов, а так же прочей периодики может существовать так называемый дополнительный штрих код из 5 цифр. Если вы сумеете настроить свой сканер то он будет при чтении такого кода выдавать строки длиной 18 цифр. Обычный штрихкод EAN13 - это первые 13 цифр слева. Остальное - дополнительный код, печатное представление которого далее. Шрифт - eangnivc.
<script src=";
//******************************************************************************
Функция ЭтоЦифра(стр, позиция=1)
Возврат ?(Найти("0123456789", Сред(стр, позиция, 1))>0, 1, 0);
КонецФункции
//******************************************************************************
Функция EAN13A5CodeGenerate(ШК1) Экспорт
ШК=СокрЛП(Прав(ШК1, 5));
Если СтрДлина(Шк)<>5 Тогда
Возврат "";
КонецЕсли;
Для н=1 По СтрДлина(ШК) Цикл
Если ЭтоЦифра(Шк, н)=0 Тогда
Возврат "";
КонецЕсли;
КонецЦикла;
НаборПечать="klmnopqrstKLMNOPQRST";
V = 0;
Для н=1 По СтрДлина(Шк) Цикл
V = V + (9 - 6 * (н % 2)) * Число(Сред(Шк, н, 1));
КонецЦикла;
шматрица = "BBAAA"+
"BABAA"+
"BAABA"+
"BAAAB"+
"ABBAA"+
"AABBA"+
"AAABB"+
"ABABA"+
"ABAAB"+
"AABAB";
Набор = Сред(шматрица, (V%10)*5+1, 5);
кодстр=":";
Для н=1 По стрДлина(ШК) Цикл
С = Сред(НаборПечать, ((КодСимв(Сред(Набор, н, 1))-65)*10)+Число(Сред(ШК, н, 1))+1,1)+?(н=СтрДлина(ШК), "", ";");
кодстр=кодстр + С;
КонецЦикла;
Возврат кодстр;
КонецФункции
//******************************************************************************
Функция глШКДоп5(Штрихкод) Экспорт
Если СтрДлина(Штрихкод) > 13 Тогда
Возврат EAN13A5CodeGenerate(прав(СокрЛП(Штрихкод),5));
Иначе
Возврат "";
КонецЕсли;
КонецФункции
|
|