Обработать нажатие Enter в форме ввода

1. imaster 7 09.09.11 21:39 Сейчас в теме
Доброго дня!
Как обработать нажатие Enter в поле ввода, даже если оно не изменилось?
Может плохо искал, но внятного ответа не найти не удалось.
adhocprog; +1 Ответить
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Поручик 4670 09.09.11 23:51 Сейчас в теме
(1)>>> внятного ответа не найти не удалось. Можно подробнее, это как?

Событие ОкончаниеВводаТекста, TextEditEnd
Вызывается после ввода текста при сходе с элемента управления
4. Octopus 337 10.09.11 09:02 Сейчас в теме
Если
На форме только одно поле ввода
, то это не значит, что
сходить с элемента управления некуда
. Вам в (2) предложили работающий метод - через обработчик ОкончаниеВводаТекста. Вы проверили и убедились, что не срабатывает?
6. cool.vlad4 2 10.09.11 10:14 Сейчас в теме
(1) Проще сделайте...положите на форму кнопу(можно сделать незаметно), сочетание клавиш и обработку назначте ей проведения...правда не уверен, что Enter она даст сделать
17. Serj1C 483 10.09.11 15:13 Сейчас в теме
(1) тебе (16)
ilego; Ne_Tobi; OlgaPPP; pvlunegov; St17; +5 Ответить
3. imaster 7 10.09.11 07:34 Сейчас в теме
На форме только одно поле ввода, сходить с элемента управления некуда.
Скриншот формы при открытии из документа:

Нужно нажать Enter, чтобы провести чек, но никак(
5. imaster 7 10.09.11 09:22 Сейчас в теме
Octopus,
Конечно проверил. Не работает. Оно же "Вызывается после ввода текста при сходе с элемента управления, ОкончаниеВводаТекста, TextEditEnd"
8. cool.vlad4 2 10.09.11 10:20 Сейчас в теме
(5) Нет, не поэтому, оно не годится потому, что вызывается после ввода текста, как раз сход с элемента управления вам и нужен.
7. cool.vlad4 2 10.09.11 10:18 Сейчас в теме
Enter по моему зарезервирован системой - для активизации соседнего элемента...можно использовать это..
9. timm00 139 10.09.11 10:36 Сейчас в теме
А разве нельзя на форме разместить еще один элемент, на который и будет фокус переключаться?) По-моему, гиперссылка тоже пойдет, а ее можно оочень маленькой сделать...
11. cool.vlad4 2 10.09.11 10:38 Сейчас в теме
(9) ну, так, я ему это и посоветовал...ставится кнопка...
10. tango 506 10.09.11 10:37 Сейчас в теме
вот так уходят лучшие годы.
блин, пардон, мне ж кто-то из учаснегов свою семеру прислал. отчет подрихтовать. и когда? ну, завтра наверняка
12. timm00 139 10.09.11 10:41 Сейчас в теме
13. DanilaDru 262 10.09.11 12:58 Сейчас в теме
Можно также рассмотреть ситуацию когда пользователь внес неправильную сумму в поле и вы её автоматом тут же отбили. В любом случае необходимо какое-то действие пользователя, которое будет подтверждать его согласие с введенной суммой. Все-таки кнопка в данном случае больше подходит.
16. Serj1C 483 10.09.11 15:11 Сейчас в теме
решение есть. через недокументированную возможность 1С

создай Командную Панель, скрой ее, добавь кнопку "Энтер"
при открытии формы назначь ей сочетание клавиш = БыстрыйВызов(13)
и все работает )

Процедура КоманднаяПанель1Энтер(Кнопка)
	Сообщить(ПолеВвода1);
КонецПроцедуры

Функция БыстрыйВызов(Код, Alt=0, Control=0, Shift=0) Экспорт
	Возврат ЗначениеИзСтрокиВнутр("{""#"",69cf4251-8759-11d5-bf7e-0050bae2bc79,1,
		|{0,"+ Формат(Код, "ЧН=0; ЧГ=0") +","+ Формат(Alt*16+Control*8+Shift*4, "ЧН=0; ЧГ=0") +"}
		|}");
КонецФункции

Процедура ПриОткрытии()
	ЭлементыФормы.КоманднаяПанель1.Кнопки.Энтер.СочетаниеКлавиш = БыстрыйВызов(13);
КонецПроцедуры
Показать


// проверено на 8.1.15, если получится - с тебя плюс))
Ok1803; noctar; MrFlanker; mangy; ilego; Maddy18; user725854; adhocprog; EVKash; shatunovs; Zaratustrator; Zedd4D; olegka.ru; it-tk-sibir; pasha_triniti; Kutuzov; TrbVLAD; user895546; Volchock; dj_tol; Бит; gPaskal; aximo; user822247; shard; sad123; myoker; OlegCh78; pvlunegov; корум; le0nid; Oegir; madway; alexdmitriev; Кузьмич; valafan; Seneka7608; xa1ter; sea2009; нормальный такой; MeinHerz; olegmedvedev; leles; Archikg; cool.vlad4; imaster; +46 Ответить
28. Oegir 15.12.16 13:23 Сейчас в теме
(16) 8.3 управляемая форма - работает...
Ан нет, при скрытии панели не работает. Максимум, что удалось сделать - задать стили цветов под фон формы, уменьшить размер кнопки до 1, убрать "ОтображениеФигуры" и поставить заголовок ".", но командная панель все равно занимает место на форме.
31. pvlunegov 157 10.04.17 13:36 Сейчас в теме
(16) прекрасно работающее универсальное решение, работает в случае управляемых и обычных форм.
Апплодирую стоя! Виват победителям, вы помогли - спасли меня уже дважды!
Первый раз - на управляемых формах - 2 раз на обычных формах!

(30) как я уже говорил, есть много элементов формы, где просто нет обработчиков событий нажатий на определенные клавиши, которые нужно обработать.
(30) Ваше решение - частное, для вашего случая, в общем случае не будет работать не будет, на управляемых формах тоже не работает.
33. Fragster 1138 10.04.17 13:47 Сейчас в теме
(31) я делал как раз на управляемых формах
36. nicxxx 254 25.05.18 13:38 Сейчас в теме
8.3.10.2561 - не работает. В созданном объекте "СочетаниеКлавишь" поле Клавиша равно Неопределено :(
Drivingblind; +1 Ответить
41. Drivingblind 228 12.12.19 13:12 Сейчас в теме
(36)
8.3.10.2561 - не работает. В созданном объекте "СочетаниеКлавишь" поле Клавиша равно Неопределено :(

в 8.3.13.1690 - не работает. Так же возвращает неопределено
37. dj_tol 103 17.09.18 08:45 Сейчас в теме
(16)
ЭлементыФормы.КоманднаяПанель1.Кнопки.Энтер.СочетаниеКлавиш = БыстрыйВызов(13);


1С:Предприятие 8.3 (8.3.10.2667)
Круто работает!!!!


&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Элементы.Ок.СочетаниеКлавиш= БыстрыйВызов(13);
КонецПроцедуры


&НаКлиенте
Процедура Ок(Команда)
	ЗакрытьСПередачейРезультата(Текст);
КонецПроцедуры

Функция БыстрыйВызов(Код, Alt=0, Control=0, Shift=0) Экспорт 
   Возврат ЗначениеИзСтрокиВнутр("{""#"",69cf4251-8759-11d5-bf7e-0050bae2bc79,1, 
      |{0,"+ Формат(Код, "ЧН=0; ЧГ=0") +","+ Формат(Alt*16+Control*8+Shift*4, "ЧН=0; ЧГ=0") +"} 
      |}"); 
КонецФункции
Показать
Alex17; noctar; MrFlanker; andrey7617; dakork; tezdal; Serj1C; +7 Ответить
43. GERDUSKA 02.10.20 12:54 Сейчас в теме
32. pvlunegov 157 10.04.17 13:38 Сейчас в теме
Кто не в курсе, сочетания клавиш для метода (13) можно посмотреть например здесь - http://jquery.page2page.ru/index.php5/%D0%9A%D0%BE%D0%B4%D1%8B_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE­%D0%BB%D0%BE%D0%B2_%D0%B8_%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D1%­88
14. roger83 62 10.09.11 13:38 Сейчас в теме
я бы добавил кнопку "ОК" и сделал ее кнопкой по умолчанию. Тогда она будет обрабатываться при нажатии Ctrl+Enter
15. imaster 7 10.09.11 15:05 Сейчас в теме
Всем спасибо за ответы.
Сочетание кроме Enter не принимается.
Поместил рядом кнопку, при переходе на неё, событие ОкончаниеВводаТекста из поля ввода всё равно не отрабатывает.
Как промежуточный вариант поставил рядом гиперссылку в виде точки, из минусов - в поле ввода приходится два раза нажимать Enter, если сумма не меняется.
18. imaster 7 10.09.11 16:41 Сейчас в теме
Serj1C, класс! Огромное спасибо, вот это то что надо! Теперь работает!:)
Платформа 8.2.14.519
user725854; +1 Ответить
19. cool.vlad4 2 10.09.11 16:46 Сейчас в теме
(18) Я тебе об этом в 6 говорил...у него зачем-то Вместо напрямую использования СочетаниеКлавиш используется через ЗначениеИЗСтрокиВнутр, ну красиво, да...
20. cool.vlad4 2 10.09.11 16:48 Сейчас в теме
Я так всегда делаю, кладу на форму списка кнопу и через горячие клавиши пользователь вызывает быстрые отборы(как либо нечеткий поиск). Удобно. А в 6 наверное нечетко выразился.
21. cool.vlad4 2 10.09.11 16:51 Сейчас в теме
А понял, зачем :D ...хитро...
22. imaster 7 10.09.11 16:54 Сейчас в теме
cool.vlad4,
правда не уверен, что Enter она даст сделать

Стандартными средствами и не даёт) В помощи не нашёл.
23. cool.vlad4 2 10.09.11 17:06 Сейчас в теме
(22) Да :D (16) А как ты догадался, вот до этого Формат(Код, "ЧН=0; ЧГ=0") +","+ Формат(Alt*16+Control*8+Shift*4, "ЧН=0; ЧГ=0") ?
26. Serj1C 483 10.09.11 17:49 Сейчас в теме
(23) методом проб и ошибок)
по чесноку взял на вооружение (как видно из оценок) ровно 2 года назад http://infostart.ru/public/22214/
pvlunegov; +1 Ответить
24. imaster 7 10.09.11 17:10 Сейчас в теме
25. cool.vlad4 2 10.09.11 17:19 Сейчас в теме
Черт, как я без этого жил ;) Забавно, но как раз что-то подобное мне сейчас и нужно...
27. toshka 17.09.11 06:00 Сейчас в теме
(1,3) Все очень просто!
Поле ввода суммы оплаты - Событие ОкончаниеВводаТекста в конце пишем - ПодключитьОбработчикОжидания("ХХХ", 0.1, Истина);

Процедура ХХХ()
ЭтаФорма.Закрыть(НужныйПараметр);
....

И никаких извращений.... Проверено 8.1, 8.2
29. pvlunegov 157 10.04.17 13:18 Сейчас в теме
(27) а если нужно обработать событие нажатия на клавишу Delete на ячейке ПолеТабличногоДокумента, где нет обработчиков?
Думаете все так просто?
Без (16) нет решений, весь инет облазил!
(16) рабочее решение - помогло!
39. Sinoptik_spb 04.12.19 11:35 Сейчас в теме
(29) Добрый день! А получалось ли у вас обращаться к СочетаниямКлавиш ЭФ при редактировании ячейки таблицы УФ ? Я проверил, сочетание не доступно в таком случае. Возможно, я что-то делаю не так, поэтому уточняю
40. pvlunegov 157 10.12.19 11:21 Сейчас в теме
(39) Добрый день!
Сочетания клавиш можно назначить на конкретный элемент управляемой формы. Например, на поле формы, или на колонку табличной части формы и т.п.
Исходя из этого у разработчика есть возможности:
- Назначать сочетания клавиш на скрытые элементы формы.
-- Для этого создаем элемент формы "Декорация", ставим у нее свойство "Заголовок" в пустое. При этом на форме такой элемент будет сьедать место, но на нем ничего не будет отображаться. Его можно спрятать в угол формы.
-- В свойстве элемента "декорация" по имени "Сочетание клавиш" вставляем нужное сочетание клавиш.
-- В обработчике события у декорации устанавливаем процедуру обработчик события
-- Нажимаем в режиме предприятия при открытой форме сочетание клавиш
-- Срабатывает процедура (см. выше)
-- Таких декораций и их обработчиков можно накидать несколько, у каждой свои сочетания клавиш и обработчики событий, срабатывающие на сочетания клавиш

Это решение я уже использовал в своих разработках на Управляемых формах.
30. Fragster 1138 10.04.17 13:21 Сейчас в теме
я делал через многострочное поле высотой одну строку и обработку изменения текста редактирования
34. a.boloban 21.06.17 19:40 Сейчас в теме
У управляемой формы есть свойство "ПоведениеКлавишиEnter" - либо переход по элементам, либо кнопка по умолчанию. Все давно украдено до нас (с)
adhocprog; lavash67; shatunovs; +3 Ответить
38. vendim 24 15.08.19 14:47 Сейчас в теме
Однако, для мобильного приложения не стоит обольщаться:

ЗначениеИзСтрокиВнутр (ValueFromStringInternal)

Доступность:
Сервер, толстый клиент, внешнее соединение.

Так что в мобильном не работает.

(34)
У управляемой формы есть свойство "ПоведениеКлавишиEnter" - либо переход по элементам, либо кнопка по умолчанию. Все давно украдено до нас (с)


Так же в мобильном отсутствует!
adhocprog; +1 Ответить
35. pvvpvv 10 21.06.17 20:12 Сейчас в теме
Я с вас балдею. Со всех. Вы кто? Программисты или где?
Если программист не знает,что было "ДО", значит он никогда не узнает, что будет после. Это вам о событиях и о программистах.
42. RustIG 1382 27.05.20 11:20 Сейчас в теме
(0) У формы есть свойство "Поведение Enter". Оно имеет два значения: "Кнопка "по умолчанию" и "Переход по элементам формы".
adhocprog; lavash67; +2 Ответить
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)