Как напечатать штрихкод? #337224


#0 by zyto
Дано: строка символов типа "ABZY0123456789". (только латинские буквы+цифры). Нужно: закодировать эту строку в штрихкод, и вывести на ОБЫЧНЫЙ принтер. В дальнейшем этот штрихкод должен считать сканер штрихкодов. EAN13 сразу отпадает, т.к. насколько я понимаю - ему неподвластны буквы. Порывшись в интернете пришёл к выводу, что в полне подойдут code39 или code128. Нашёл под них шрифты, всё печатается, всё хорошо, но только до момента считывания этого штрихкода сканером. Он его просто НЕ видит! Так же вычитал, что для EAN13, для нормальной работы необходимо добавлять символы "1", т.е. перед выводом строка должна быть примерно такой: "!1234!576!", ну или что-то похожее... Может кто подскажет алгоритм для code39 или code128? Какие символы должны добавляться для их нормальной работы? Заранее благодарен! ЗЫ Почему-то сканер не считывает штрихкод с налоговых деклараций. Так и должно быть? Другие штрихкоды считываются на ура, как только числовые, так и с буквами.
#1 by AlexWolf
barcode.ocx
#2 by sapphire
Как вариант, воспользуйся генеришь картинку в wmf и всё. Читается всегда.
#3 by Мелкий бес
у сканеров есть инструкция, где описан порядок их программирования
#4 by zyto
Насколько я понял - barcode.ocx - только для 77, или это не так? А если несколько надо на одной странице + ещё что-то выводить? Как быть с этой картинкой? Сохранять в файл, потом вставлять в ТабДок? Не... Мне программировать не надо, мне надо, чтоб он прочитал напечатанный штрихкод...
#5 by zyto
ЗЫ Тут ещё наткнулся в инете на разговоры о том, что может помочь компонента 1CBarCod.dll, что она есть на ИТС, и бесплатна. Так ли это? (сейчас ИТС под рукой нет, только завтра смогу глянуть). Или дальше копать?
#6 by sapphire
И баркод.оск пойдет
#7 by zyto
ходят слухи, что это шараварная компонента, и если её не покупать - выскакивает окошка с мольбой о покупке. Так ли это? Есть ли она на ИТС?
#8 by Конь в пальто
ниразу не ругалась
#9 by sapphire
Есть, для использования из-под 1С - бесплатна.
#10 by zyto
Ок, завтра попробую. Всем спасибо за ответы!
#11 by zyto
Вобщем если кому интересно. Для печати штрихкода (в 8.х) устанавливаем 1CBarCode.exe (лежит в сидюк:1CItsEXETradeWare1C1CBarCode). Далее: создаём макет, Таблица=>Рисунки=>Вставить объект, вставляем в нужную область (ВАЖНО! Границы объекта должны быть полностью внутри конкретной области/ячейки), и выбираем тип - Элемент управления=>1C.V8.Печать штрих-кодов. Обзываем как-нубудь этот объект. Далее в коде пишем: Область.Рисунки.МойШтрихкод.Объект.ТипКода = ТипКода (тип кода - число, в хелпе описано какой какому соответствует, например CODE39 = 3). Область.Рисунки.МойШтрихкод.Объект.Сообщение = СокрЛП(НужныйШтрихкод); (НужныйШтрихкод = "AKJD134598") Оно само формирует нужный штрихкод, и выводит его... Ещё замечание - рамку нужно убрать, иначе сканер тоже может глючить...
#12 by Venom
а для 7.7 есть чтонибудь подобное 1CBarCode.exe
#13 by zyto
Говорят есть Barcode.ocx, но я с ней не работал пока...
#14 by Aleksey_3
////////////////////////////////////////////////////////////////////// Функция IsCode39Char( Str )    Code39CharSet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%";    Флаг = 1;    Для Поз = 1 По СтрДлина(Str)    Цикл        Если Найти(Code39CharSet,Сред(Str,Поз,1)) = 0        Тогда            Флаг = 0;            Прервать;        КонецЕсли;    КонецЦикла;    Возврат Флаг; КонецФункции ////////////////////////////////////////////////////////////////////// Функция Code39Generate(код) экспорт    // Код 39 должен быть заключен в *    Если IsCode39Char( код ) = 0    Тогда        Сообщить("Код для CODE39 включает недопустимые символы.");        Возврат "";    КонецЕсли;    Возврат "*" + Строка(код) + "*"; КонецФункции
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С