|
|
Как обработать внешнее событие от сканера ШК в управляемом приложении? |
☑ |
|
0
3dice
11.11.11
✎
20:31
|
Коллеги, помогите разобраться. В обычном приложении процедура ОбработкаВнешнегоСобытия() прекрасно работает, а вот в управляемом приложении нет. Как обработать событие от сканера ШК в управляемом приложении?
|
|
|
1
Рэйв
11.11.11
✎
21:03
|
(0)Вот ты блин реально нашел что спросить вечером в пятницу...
|
|
|
2
Mnemonic1C
11.11.11
✎
21:25
|
(0) Вот мне тоже интересно кстати, подписался
|
|
|
3
vmv
11.11.11
✎
21:30
|
(0) воспользуйся СП, все можно заточить глядя на видимость методов.
не парь мозг - будь мужиком, а не сварливой истеричной бабой
звините, достали завуаорованые лентяи-халявшики, вопиящие "плиз" и что-то в этом роде
|
|
|
4
Джинн
11.11.11
✎
21:31
|
(0) Открой типовую УТ11 и посмотри. Там все есть.
|
|
|
5
3dice
12.11.11
✎
21:25
|
Типовая УТ работает как обычное приложение...Там все понятно. Вопрос в другом
Пишу в модуле обычного приложения приложения:
Перем Сканер;
Процедура ПриНачалеРаботыСистемы()
ПодключитьВнешнююКомпоненту("AddIn.Scaner45");
Сканер = Новый("AddIn.Scaner45");
КонецПроцедуры
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
Сообщить(Данные);
КонецПроцедуры
Все работает, сообщает штрих-код.
Меняю режим работы на управляемое приложение и помещаю туда тот же код.
Не работает. Не возникает такого события. С остальными управляемыми формами работает как обычно, предопределенная процедура - ВнешнееСобытие(Источник, Событие, Данные). А вот когда не открыта ни одна форма... куда девается событие??
|
|
|
6
3dice
12.11.11
✎
21:26
|
"Помещаю туда..." - всмысле в модуль управляемого приложения.
|
|
|
7
3dice
12.11.11
✎
21:29
|
vmv, не понял, что такое СП?
|
|
|
8
3dice
12.11.11
✎
21:42
|
&НаСервере
Функция НайтиПоКоду(ШтрихКод)
Возврат Справочники.Товары.НайтиПоКоду(ШтрихКод);
КонецФункции
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если ЭтаФорма.ВводДоступен() Тогда
Если Источник = "BarCodeScaner" и Событие = "BarCodeValue" Тогда
ШтрихКод = Число(Данные);
ЭлементТовар = НайтиПоКоду(ШтрихКод);
Если ЭлементТовар.Пустая() Тогда
Ответ = Вопрос("Товар не найден в базе. Создать новый?", РежимДиалогаВопрос.ДаНет);
Если Ответ = КодВозвратаДиалога.Да Тогда
ШК = Новый Структура("ШтрихКод", ШтрихКод);
Форма = ПолучитьФорму("Справочник.Товары.Форма.ФормаЭлемента", ШК);
Форма.Открыть();
КонецЕсли;
Иначе
//Как активизировать запись в форме списка
КонецЕсли;
КонецЕсли;
КонецЕсли;
Scaner.DataEventEnabled = 1;
КонецПроцедуры
|
|
|
9
3dice
12.11.11
✎
21:43
|
Вот еще вопрос... :) Прям в коде написал
|
|
|
10
Torquader
13.11.11
✎
00:20
|
Интересный вопрос в том, в каком месте будет создан объект - на клиенте или на сервере (особенно актуально в случае Web-клиента).
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший