Имя: Пароль:
1C
1С v8
Сканирование и модальные окна
0 KarpovDeniska
 
19.12.12
12:39
Тема уже есть, только старая ОбработкаВнешнегоСобытия и Модальные окна....., но вкратце опишу проблему.
Находясь в форме списка например "поступление товаров" сканируем штрихкод, далее ищем по этому штрихкоду поступление и открываем модально  форму документа "Поступление товаров". Далее необходимо отсканировать штрихкод товара, но увы внешнее событие осталось висеть в форме списка и пытается найти поступление по этому штрихкоду. Собственно вопрос, каким образом переключить обработчик внешнего события в модальную форму и при закрытии этой формы вновь вернуть обработчик в форму списка?Пробовал много способов, везде свои косяки.
1 KarpovDeniska
 
19.12.12
12:51
Up
2 mikecool
 
19.12.12
12:52
отключать обработчик от старой формы и подключать в новой
но не помню - у меня это кажется не взлетело
3 KarpovDeniska
 
19.12.12
12:54
Пробовал, ты прав , не взлетает.Отключаю от старой,подключаю к новой, все ок. Потом отключаю от новой, подключаю к старой и фиг, он ожидает завершения внешнего события (еще первого самого) и ругается на то что порт уже занят.
4 le_
 
19.12.12
12:55
А для чего окно модально открывается?
5 KarpovDeniska
 
19.12.12
12:57
Чтобы юзер не мог переключить случайно окно на форму списка, не закрыв его нормально.
6 KarpovDeniska
 
19.12.12
12:59
(4) будет пытаться например сканировать поступления, а по факту форма документа открыта и свернута, и он будет тупить почему документ не сканируется
7 KarpovDeniska
 
19.12.12
13:04
Ну или может в 1С есть еще какой-нибудь способ сделать неактивными все остальные окна , кроме открытого (чтобы на них не возможно было переключиться не закрыв открытое окно), кроме  ОткрытьМодально()?
8 le_
 
19.12.12
13:04
(6) Выполни процедуру.
Потом сверни окно документа и снова выполни.
Процедура КнопкаВыполнитьНажатие(Кнопка)
   Док = Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру("1-Ш-000007", '20100103');
   Фрм = Док.ПолучитьФорму("ФормаДокумента");
   Фрм.Открыть();
КонецПроцедуры

Окно каждый раз перемещается на передний план.
9 KarpovDeniska
 
19.12.12
13:15
(8) да это понятно, а если например окно свернуто, юзер полазил по интерфейсу, открыл форму какого нить другого документа,потом восстановил свернутую форму и продолжил сканировать.(сработает подключение нового клиента, и начнется сканирование в последнюю открытую форму где есть метод ПодключитьКлиента(), а после восстановления старой формы в нее сканироваться уже ничего не будет).Или я чего то неправильно понимаю?
10 le_
 
19.12.12
13:19
(9) При сканировании товара, если открыто несколько документов, можно выдавать пользователю окошко с перечнем открытых документов, чтобы он мог выбрать, в какой сканировать.
11 ICWiner
 
19.12.12
13:27
А каноническое

Если Не ВводДоступен() Тогда
  Возврат;
КонецЕсли;

чем не устраивает?
12 KarpovDeniska
 
19.12.12
13:27
(10) ну да , как вариант,спасибо. А все же, с модальным открытием проблема в (0) решаема, или решений нет?
13 KarpovDeniska
 
19.12.12
13:29
(11) тем что начнет сканировать в другую форму, если открыта
Независимо от того, куда вы едете — это в гору и против ветра!