0
dimogen
20.04.12
✎
12:34
|
Подскажите, как можно осуществить печать штрих кода на чеке. Есть обработка, которая печает чек, и как в нее засунуть штрих код? делаю на платформе 8.1, конфига торговля стройматериалами.
Вставил в обработку эту:
Функция глСформироватьEAN13(ШК) Экспорт
// Функция вычисляет контрольный символ кода EAN13
// дополняет им переданный параметр и возвращает сформированный EAN13
ШК=СокрЛП(ШК);
ШК=Лев(ШК,12);
ШК=глСтрокаПривести(ШК,"0",12,1);
ШК=Число(ШК);
Четн = 0;
Нечетн = 0;
Для Индекс=1 По 6 Цикл
Четн=Четн+Сред(ШК,2*Индекс,1);
КонецЦикла;
Четн=Четн*3;
Для Индекс=1 По 6 Цикл
Нечетн=Нечетн+Сред(ШК,2*Индекс-1,1);
КонецЦикла;
КонтЦифра=(Четн+Нечетн)/10-Цел((Четн+Нечетн)/10);
КонтЦифра=10-Цел(КонтЦифра*10);
Если КонтЦифра=10 Тогда
КонтЦифра=0;
КонецЕсли;
Возврат Число(Строка(ШК)+Строка(КонтЦифра));
КонецФункции
Затем:
Процедура СформироватьШтрихКод(ШК) //Формирование внутреннего шрих кода
Перем Префикс;
Если ШК=0 Тогда
// если штрихкод уже задан, то сначала нужно уточнить,
// а действительно ли нужно формировать
Если Вопрос("Штирх-код задан. Сформировать новый?",4)<>6
Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Префикс = "20";
ШК=глСформироватьEAN13(Строка(Префикс)+глСтрокаПривести(Строка(Документы.ЧекККМ.НомерЧека),"0",6,1)
+ глСтрокаПривести(Строка(Документы.ЧекККМ.ДатаЧека),"0",4,1));
КонецПроцедуры // СформироватьШтрихКод
и где печается первая строка добавил(отмечено плюсами):
Если КопияЧека Тогда
ПечатьСтроки("НА СКЛАД",ШиринаСтроки/3,Истина);
++++ПечатьСтроки(ШК, -ШиринаСтроки/3 + ШиринаСтроки, Истина);+++
КонецЕсли;
Что делаю не так? пробую печатать на термопринтере люк хан. драйвер баркод поставил + шрифты
|
|
3
Torquader
23.04.12
✎
01:07
|
Если он печатается на принтере чеков или фискальном регистраторе-то есть специальные команды для печати штрих-кода.
Для принтера чеков используется Esc-последовательность,а для фискального регистратора - специальная команда драйвера.
Только не все ФР и принтеры умеют печатать штрих-коды.
|
|