|
Сканер штрихкода сканирует только 1 раз | ☑ | ||
---|---|---|---|---|
0
degot
10.04.17
✎
10:10
|
Всем привет! Есть самописная конфигурация и есть сканер honeywell mk3580 quantum подключенный в режиме эмуляции COM. В модуле приложения такой код:
Функция ПриНачалеРаботыСистемы() Если Пользователи.ТребуетсяПодключениеСканераШтрихКодов() Тогда глСканерШК = ПодключитьСканерШК(); Иначе глСканерШК = Неопределено; КонецЕсли; КонецФункции Функция ПриЗавершенииРаботыСистемы() Если глСканерШК <> Неопределено Тогда ОтключитьСканерШК(); КонецЕсли; КонецФункции Функция ПодключитьСканерШК() Экспорт Перем barcodeScanner; Попытка #Если ВебКлиент Тогда УстановитьВнешнююКомпоненту("ОбщийМакет.СканерШтрихкода"); ПодключитьВнешнююКомпоненту("ОбщийМакет.СканерШтрихкода", "AddIn.Scanner"); #Иначе ПодключитьВнешнююКомпоненту("AddIn.Scanner"); #КонецЕсли barcodeScanner = new("AddIn.Scanner"); barcodeScanner.Open("СканерШК"); barcodeScanner.EventName="BarCodeValue"; barcodeScanner.БитДанных = 8; barcodeScanner.Порт = 3; barcodeScanner.Скорость = 9600; barcodeScanner.ClearInput(); barcodeScanner.ClearOutput(); barcodeScanner.AutoDisable = 0; barcodeScanner.DataEventEnabled = 1; barcodeScanner.DeviceEnabled = 1; barcodeScanner.FreezeEvents = 0; barcodeScanner.Claim(1); Исключение Message(ОписаниеОшибки()); КонецПопытки; Возврат barcodeScanner; КонецФункции Процедура ОтключитьСканерШК() Экспорт глСканерШК.ClearInput(); глСканерШК.ClearOutput(); глСканерШК.DeviceEnabled = 0; глСканерШК.Release(); глСканерШК.Close(); КонецПроцедуры При первом запуске 1с все работает как надо. Если закрыть 1с и заново открыть, то сканирует только 1 раз, потом внешнее событие не срабатывает. Помогает только перезагрузка компа. В чем может быть дело? |
|||
1
LienXo
10.04.17
✎
10:18
|
Процедуру обработкавнешнегособытия покажи
|
|||
2
degot
10.04.17
✎
10:30
|
(1) Глобальной нету, в модуле формы что-то типа
&НаКлиенте Процедура ВнешнееСобытие(Источник, Событие, Данные) Если Событие = "BarCodeValue" Тогда Результат = РаботаСоШтрихкодами.ПолучитьСсылкуНаОбъектПоШтрихкоду(Данные); Если ТипЗнч(Результат) = Тип("СправочникСсылка.Сотрудники") Тогда ТекущийСотрудник = Результат; ЗаполнитьДокументыВРаботе(); Иначе ТекущийСотрудник = Неопределено; Информация = "Не удалось идентифицировать штрихкод"; Объект.ДокументыВРаботе.Очистить(); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
3
degot
10.04.17
✎
11:10
|
ап
|
|||
4
LienXo
10.04.17
✎
11:19
|
Если не ошибаюсь, после отработки необходимо очистить вход сканера. Что то типа
barcodeScanner.ClearInput(); barcodeScanner.ClearOutput(); |
|||
5
Широкий
10.04.17
✎
11:34
|
(4) Да. да. Надо вызвать функцию очистки очереди
|
|||
6
LienXo
10.04.17
✎
12:07
|
+(4) добрался до рабочего компа. В типовой УТ 10 вроде так
Объект.Драйвер.ПосылкаДанных = 0; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |