![]() |
![]() |
![]() |
|
Как вызвать процедуру ОбработкаОповещения на созданной форме? | ☑ | ||
---|---|---|---|---|
0
altaykniga
11.06.15
✎
14:30
|
Приветствую, уважаемые спецы! Создавал обработку типа РМК(рабочее место кассира) в УНФ, добавил в модуль формы процедуру ОбработкаОповещения, в свойствах формы указал данную процедуру в событиях: обработкаОповещения, ВнешнееСобытие. Но при считывании штрихкода сканером ничего не происходит, процедура ОбработкаОповещения из модуля формы не вызывается (смотрел отладчиком). Что делаю не так?
|
|||
1
Heckfy
11.06.15
✎
14:32
|
Может?
Глобальный контекст (Global context) ОбработкаВнешнегоСобытия (ExternEventProcessing) Синтаксис: ОбработкаВнешнегоСобытия(<Источник>, <Событие>, <Данные>) Параметры: <Источник> Тип: Строка. Источник события. <Событие> Тип: Строка. Наименование события. <Данные> Тип: Строка. Данные для события. Описание: Возникает при посылке внешним приложением сообщения, сформированного в специальном формате. Внешнее событие сначала обрабатывается всеми открытыми формами, имеющими процедуру-обработчик этого события, а затем может быть обработано в процедуре-обработчике модуля управляемого приложения. Примечание: Обработка следующего события возможна только после завершения обработки текущего события. См. также: УправляемаяФорма, событие ВнешнееСобытие Глобальный контекст, метод ПодключитьВнешнююКомпоненту |
|||
2
Fish
гуру
11.06.15
✎
14:34
|
(0) Емнип, для вызова процедуры ОбработкаОповещения требуется Оповестить:
"УправляемаяФорма (ManagedForm) ОбработкаОповещения (NotificationProcessing) Синтаксис: ОбработкаОповещения(<ИмяСобытия>, <Параметр>, <Источник>) Параметры: <ИмяСобытия> Тип: Строка. Имя события. Может быть использовано для идентификации сообщений принимающими их формами. <Параметр> Параметр сообщения. Могут быть переданы любые необходимые данные. <Источник> Источник события. Например, в качестве источника может быть указана другая форма. Описание: Вызывается во всех созданных формах при вызове метода Оповестить. Параметры обработчика совпадают с параметрами метода Оповестить. " |
|||
3
VikingKosmo
11.06.15
✎
14:35
|
Рекомендую заглянуть в МодульУправляемогоПриложения, процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
|
|||
4
altaykniga
11.06.15
✎
14:38
|
(3) открываю мою обработку, считываю штрихкод, ничего не происходи... Процедура ОбработкаВнешнегоСобытия в МодулеУправляемогоПриложения даже не запускается
|
|||
5
Волшебник
модератор
11.06.15
✎
14:39
|
(4) Надо подключить сканер к программе
|
|||
6
altaykniga
11.06.15
✎
14:49
|
(5) он подключен. В этой же базе данных в документе СчетНаОплату сканер штрикоды считывает, а в моей обработке нет
|
|||
7
altaykniga
11.06.15
✎
14:51
|
такое ощущение, что не срабатывает где-то метод Оповестить(). Т.е. если я открываю мою обработку, затем открываю форму документа СчетНаОплату, и в этом счете считываю штрихкод, где-то запускается метод оповестить, который распространяется на все открытые формы... В этом случае процедура ОбработкаОповещения в моей обработке вызывается
|
|||
8
altaykniga
11.06.15
✎
15:05
|
При считывании штрикода в документе СчетНаОплату:
1. вызывается Процедура ВнешнееСобытие(ИмяСобытия, Параметр, Источник) из формы документа (здесь ничего не происходит) 2. вызывается Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) из модуля управляемого приложения () (здесь исполняется код Оповестить()) 3. вызывается Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) из формы документа Вопрос: почему из документа вызывается процедура ОбработкаВнешнегоСобытия модуля обычного приложения, а из моей обработки не вызывается? |
|||
9
altaykniga
11.06.15
✎
16:04
|
буду поднимать
|
|||
10
altaykniga
11.06.15
✎
18:20
|
разобрался. В документе СчетНаОплату срабатывала ОбработкаВнешнегоСобытия, т.к. в процедуре ПриОткрытии() был написан следующий код:
ОписаниеОшибки = ""; ПоддерживаемыеТипыВО = Новый Массив(); ПоддерживаемыеТипыВО.Добавить("СканерШтрихкода"); Если НЕ МенеджерОборудованияКлиент.ПодключитьОборудованиеПоТипу(УникальныйИдентификатор, ПоддерживаемыеТипыВО, ОписаниеОшибки) Тогда ТекстСообщения = НСтр( "ru = 'При подключении оборудования произошла ошибка: |""%ОписаниеОшибки%"".'" ); ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ОписаниеОшибки%", ОписаниеОшибки); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); КонецЕсли; Добавил его на форму обработки, все заработало. Благодарю всех за помощь! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |