Горячие клавиши в 1С для пользователя

1. Seneka7608 7 13.11.15 13:11 Сейчас в теме
На сколько я знаю, в 1С 8.2 есть 2 способа задания горячих клавиш для формы:
1. Назначение сочетания клавиш в свойствах команд
2. Указание символа & перед буквой заголовка формы, тогда появляется подчеркивание и такая горячая клавиша должна срабатывать с Alt

У обоих методов есть свои недостатки (зависимость от текущей раскладки, от текущего элемента формы и т.п.)

Кто знает, есть ли где-то документация по работе этих горячих клавиш? Конкретно интересует почему в обработке (см. вложение) горячая клавиша срабатывает без нажатия кнопки Alt и можно ли этого избежать.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1488 13.11.15 13:19 Сейчас в теме
(1) Seneka7608, в обработке значит активный элемент в меню при открытии был.

Вложения нет у вас.
6. Seneka7608 7 13.11.15 16:02 Сейчас в теме
(2) Xershi, Горячие клавиши

Не помогает установка текущего
8. Xershi 1488 13.11.15 16:08 Сейчас в теме
(6) Seneka7608, так и что не так работает?
11. Seneka7608 7 13.11.15 16:39 Сейчас в теме
(8) Xershi, повторяю вопрос: "почему в горячие клавиши (К, О) срабатывают без нажатия кнопки Alt?"
В справке, большой белой книге (в двух томах) и ИТС про данное поведение я ничего не нашёл.
12. PetroP 13.11.15 16:42 Сейчас в теме
(11) Seneka7608, Alt используется для выхода в главное меню.
14. Seneka7608 7 13.11.15 16:50 Сейчас в теме
(12) PetroP, боюсь что вы не правы Работа с клавиатурой:
"Если в меню программы есть подчеркнутые буквы, чтобы открыть соответствующее меню, нажмите клавишу ALT и подчеркнутую букву.
Если в элементе диалогового окна есть подчеркнутая буква, можно нажать ALT + эта буква, чтобы выбрать соответствующий параметр."
Тоже самое логично распространить и на окно с кнопками.
16. spacecraft 13.11.15 16:59 Сейчас в теме
(14) Seneka7608, с чего такие умозаключения? Меню и кнопки на форме это разные сущности в любом языке программирования. Для кнопок есть отдельное свойство назначения клавиш. Вот там и укажите какие надо.
18. Seneka7608 7 13.11.15 22:28 Сейчас в теме
(16) spacecraft,
Меню и кнопки на форме это разные сущности в любом языке программирования

Согласен, но то что диалоговое окно очень близко к форме с кнопками - это не будете отрицать? Не вижу смысла делать для них разное поведение.

Для кнопок есть отдельное свойство назначения клавиш

Оно во многом меня не устраивает, опишу реальную ситуацию.

На форме несколько таблиц, у каждой есть свое контекстное меню с кнопками, для некоторых из этих кнопок заданы горячие клавиши. Назначения клавиш для кнопки из контекстного меню таблицы работает только когда данная таблица активна, т.е. чтобы нажать горячую кнопку таблицы 1, нужно эту таблицу выделить, а это либо несколько нажатий Tab (Shift+Tab), либо работа мышью. Пропадает вся прелесть горячих кнопок (это основной недостаток). Второй недостаток: с формой постоянно работает тысяча пользователей, приучить всех изучать главные клавиши - не реально, при использовании акселераторов через подчеркивание буквы в названии команды, пользователь сразу видит какая горячая клавиша позволяет эту команду вызвать.

Несколько команд таблиц открывают другие окна программы, пускай одна их них висит на горячей клавише Alt+Я (для примера). Если пользователь сознательно нажимает горячую клавишу, он делает это с Alt и получает ожидаемый ответ системы. Если случайно нажимает "Я" (промахнулся) открывается другое окно - это некорректное поведение системы.

Есть идеи как избежать такого поведения?
idjumatov; +1 Ответить
19. spacecraft 13.11.15 22:41 Сейчас в теме
(18) Seneka7608,
Согласен, но то что диалоговое окно очень близко к форме с кнопками - это не будете отрицать?
Вы не поняли. Кнопки это отдельная сущность. И ни с чем их сравнивать нельзя.
Могу посоветовать использовать типовое решение от 1С. Создайте подменю. Туда переместить кнопки. Назначить кнопкам нужные клавиши. Если нужно показать пользователю комбинации клавиш, то выводить внизу информацию (в виде кнопок, или декораций), которую можно прятать.

PS. Я не рассматриваю кнопки как сущности в javaFX или в XAML. Там они контейнеры, но все равно со своими особенностями.
20. idjumatov 17 08.08.23 11:38 Сейчас в теме
(18)
Пропадает вся прелесть горячих кнопок (это основной недостаток)


Полностью с Вами согласен, коллега.

Я сам столкнулся с этой проблемой. К счастью удалось найти решение, которое, к сожалению, нигде не описано.

Чтобы изменить контекст горячих клавиш команды - нужно
1) Добавить группу команд
2) Выбрать источник у группы команд "Глобальные команды командной панели формы"
3) Поместить туда нужную команду

Ниже скриншоты из моей консоли запросов
Прикрепленные файлы:
17. PetroP 13.11.15 17:25 Сейчас в теме
(14) Seneka7608, вот проверил. Часть программ действительно работает с альтом, часть - без (например, LibreOffice). Может без альта срабатывает, если нет активного поля ввода? Т. е. фича?
3. BackinSoda 13.11.15 14:00 Сейчас в теме
...и можно ли этого избежать.

Попробуйте при открытии ставить фокус на какой-нибудь не активный элемент формы (с надписью и документРезультатом работает, со всякими панельками и полями ввода - нет )
ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.Надпись;

хотя при переключении/нажатии по разным элементам, опять будет срабатывать горячая клавиша.
4. Seneka7608 7 13.11.15 15:51 Сейчас в теме
Вложение забыл прикрепить, теперь не получается...
5. Xershi 1488 13.11.15 15:58 Сейчас в теме
(4) Seneka7608, к новому сообщению можно)
7. Seneka7608 7 13.11.15 16:06 Сейчас в теме
Ещё раз прикрепил =)
Прикрепленные файлы:
ТестГорячиеКлавиши.epf
9. Xershi 1488 13.11.15 16:18 Сейчас в теме
У вас команды формы, так вот когда форма активна их можно вызвать.

Документация есть в справке, книгах разработчика, а так же на ИТС.
10. PetroP 13.11.15 16:39 Сейчас в теме
2. Указание символа & перед буквой заголовка формы, тогда появляется подчеркивание и такая горячая клавиша должна срабатывать с Alt

Откуда информация? Поведение стандартно для диалогов виндоуз приложений: нажатие клавиши без Alt.
13. Seneka7608 7 13.11.15 16:43 Сейчас в теме
(10) PetroP, вот у меня открыта Mozilla Firefox, это виндоуз приложение. В командной панели я вижу подчёркнутую букву "С" в слове "Справка", она срабатывает только по Alt+С, но не срабатывает по С.
15. BackinSoda 13.11.15 16:56 Сейчас в теме
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ТекущийЭлемент = Элементы.Декорация2;
КонецПроцедуры
работает, если декорация - картинка (Вид - надпись).
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот