|
Два сканера штрих-кода на локальном компьютере - с какого COM-порта событие? | ☑ | ||
---|---|---|---|---|
0
Vladal
28.09.11
✎
13:07
|
Локально (не в терминале) на компьютере подключены 2 считывателя магнитных карт (вход - COM4 и выход - COM5).
Работают они как сканеры ШК, компонента стандартная 1С - scanopos. Для каждого сканера создал отдельный объект - ДрайверВхода и ДрайверВыхода, соответственно для каждого определил его параметры: ДрайверВхода.БитДанных = 8; ДрайверВхода.Порт = НомерПорта; ДрайверВхода.Скорость = 9600; ДрайверВхода.СтопБит = 0; ДрайверВхода.СтопСимвол = 13; ДрайверВхода.ИмяСобытия = "ПолученШтрихкод"; ... ДрайверВыхода.БитДанных = 8; ДрайверВыхода.Порт = НомерПорта; ДрайверВыхода.Скорость = 9600; ДрайверВыхода.СтопБит = 0; ДрайверВыхода.СтопСимвол = 13; ДрайверВыхода.ИмяСобытия = "ПолученШтрихкод"; Процедура ВнешнееСобытие(Источник, Событие, Данные) имеет такие параметры н6езависимо, с какого устройства они получены: Источник = "Сканер штрихкода", Строка Событие = "ПолученШтрихкод", Строка Данные = "0003020848", Строка В Предприятии Сервис-Параметры компонента показывает, что всё ОК, по кнопке ТестУстройства в окне видно, с какого порта пришли данные. А как отловить порт в 1С? http://i074.radikal.ru/1109/d1/86c3bad17aa4.png |
|||
1
Vladal
28.09.11
✎
13:10
|
НомерПорта для каждого драйвера свой. Да не смущает это светлые умы мистян )))
Процедура ПодключитьДрайверВхода(НомерПорта) ... ДрайверВхода.БитДанных = 8; ДрайверВхода.Порт = НомерПорта; ДрайверВхода.Скорость = 9600; ДрайверВхода.СтопБит = 0; ДрайверВхода.СтопСимвол = 13; ДрайверВхода.ИмяСобытия = "ПолученШтрихкод"; ... КонецПроцедуры Процедура ПодключитьДрайверВыхода(НомерПорта) ... ДрайверВыхода.БитДанных = 8; ДрайверВыхода.Порт = НомерПорта; ДрайверВыхода.Скорость = 9600; ДрайверВыхода.СтопБит = 0; ДрайверВыхода.СтопСимвол = 13; ДрайверВыхода.ИмяСобытия = "ПолученШтрихкод"; ... КонецПроцедуры |
|||
2
Serginio1
28.09.11
✎
13:15
|
ДрайверВхода.ИмяСобытия = "ПолученШтрихкод"+НомерПорта;
|
|||
3
Vladal
28.09.11
✎
13:19
|
Оп! Ща...
|
|||
4
Vladal
28.09.11
✎
13:24
|
Сэр! Заработало!
Процедура ВнешнееСобытие(Источник, Событие, Данные) Если Событие = "ПолученШтрихкод"+НормеПортаВхода Тогда Сообщить("Вход"); Штрихкод = СерверТО.ОбработатьСобытие(Данные); ИначеЕсли Событие = "ПолученШтрихкод"+НормеПортаВыхода Тогда Сообщить("Выход"); Штрихкод = СерверТО.ОбработатьСобытие(Данные); Иначе Сообщить("Загрушка"); КонецЕсли; |
|||
5
Vladal
28.09.11
✎
13:33
|
(2) упростил немного (4). Пишу для интересующихся:
Процедура ПодключитьДрайверВхода(НомерПорта) ... ДрайверВхода.БитДанных = 8; ДрайверВхода.Порт = НомерПорта; ДрайверВхода.Скорость = 9600; ДрайверВхода.СтопБит = 0; ДрайверВхода.СтопСимвол = 13; ДрайверВхода.ИмяСобытия = "Вход"; ... КонецПроцедуры Процедура ПодключитьДрайверВыхода(НомерПорта) ... ДрайверВыхода.БитДанных = 8; ДрайверВыхода.Порт = НомерПорта; ДрайверВыхода.Скорость = 9600; ДрайверВыхода.СтопБит = 0; ДрайверВыхода.СтопСимвол = 13; ДрайверВыхода.ИмяСобытия = "Выход"; ... КонецПроцедуры ... Процедура ВнешнееСобытие(Источник, Событие, Данные) Если Событие = "Вход" Тогда ... ИначеЕсли Событие = "Выход" Тогда ... Иначе Сообщить("Загрушка"); КонецЕсли; КодКарточки = Данные; КонецПроцедуры |
|||
6
Vladal
28.09.11
✎
13:37
|
На рисунке видны события: 2 стандартных и 2 моих "Вход" и "Выход".
http://i063.radikal.ru/1109/47/75941ccb322c.png |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |