5.12. Горячие клавиши#

Note

Статья находится в стадии написания.

5.12.1. Назначение#

Термин Горячие клавиши является собирательным названием сочетаний клавиш на клавиатуре, нажимаемым пользователем одновременно. Является способом быстро, без использования мыши, вызвать на выполнение некоторый предопределенный функционал. Такой как наиболее часто используемые операции или действия.

Если сочетание клавиш состоит только из одной клавиши, то оно записывается просто как название этой клавиши. Например: Esc - клавиша “escape”.

Если сочетание клавиш состоит из более чем одной клавиши, то оно записывается как названия всех клавиш, составляющих сочетание, разделенных знаком плюс. Например: Ctrl+B - одновременное нажатие клавиш Control и латинской B.

Если в сочетании используется клавиша, расположенная на дополнительной клавиатуре, то в ее названии указывается модификатор Num. Например: Num + - клавиша “плюс” на дополнительной клавиатуре.

Note

Если конкретное сочетание Горячих клавиш не назначено в GlobalServer, или не назначено прикладным разработчиком для активной выборки, или назначено в GlobalServer, но переназначено на пустое значение прикладным программистом для активной выборки и, одновременно, не назначено в меню и тулбаре приложения, то нажатие пользователем такого сочетания будет обработано браузером, согласно его предпочтениям.

5.12.2. Список горячих клавиш#

Фреймворк предоставляет следующие виды горячих клавиш:

  1. Типовые горячие клавиши (горячие клавиши для некоторых стандартных операций)

  2. Глобальные горячие клавиши (горячие клавиши, реализованные на низких уровнях сервера приложений и фреймворка)

  3. Горячие клавиши приложения (горячие клавиши, назначенные операциям в прикладных модулях)

5.12.2.1. Типовые горячие клавиши#

Горячие клавиши фрейма/типовые горячие клавиши#

Горячая клавиша

Описание

Мнемоника

Esc

Закрыть форму.

CLOSEFORMCANCEL

F1

Подсказка.

HELP

F2

Закрыть форму с сохранением.

CLOSEFORMOK

F4

Открыть карточку редактирования.

CARDEDIT

F11

Детализация.

SHOWTAB

F12

Обновить.

REFRESH

Ctrl+B

Отменить все изменения на форме.

CANCELFORM

Ctrl+S

Сохранить изменения.

SAVEFORM

Ctrl+Alt+I

Показать информацию об объекте.

SHOWABOUTOBJECT

Shift+Ctrl+Alt+A

Открыть диалог аудита объекта.

SHOWAUDITOBJECT

Shift+Ctrl+Alt+F

Открыть диалог аудита открытия форм.

SHOWAUDITSEL

5.12.2.2. Глобальные горячие клавиши#

Глобальные горячие клавиши#

Горячая клавиша

Описание

Мнемоника

Esc

Отмена редактирования (в состоянии редактирования). Закрытие формы/диалога.

HK_CANCELEDIT

Ins

Выбрать в мультиселекте.

HK_MULTI_SELECT

Enter

Начать редактирование.

HK_STARTEDIT

Enter

Закончить редактирование.

HK_ENDEDIT

F7

Применить универсальный фильтр.

HK_UNI_FLT_OK

Num -

Свернуть дерево.

HK_COLLAPSE_TREE

Ctrl+Enter

Открыть в редакторе.

HK_SHOWEDITOR

Ctrl+-

Закрыть текущую ветку дерева.

HK_TREE_CLOSE_CURRENT_NODE

Ctrl+=

Открыть текущий узел дерева.

HK_TREE_OPEN_CURRENT_NODE

Ctrl+Del

Скрыть колонку.

HK_HIDE_COLUMN

Ctrl+F7

Отфильтровать по выбранной ячейке.

HK_FILTER_BY_FOCUSED_CELL

Ctrl+F9

Выполнение отладочного макроса.

HK_EXECUTE_DEBUG_MACRO

Ctrl+L

Отобразить все колонки.

HK_ALL_COLUMNS_ON_SCREEN

Ctrl+O

Открыть универсальный фильтр.

HK_UNI_FLT_OPEN

Ctrl+R

Сервис замены значений.

HK_REPLACE_VALUE_SERVICE

Ctrl+P

