Имя: Пароль:
1C
1С v8
Как обработать внешнее событие от сканера ШК в управляемом приложении?
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-клиента).