Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save bsa7/9248696 to your computer and use it in GitHub Desktop.

Select an option

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

bsa7 commented Feb 27, 2014

Copy link
Copy Markdown
Author

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

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