Вывести на печать.

HK_PRINT_GRID

Ctrl+W

Пересчитать ширину колонок.

HK_CALC_COLUMNS_WIDTH

Ctrl+Alt+=

Открыть текущую ветку дерева.

HK_TREE_OPEN_CURRENT_SUBNODE

Ctrl+Alt+Left

Зафиксировать по левому краю.

HK_FIX_AT_LEFT_SIDE

Ctrl+Alt+Right

Зафиксировать по правому краю.

HK_FIX_AT_RIGHT_SIDE

Ctrl+Alt+F7

Отчистить универсальный фильтр.

HK_UNI_FLT_CLEAR

Ctrl+Alt+A

Применить автофильтр.

HK_AUTO_FILTER_GRID

Ctrl+Alt+D

Сбросить пользовательские настройки.

HK_RESET_USER_SETTINGS

Ctrl+Alt+F

Отфильтровать выбранные записи.

HK_FILTER_SELECTED_RECORDS

Ctrl+Alt+G

Область группировки.

HK_GROUPING_ZONE_GRID

Ctrl+Alt+H

Настройка видимости колонок.

HK_COLUMNS_VISIBILITY_TUNING

Ctrl+Alt+T

Полностью раскрыть дерево.

HK_FULLEXPAND_TREE

Ctrl+Alt+U

Загрузить пользовательские настройки.

HK_USER_SETTING_LOAD

Shift+Ctrl+F7

Отменить универсальный фильтр.

HK_UNI_FLT_CANCEL

Shift+Ctrl+=

Сумма значений по выделенным записям

HK_CALC_SUMM_OF_SEL_REC

Shift+Ctrl+F

Открыть редактор фильтра.

HK_FILTER_BULDER_GRID

Shift+Ctrl+O

Открыть общие настройки универсального фильтра.

HK_UNI_FLT_OPENPUBLIC

Shift+Ctrl+S

Сохранить как…

HK_SAVE_AS

Shift+Ctrl+T

Показать промежуточные итоги.

HK_INTERMEDIATE_RESULTS_GRID

Shift+Ctrl+Alt+D

Открытие диалога отладчика.

HK_DEBUG_WINDOW

Shift+Ctrl+Alt+W

Открытие диалога отладчика.

HK_DEBUG_WINDOW_2

Shift+Ctrl+Alt+V

Открытие текущего Avi-файла в среде разработки.

HK_SELECTION_CARD

Предусмотренные, но не назначенные глобальные горячие клавиши#

Описание

Мнемоника

Перейти в подвал.

HK_FOOTER_ZONE

Сохранить универсальный фильтр как.

HK_UNI_FLT_SAVEAS

Свернуть дерево.

HK_COLLAPSE_TREE

Получить все записи.

PMI_FETCH_ALL_RECORDS_GRID

Сохранить пользовательские настройки.

HK_USER_SETTING_SAVE

Выбрать помеченные записи.

HK_SELECT_MARK_RECORDS_GRID

Сохранить универсальный фильтр.

HK_UNI_FLT_SAVE

Сохранить пользовательские настройки как.

HK_USER_SETTING_SAVEAS

5.12.3. Порядок обработки нажатия горячих клавиш#

Основная стратегия обработки нажатия пользователем горячей клавиши:

  1. Глобальные горячие клавиши

  2. Горячие клавиши операций активного фрейма (типовые и назначенные в приложении)

  3. Горячие клавиши операций фрейма мастер-выборки, если таковые фреймы есть (типовые и назначенные в приложении)

Если сочетание найдено, то выполняется соответствующая операция и поиск прекращается.

Если сочетание клавиш повторяются, то выполнится операция, которая определена в стратегии раньше (имеет больший приоритет).

Note

Внутренняя архитектура веб-приложения диктует то, что каждый фрейм имеет свой собственный обработчик нажатия горячих клавиш. Таким образом, при нажатии горячей клавиши, программное событие будет отправлено по очереди всем фреймам, начиная с созданного самым последним и по-очереди до созданного самым первым. Каждый обработчик события самостоятельно принимает решение: относится ли событие к данному конкретному фрейму и, если не относится, обработчик самостоятельно игнорирует это событие. Если же относится: обработчик выполняет соответствующую операцию и “останавливает” событие.