Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Работа со сканером, Основные принципы работы со сканером, процедуры, функции, библиотеки..
IngWar2008
Вставить ник
сообщение 15:04:2008, 18:18
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 10
Регистрация: 15:04:2008
Пользователь №: 16 656



Репутация: - 0 +


Здравствуйте.

очень большая к вам просьба. помогите разобраться как подвязать сканер штрих кода к самописной конфе.
слышал , что тма должны использоваться специальные библиотеки...шрифт...
нужно самое простое: на документе чтоб печатался штрих код, сканер брал его и записывал, что документ прошел. т.е. штрихкод здесь просто как идентификатор документа. помогите, если не сложно.
я не прошу сделать за меня что-то...решить.
прошу только помочь разобраться.
как работать со сканером. какой-нить пример функций чтоли...как выхватывать со сканера, то что у него на входе...как печатать сам код шьтиха, для этого ж нужен специальный шрифт как я понимаю, чтоб сканер его разобрал. может необходимы специальные библиотеки подключать...
сканер Metrologic MS9520.
прошу вас помочь.
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 11)
Pro
Вставить ник
сообщение 15:04:2008, 19:18
Цитата Ответить 


Продвинутый
**

Группа: Программист
Сообщений: 140
Регистрация: 28:05:2004
Пользователь №: 567



Репутация: - 0 +


возьми ТиС для примера, там и формирование штрих кода есть и считывание.
если морочиться на тему именно шрифта при печати, то в свое время помог из Бухгалтерии там на квартальных отчетах печатается штрих код.
считывание обрабатывается в процедуре Обработкавнешнихсобытий(<пер>) покапайся в ТиСе там все понятно...
Подняться вверх 
 
Сообщение #2
LSH
Вставить ник
сообщение 15:04:2008, 20:04
Цитата Ответить 


Ассенизатор головного мозга
***

Группа: Достойный программист
Сообщений: 275
Регистрация: 28:11:2006
Из: Минск
Пользователь №: 8 195
Специализация: Программист 1С



Репутация: - 6 +


Держи мегапак для работы со сканером.
В нем есть всё необходимое для подключения, сканирования и печати штрих-кодов.
Прикрепленные файлы
Прикрепленный файл  ___________________.rar ( 295.11 килобайт ) Кол-во скачиваний: 18
 
Подняться вверх 
 
Сообщение #3
IngWar2008
Вставить ник
сообщение 16:04:2008, 03:53
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 10
Регистрация: 15:04:2008
Пользователь №: 16 656



Репутация: - 0 +


Спасиб. вот еще такой интересный вопрос появился...
Дело в том, что сканер скорее всего будет работать с двумя конфигурациями.
Т.е. будет одновременно запущено два приложения. Оператор сам будет выбирать приложение в котором ему работать. Вазможна ли работа сканера в двух приложениях одновременно?
Т.е. ввел сначала в одном приложении, потом перешел на другое ввел там. Чтоб два приложения были одновременно запущены, ну и чтоб поочередно можно было работать в них с одним сканером?

Сообщение отредактировал IngWar2008 - 16:04:2008, 03:54
Подняться вверх 
 
Сообщение #4
jcnby
Вставить ник
сообщение 16:04:2008, 06:42
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 92
Регистрация: 18:07:2007
Из: Минск
Пользователь №: 11 895
Специализация: Инженер-программист сектора расчетов с персоналом



Репутация: - 2 +


Цитата(LSH @ 15:04:2008 - 23:04) *
Держи мегапак для работы со сканером.
В нем есть всё необходимое для подключения, сканирования и печати штрих-кодов.

Прикрепленные файлы
___________________.rar ( 295.11 килобайт ) Кол-во скачиваний: 4



выкини плз в Зипе((( рар не пахаеть у мну(( а мегапак хочецца иметь)
Подняться вверх 
 
Сообщение #5
IngWar2008
Вставить ник
сообщение 16:04:2008, 07:04
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 10
Регистрация: 15:04:2008
Пользователь №: 16 656



Репутация: - 0 +


Держи
Прикрепленные файлы
Прикрепленный файл  ______.zip ( 411.88 килобайт ) Кол-во скачиваний: 11
 
Подняться вверх 
 
Сообщение #6
jcnby
Вставить ник
сообщение 16:04:2008, 08:39
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 92
Регистрация: 18:07:2007
Из: Минск
Пользователь №: 11 895
Специализация: Инженер-программист сектора расчетов с персоналом



Репутация: - 2 +


Спс)
Подняться вверх 
 
Сообщение #7
Pro
Вставить ник
сообщение 16:04:2008, 09:02
Цитата Ответить 


Продвинутый
**

Группа: Программист
Сообщений: 140
Регистрация: 28:05:2004
Пользователь №: 567



Репутация: - 0 +


IngWar2008
насколько я знаю comий нет, с клавиатурным можно поэксперементировать...
Подняться вверх 
 
Сообщение #8
LSH
Вставить ник
сообщение 16:04:2008, 09:48
Цитата Ответить 


Ассенизатор головного мозга
***

Группа: Достойный программист
Сообщений: 275
Регистрация: 28:11:2006
Из: Минск
Пользователь №: 8 195
Специализация: Программист 1С



Репутация: - 6 +


IngWar2008
Можно реализовать через подключение - отключение сканера.
То есть, в первой конфе, зашел, открыл обработку, нажал кнопку - сканер подключился, отсканировал, нажал кнопку - сканер отключился
Открыл вторую конфу - проделал те же действия.
Благо, подключение - отключение осуществляется мгновенно.
Либо, как предложил Про, через прерывание клавиатуры.
Подняться вверх 
 
Сообщение #9
IngWar2008
Вставить ник
сообщение 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
IngWar2008
Вставить ник
сообщение 6:05:2008, 12:55
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 10
Регистрация: 15:04:2008
Пользователь №: 16 656



Репутация: - 0 +


большая просьба. может кто-нить привести простенький примерчик процедуры закодирования числа в штрих код
и процедуры чтения сканером?
Подняться вверх 
 
Сообщение #11
kaa
Вставить ник
сообщение 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


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись
   

 

RSS Текстовая версия Сейчас: 16:05:2008 - 17:52
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net