Last active
August 29, 2015 13:56
-
-
Save bsa7/9248696 to your computer and use it in GitHub Desktop.
1C 7.7 - Генерация печатного представления 5-ти значного дополнительного штрихкода EAN13 - EAN13A5, ISSN, supplement 5 dig
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//****************************************************************************** | |
Функция ЭтоЦифра(стр, позиция=1) | |
Возврат ?(Найти("0123456789", Сред(стр, позиция, 1))>0, 1, 0); | |
КонецФункции | |
//****************************************************************************** | |
Функция EAN13A5CodeGenerate(ШК1) Экспорт | |
ШК=СокрЛП(Прав(ШК1, 5)); | |
Если СтрДлина(Шк)<>5 Тогда | |
Возврат ""; | |
КонецЕсли; | |
Для н=1 По СтрДлина(ШК) Цикл | |
Если ЭтоЦифра(Шк, н)=0 Тогда | |
Возврат ""; | |
КонецЕсли; | |
КонецЦикла; | |
НаборПечать="klmnopqrstKLMNOPQRST"; | |
V = 0; | |
Для н=1 По СтрДлина(Шк) Цикл | |
V = V + (9 - 6 * (н % 2)) * Число(Сред(Шк, н, 1)); | |
КонецЦикла; | |
шматрица = "BBAAABABAABAABABAAABABBAAAABBAAAABBABABAABAABAABAB"; | |
Набор = Сред(шматрица, (V%10)*5+1, 5); | |
кодстр=":"; | |
Для н=1 По стрДлина(ШК) Цикл | |
С = Сред(НаборПечать, ((КодСимв(Сред(Набор, н, 1))-65)*10)+Число(Сред(ШК, н, 1))+1,1)+?(н=СтрДлина(ШК), "", ";"); | |
кодстр=кодстр + С; | |
КонецЦикла; | |
Возврат кодстр; | |
КонецФункции | |
//****************************************************************************** | |
Функция глШКДоп5(Штрихкод) Экспорт | |
Если СтрДлина(Штрихкод) > 13 Тогда | |
Возврат EAN13A5CodeGenerate(прав(СокрЛП(Штрихкод),5)); | |
Иначе | |
Возврат ""; | |
КонецЕсли; | |
КонецФункции |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
вызываем глШКДоп5(Штрихкод), чтобы получить печатное представление для дополнительного пятизначного кода. Сам штрихкод должен быть длиной 18 символов при этом.