Имя: Пароль:
1C
1С v8
Внешнее событие - сканер ШК - что не так делаю - событие срабатывает два раза.
0 RomaH
 
naïve
11.07.13
13:08
Документ больничный лист
сканирую номер листка, пишу его в документ и закрываю форму

Процедура ВнешнееСобытие(Источник, Событие, Данные)
   
   Если Не ВводДоступен() Тогда
       Возврат;
   КонецЕсли;
   
   Если Событие = "Штрихкод" Тогда
       Объект.НомерЛисткаНетрудоспособности = ПривестиКМаскеБольничного(Данные);    
       Записать(Новый Структура("РежимЗаписи",РежимЗаписиДокумента.Проведение));
       Закрыть();
   КонецЕсли;
   
КонецПроцедуры
1 RomaH
 
naïve
11.07.13
13:10
но листок может создаваться на основании того же типа документа

т.е. у меня открыта форма документа листка, в ней жму создать на основании
открывается вторая форма поверх первой (первая теряет фокус)

сканер - внешнее событие сначала срабатывает в первой, а потом принимается за вторую

как избежать второго вызова?
2 RomaH
 
naïve
11.07.13
13:14
вроде должна помочь пауза (что бы внешнее событие успело сработать в остальных формах) где-нибудь перед Закрыть()
3 Cyberhawk
 
11.07.13
13:15
Никак не избежать - внешнее событие срабатывает для всех открытых форм
4 Cyberhawk
 
11.07.13
13:15
(если вру - меня поправят)
5 Cyberhawk
 
11.07.13
13:16
А если ты спрашиваешь про то, как запрограммировать конфигурацию - то как вариант при создании на основании передавай в объект маркер, а в процедуре ВнешнееСобытие анализируй его
6 Bober
 
11.07.13
14:46
(0) как вариант: подключено в 1с к "рабочему месту" два сканера.
7 mTema32
 
11.07.13
14:58
Внешнее событие отрабатывает только для активной формы. Скорее всего правильный ответ в (6).
8 RomaH
 
naïve
11.07.13
15:01
(7) да ну
9 Darych
 
11.07.13
15:09
(7) не путай внешнее собатие и сканер в разрыв клавы)
Ошибка? Это не ошибка, это системная функция.