Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
15:04:2008, 18:18
|
|
Новенький ![]() Группа: Программист Сообщений: 10 Регистрация: 15:04:2008 Пользователь №: 16 656 Репутация: 0
|
Здравствуйте.
очень большая к вам просьба. помогите разобраться как подвязать сканер штрих кода к самописной конфе. слышал , что тма должны использоваться специальные библиотеки...шрифт... нужно самое простое: на документе чтоб печатался штрих код, сканер брал его и записывал, что документ прошел. т.е. штрихкод здесь просто как идентификатор документа. помогите, если не сложно. я не прошу сделать за меня что-то...решить. прошу только помочь разобраться. как работать со сканером. какой-нить пример функций чтоли...как выхватывать со сканера, то что у него на входе...как печатать сам код шьтиха, для этого ж нужен специальный шрифт как я понимаю, чтоб сканер его разобрал. может необходимы специальные библиотеки подключать... сканер Metrologic MS9520. прошу вас помочь. |
|
Сообщение
#1
|
|
![]() |
|
|
15:04:2008, 19:18
|
|
Продвинутый ![]() ![]() Группа: Программист Сообщений: 140 Регистрация: 28:05:2004 Пользователь №: 567 Репутация: 0
|
возьми ТиС для примера, там и формирование штрих кода есть и считывание.
если морочиться на тему именно шрифта при печати, то в свое время помог из Бухгалтерии там на квартальных отчетах печатается штрих код. считывание обрабатывается в процедуре Обработкавнешнихсобытий(<пер>) покапайся в ТиСе там все понятно... |
|
Сообщение
#2
|
|
|
|
15:04:2008, 20:04
|
|
Ассенизатор головного мозга ![]() ![]() ![]() Группа: Достойный программист Сообщений: 275 Регистрация: 28:11:2006 Из: Минск Пользователь №: 8 195 Специализация: Программист 1С Репутация: 6
|
Держи мегапак для работы со сканером.
В нем есть всё необходимое для подключения, сканирования и печати штрих-кодов.
Прикрепленные файлы
|
|
Сообщение
#3
|
|
|
|
16:04:2008, 03:53
|
|
Новенький ![]() Группа: Программист Сообщений: 10 Регистрация: 15:04:2008 Пользователь №: 16 656 Репутация: 0
|
Спасиб. вот еще такой интересный вопрос появился...
Дело в том, что сканер скорее всего будет работать с двумя конфигурациями. Т.е. будет одновременно запущено два приложения. Оператор сам будет выбирать приложение в котором ему работать. Вазможна ли работа сканера в двух приложениях одновременно? Т.е. ввел сначала в одном приложении, потом перешел на другое ввел там. Чтоб два приложения были одновременно запущены, ну и чтоб поочередно можно было работать в них с одним сканером? Сообщение отредактировал IngWar2008 - 16:04:2008, 03:54 |
|
Сообщение
#4
|
|
|
|
16:04:2008, 06:42
|
|
Новенький ![]() Группа: Программист Сообщений: 92 Регистрация: 18:07:2007 Из: Минск Пользователь №: 11 895 Специализация: Инженер-программист сектора расчетов с персоналом Репутация: 2
|
Держи мегапак для работы со сканером. В нем есть всё необходимое для подключения, сканирования и печати штрих-кодов. Прикрепленные файлы ___________________.rar ( 295.11 килобайт ) Кол-во скачиваний: 4 выкини плз в Зипе((( рар не пахаеть у мну(( а мегапак хочецца иметь) |
|
Сообщение
#5
|
|
|
|
16:04:2008, 07:04
|
|
Новенький ![]() Группа: Программист Сообщений: 10 Регистрация: 15:04:2008 Пользователь №: 16 656 Репутация: 0
|
|
|
Сообщение
#6
|
|
|
|
16:04:2008, 08:39
|
|
Новенький ![]() Группа: Программист Сообщений: 92 Регистрация: 18:07:2007 Из: Минск Пользователь №: 11 895 Специализация: Инженер-программист сектора расчетов с персоналом Репутация: 2
|
Спс)
|
|
Сообщение
#7
|
|
|
|
16:04:2008, 09:02
|
|
Продвинутый ![]() ![]() Группа: Программист Сообщений: 140 Регистрация: 28:05:2004 Пользователь №: 567 Репутация: 0
|
IngWar2008
насколько я знаю comий нет, с клавиатурным можно поэксперементировать... |
|
Сообщение
#8
|
|
|
|
16:04:2008, 09:48
|
|
Ассенизатор головного мозга ![]() ![]() ![]() Группа: Достойный программист Сообщений: 275 Регистрация: 28:11:2006 Из: Минск Пользователь №: 8 195 Специализация: Программист 1С Репутация: 6
|
IngWar2008
Можно реализовать через подключение - отключение сканера. То есть, в первой конфе, зашел, открыл обработку, нажал кнопку - сканер подключился, отсканировал, нажал кнопку - сканер отключился Открыл вторую конфу - проделал те же действия. Благо, подключение - отключение осуществляется мгновенно. Либо, как предложил Про, через прерывание клавиатуры. |
|
Сообщение
#9
|
|
|
|
6:05:2008, 06:39
|
|
Новенький ![]() Группа: Программист Сообщений: 10 Регистрация: 15:04:2008 Пользователь №: 16 656 Репутация: 0
|
нужна помощь:
разобраться со сканеров штрих кодов в разрыв клавиатуры. хочу сделать, что б при печати документа формировался штрих код, который потом считывали б сканером в другом месте. и после того как считали его в этом документе бы допустим проставлялся бы статус, что мол договор вернули. т.е. вот напечатали договор, в нем есть штрих код. потом этот договор сканируют сканером(после того как все подпишут, как он пройдет все инстанции...) и в этом же документе проставлялся бы статус возврата. ну что б было понятно, что договор вернули, что мол все инстанции обошли вс готово. ну там просто организавать поиск по значению считанного штриха , открыть этот документ и изменить в нем реквезит. как я понял, мне надо 1. сформировать глобальную функцию формирования штрих кода(ну там получается что в нем ток номер договора будет передоваться, в штрих коде) которая будет записывать в штрих код номер документа. 2. функцию сканирования, которая будет получать данные при реагировании сканера. я там смотрел примеры...что-то не очень разобрался... ну здесь впринципе понятно: а вот еще, нужен же еще специальный шрифт? Функция глСформироватьШтрихКод(кДоку) Экспорт //формат штрих кода // стандарт кодировки - Code-39, произвольной длины код, ограничивается символом "звездочка" // с двух сторон. поддерживает произвольную длину. // использовать будем // 1 код базы (для этой - "1") // 2-6 код элемента справочника "Проекты" // 7-12 сумма рубли // 13-14 сумма копейки // 15-20 номер документа Квитанция НомерКвитанции = ДополнитьЛидирующимиНулями(кДоку.номерДок,6); кДоку = кДоку.кДокументу.текущийДОкумент(); тДок = СоздатьОбъект("Документ."+кДоку.вид()); тДок.НайтиДокумент(кДоку); тДок = тДок.текущийДокумент(); Если тДок.Выбран()=0 Тогда Сообщить("Ошибка поиска документа!"); Возврат 0; КонецЕсли; //начинаем формировать штрихкод barcode="*"; //код этой базы barcode=barcode+"1"; //формируем 5 символьный номер проекта. Все параметры фиксированной длины // поэтому их необходимо дополнять нулями Если тДок.кПРоекту.выбран()=1 тогда НомерПроекта = тДок.кПроекту.Код; Иначе //квитанция на привязана к проекту НомерПроекта = 99999; КонецЕсли; НомерПроекта = ДополнитьЛидирующимиНулями(НомерПроекта,5); barcode = barcode + НомерПроекта; СуммаПоДокументу = глПолучитьСуммуПоДокументу(тДок); СуммаРуб = Цел(СуммаПоДокументу); СуммаРуб = ДополнитьЛидирующимиНулями(СуммаРуб,6); barcode=barcode+СуммаРуб; СуммаКоп = ДополнитьЛидирующимиНулями((СуммаПоДокументу - СуммаРуб)*100,2); barcode=barcode+СуммаКоп; barcode=barcode+НомерКвитанции; //заканчиваем штрих-код barcode=barcode+"*"; Возврат barcode; КонецФункции здесь в принципе понятно...функция заноса данных в штрих код. вот ток не очень понятно: СуммаРуб = ДополнитьЛидирующимиНулями(СуммаРуб,6); т.е. получается что надо что б штрих был записан полностью значениями? т.е. если переменная короткая , то ее надо дополнять нулями? потом вызываем эту функцию: barCode = глСформироватьШтрихКод(Док); и собственно печатаем "barCode" - это ж и есть наш штрих код. а вот как потом его считать, после того как распечатали? можете помочь? очень надо... |
|
Сообщение
#10
|
|
|
|
6:05:2008, 12:55
|
|
Новенький ![]() Группа: Программист Сообщений: 10 Регистрация: 15:04:2008 Пользователь №: 16 656 Репутация: 0
|
большая просьба. может кто-нить привести простенький примерчик процедуры закодирования числа в штрих код
и процедуры чтения сканером? |
|
Сообщение
#11
|
|
|
|
7:05:2008, 04:45
|
|
Гуру ![]() ![]() ![]() Группа: Достойный программист Сообщений: 258 Регистрация: 1:08:2007 Из: Владивосток Пользователь №: 12 120 Специализация: Специалист 1С Репутация: 10
|
CODE Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные) Перем СЗ, Товар, ШК, СпрТов, СпрШК; Если ( Событие = "BarCodeValue") Тогда СканерШК.ПосылкаДанных=0; СпрШК = СоздатьОбъект("Справочник.ПартииТовара"); ШК=Прав(Данные,13); Если СпрШК.НайтиПоКоду(ШК,0)=0 Тогда ШК=СокрЛП(Данные); СпрТов = СоздатьОбъект("Справочник.Номенклатура"); Если СпрТов.НайтиПоРеквизиту("ШтрихКод", ШК, 1)=0 Тогда Предупреждение(" Товар с кодом "+ШК+" не найден !!!"); СканерШК.ПосылкаДанных=1; Возврат; Иначе СЗ=СоздатьОбъект("СписокЗначений"); СЗ.УдалитьВсе(); СЗ.ДобавитьЗначение(0,"ШтрихКод"); СЗ.ДобавитьЗначение(СпрТов.ТекущийЭлемент(),"Товар"); СЗ.ДобавитьЗначение(1,"Количество"); СканерШК.ПосылкаДанных=1; ОткрытьФорму("Документ.Чек", СЗ); КонецЕсли; Иначе СЗ=СоздатьОбъект("СписокЗначений"); СЗ.УдалитьВсе(); СЗ.ДобавитьЗначение(ШК,"ШтрихКод"); СЗ.ДобавитьЗначение(СпрШК.ТекущийЭлемент().Владелец,"Товар"); СЗ.ДобавитьЗначение(1,"Количество"); СканерШК.ПосылкаДанных=1; ОткрытьФорму("Документ.Чек", СЗ); КонецЕсли; КонецЕсли; КонецПроцедуры CODE Функция ШТ_КОД(товар) экспорт
ШтрКод = Строка(товар.ШтрихКод); Префикс = "10"; Если СтрДлина(ШтрКод) <12 Тогда Предупреждение("Печать данного типа штрих-кода не поддерживается"); возврат(""); ШтрКод =Префикс+ДобавитьСлева(Строка(товар.Владелец.код),5,"0")+ДобавитьСлева(Строка(товар.Код),5,"0"); ИначеЕсли (Лев(ШтрКод,2)="10") или (лев(ШтрКод,2)="21") Тогда ШтрКод =Префикс+ДобавитьСлева(Строка(товар.Владелец.код),5,"0")+ДобавитьСлева(Строка(товар.Код),5,"0"); ИначеЕсли (СтрДлина(ШтрКод)<13) и (СтрДлина(ШтрКод)>8) Тогда ШтрКод=ДобавитьСлева(ШтрКод,12,"0"); Иначе ШтрКод=Лев(ШтрКод,12); КонецЕсли; ШтрКод = EAN13CodeGenerate(Число(ШтрКод)); возврат(ШтрКод); КонецФункции |
|
Сообщение
#12
|
|
![]() |
|
Текстовая версия | Сейчас: 16:05:2008 - 17:52 |