|
Помогите настроить сканер ШК для нового документа | ☑ | ||
---|---|---|---|---|
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
|
Большое спасибо. Очень помогли.
На всякий случай добавлю,может комк пригодится: в реквизиты формы надо добавить два реквизита: ИспользоватьПодключаемоеОборудование и ПоддерживаемыеТипыПодключаемогоОборудования |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |