Имя: Пароль:
1C
 
Как на форме отловить нажатие Enter?
,
0 AneJIbcuH
 
18.09.19
12:51
День добрый! Те кто работает с 1С:Розница возможно сталкивался с такой ошибкой: http://joxi.ru/4AklBDvHo3NxQr
Вот тоже поднадоела, поковырял и вот что обнаружил. Набиваем чек, нажимаем, например, оплата "Наличные" http://joxi.ru/5mdBjV0T3wvk4A кнопкой мыши.
Открылась следом форма оплаты http://joxi.ru/bmoJZekU3ZMxRr  и если тут бездумно шлёпать несколько раз на клавиатуре "Enter", поймаем эту самую ошибку.
Дело в чем, при однократном нажатии Enter форма оплаты нормально закроется и чек распечатается, а если достаточно быстро нажать несколько раз Enter: форма оплаты закрывается, далее внутри программы идёт обработка объектов и печать чека (а это пара секунд) и в этот момент мы клавишей Enter снова запускаем оплата "Наличными" (см. первый скрин), т.к. при первом нажатии мы эту кнопку активировали.
Так вот, как бы избежать этот момент.
например, можно ли как -то определенные кнопки основного окна формы РМК запретить реагировать на Enter.
1 dezss
 
18.09.19
12:54
Событие формы ВнешнееСобытие.
Там покопайся.
2 dezss
 
18.09.19
12:56
Только компонента нужна для перехвата клавиатуры.
3 3achem
 
18.09.19
12:57
(0) Порядок обхода?
4 AneJIbcuH
 
18.09.19
12:57
(1) не, вообще к данному событию в этом случае нет обращения.
5 dezss
 
18.09.19
13:00
(4) -> (2)
6 dezss
 
18.09.19
13:01
Ну еще проще есть вариант. После нажатия кнопки "Наличные", тупо менять текущий элемент формы)))
7 Cyberhawk
 
18.09.19
13:02
Все просто: тебе надо убирать фокус с кнопки "Наличные", тем самым повторное нажатие Ентеров по возврату в эту форму не будет вызывать повторное нажатие на эту кнопку
8 AneJIbcuH
 
18.09.19
13:04
(7) Да, согласен. Попробую
9 AneJIbcuH
 
18.09.19
13:19
ЭтотОбъект.ТекущийЭлемент = Элементы. ...;

Вроде решает проблему, надо ещё погонять )
10 AneJIbcuH
 
18.09.19
13:21
(9) симпатичнее ТекущийЭлемент = Элементы. ...;