Сканнер штрих-кодов

1. MIracloid2000 15.08.14 12:04 Сейчас в теме
Добрый день!

Давно не подключал сканер ШК в терминале, возникла проблемка
Процедура ПриНачалеРаботыСистемы()
	Если ЗагрузитьВнешнююКомпоненту("vk_rs232.dll")=0 Тогда
		Сообщить("Внешняя компонента не была загружена!","!");
	Иначе
		rs232 = СоздатьОбъект("AddIn.vk_rs232");
	КонецЕсли;
	
	//Начинаем слушать порт
	Попытка
		rs232.ОткрытьПорт("COM1"); 
		rs232.КонецСтроки = Симв(13);
		rs232.ПерехватКлавиатуры(1);
	Исключение	
		rs232_2.ОткрытьПорт("COM3"); 
		rs232_2.КонецСтроки = Симв(13);
		rs232.ПерехватКлавиатуры(1);
	КонецПопытки;
КонецПроцедуры

Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
	Если Событие = "BarCodeValue" Тогда
	      ОткрытьФорму("Отчет",Данные,"sk.ert");				
	КонецЕсли;
КонецПроцедуры
Показать


А проблем в том, что, если никаких журналов не открыто, то при считывании кода, открывается обработка,
НО, если открыт любой журнал, то, кроме обработки, еще и открывается документ на котором стоит курсор

Как обойти эту проблему?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. MIracloid2000 15.08.14 12:15 Сейчас в теме
(1) MIracloid2000, из Глобального модуля я привел обработку события, а в журнале нет перехвата
2. pvase 401 15.08.14 12:09 Сейчас в теме
Смотреть в процедуру ОбработкаВнешнегоСобытия в форме журанала и в глобальном модуле.
4. tdr1225 37 15.08.14 13:56 Сейчас в теме
если открыт любой журнал, то, кроме обработки, еще и открывается документ на котором стоит курсор

Похоже, что в журнале срабатывает <Enter>
5. MIracloid2000 15.08.14 14:07 Сейчас в теме
(4) tdr1225, да, считываение штрих-кода и должно заканчиваться
rs232.КонецСтроки = Симв(13);
тогда 1С запускает ОбработкуВнешнегоСобытия()
6. bizon2009 15.08.14 14:16 Сейчас в теме
(5)Необязательно. Ловите например префикс и открывайте обработку программно. А так эмитируется работа оператора на клавиатуре.
7. pvase 401 15.08.14 14:19 Сейчас в теме
Как вариант вставить в форму журнала обработку "ОбработкуВнешнегоСобытия()" и обрабатывать ею, присвоив какой то переменной значение 1, Например: НеОткрывать = 1; А в процедуре журнала "ПриВыбореСтроки()" проверять значение переменной. Простейший код формы журнала документов будет примерно такой:
Перем НеОткрывать;

//==========================================================­============
Процедура ОбработкаВнешнегоСобытия(Парам)
	// Код обработкчика
	НеОткрывать = 1;
КонецПроцедуры // 
//==========================================================­============
Процедура ПриВыбореСтроки()
	Если НеОткрывать = 1 Тогда
		НеОткрывать = 0;
		СтатусВозврата(0);
	КонецЕсли;
КонецПроцедуры

НеОткрывать = 0;
Показать
8. MIracloid2000 15.08.14 15:03 Сейчас в теме
(7) pvase, посмотрел, как это сделано в Комплексной, специальная форма с вводом строки ШК
хотелось бы сделать универсальное, но видать будут таки жать кнопку и сканировать
9. pvase 401 15.08.14 15:11 Сейчас в теме
(8) MIracloid2000, Можно сделать глобальную переменную, но процедуру "ПриВыбореСтроки()" придется вставлять в каждый журнал, и оттуда вызывать глобальную процедуру, где делать проверку. В принципе вставить во все формы журнала не сложно, где то была разработка, можно поискать на сайте 1cpp.ru.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот