Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bsa7/9248696 to your computer and use it in GitHub Desktop.
Save bsa7/9248696 to your computer and use it in GitHub Desktop.
1C 7.7 - Генерация печатного представления 5-ти значного дополнительного штрихкода EAN13 - EAN13A5, ISSN, supplement 5 dig
//******************************************************************************
Функция ЭтоЦифра(стр, позиция=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));
Иначе
Возврат "";
КонецЕсли;
КонецФункции
@bsa7
Copy link
Author

bsa7 commented Feb 27, 2014

вызываем глШКДоп5(Штрихкод), чтобы получить печатное представление для дополнительного пятизначного кода. Сам штрихкод должен быть длиной 18 символов при этом.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment