Имя: Пароль:
1C
1С v8
Помогите настроить сканер ШК для нового документа
0 sagitt
 
21.11.17
10:22
Конфигурация УТ 11. Имеется подключенный сканер ШК, работает нормально.

Дописал свой документ.
В форме документа написал обработчик событий Обработка оповещения и Внешнее событие.
Если открыть форму моего документа и прочитать сканером какой-нибудь  штрихкод, то ни одно из этих событий не происходит. Однако, если открыть мой документ и документ РеализацияТоваровИУслуг(одновременно), то начинают возникать оба события в моем документе. Причем не важно,  форма какого документа активна.
Явно что-то я не доделываю. Подскажите пожалуйста, что надо сделать, чтобы сканер работал нормально.
Спасибо.
1 lodger
 
21.11.17
10:32
а попробуй две типовые формы со сканером открыть и просканировать что-нибудь.
кажется, что обе формы откликнутся.

чтобы понять что форма активна юзают ВводДоступен()
дальше в СП почитаешь.
2 Остап Сулейманович
 
21.11.17
10:38
(0)
ВнешнееСобытие в твоем документе скорее всего не нужно. Проверь в модуле формы РеализацияТоваровИУслуг есть ли такое?
3 sagitt
 
21.11.17
10:41
Откликаются действительно все открытые формы.
ВводДоступен() в типовых формах используется в Обработка оповещения(), а она в моей форме не вызывается, пока не будет открыта какая-нибудь типовая форма.

И что я должен сделать, чтобы стала вызываться Обработка оповещения() без открытия дополнительных окон - непонятно.
4 Остап Сулейманович
 
21.11.17
10:42
+ (2) Сейчас метода такая - внешнее событие ловится на уровне приложения. А не формы, как раньше. Затем обработчик внешнего события делает Оповестить. И в обработчике оповещения КАЖДОЙ открытой формы можно обработать событие.
5 sagitt
 
21.11.17
10:44
ВнешнееСобытие() может и не нужно, в стандартных решениях используется Обработка оповещения(), но оно тоже не вызывается...пока не открою стандартную форму.
6 Остап Сулейманович
 
21.11.17
11:11
(5) "не вызывается...пока не открою стандартную форму." Обработчик к событию привязан?
7 lodger
 
21.11.17
11:12
(5) открой форму, правый клик по корню дерева элементов - свойства.
там внизу в свойствах Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) прописана как обработка оповещения?
в описании процедура 3 параметра указано?
8 lenochka-semicova
 
21.11.17
11:27
(0) Смотреть нужно не только ОбработкаОповещения, хотя она должна быть, и в ней нужно проверять ВводДоступен()
нужно сделать по аналогии как в типовых формах

ПриОткрытии - подключить МенеджерОборудованияКлиентПереопределяемый.НачатьПодключениеОборудованиеПриОткрытииФормы(ЭтаФорма, "СканерШтрихкода");

ПриЗакрытии - отключить НЕ ЗАБЫТЬ МенеджерОборудованияКлиентПереопределяемый.НачатьОтключениеОборудованиеПриЗакрытииФормы(ЭтаФорма);

также нужно ПриСозданииНасервере – инициализировать ОбщегоНазначенияУТ.НастроитьПодключаемоеОборудование(ЭтаФорма);.


Внешнее событие для УТ не нужно, т.к. в УТ срабатывает глобальное ВнешнееСобытие, которое посылает оповещение всем открытым формам, а в каждой открытой форме проверяется в обработке оповещения - активна ли она - т.е. ВводДоступен()=Истина. Такая форма будет одна из всех открытых.
Пример из УТ-же
    Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда
9 sagitt
 
21.11.17
14:52
Большое спасибо. Очень помогли.

На всякий случай добавлю,может комк пригодится:

в реквизиты формы надо добавить два реквизита:

ИспользоватьПодключаемоеОборудование
и
ПоддерживаемыеТипыПодключаемогоОборудования
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой