.. _gs3_shortcuts: Горячие клавиши =============== .. note:: Статья находится в стадии написания. Назначение ---------- Термин :term:`Горячие клавиши<Горячие клавиши>` является собирательным названием сочетаний клавиш на клавиатуре, нажимаемым пользователем одновременно. Является способом быстро, без использования мыши, вызвать на выполнение некоторый предопределенный функционал. Такой как наиболее часто используемые :term:`операции<Операция>` или действия. Если сочетание клавиш состоит только из одной клавиши, то оно записывается просто как название этой клавиши. Например: :kbd:`Esc` - клавиша "escape". Если сочетание клавиш состоит из более чем одной клавиши, то оно записывается как названия всех клавиш, составляющих сочетание, разделенных знаком плюс. Например: :kbd:`Ctrl+B` - одновременное нажатие клавиш :kbd:`Control` и латинской :kbd:`B`. Если в сочетании используется клавиша, расположенная на дополнительной клавиатуре, то в ее названии указывается модификатор Num. Например: :kbd:`Num +` - клавиша "плюс" на дополнительной клавиатуре. .. note:: Если конкретное сочетание Горячих клавиш не назначено в :term:`GlobalServer`, или не назначено прикладным разработчиком для активной выборки, или назначено в GlobalServer, но переназначено на пустое значение прикладным программистом для активной выборки и, одновременно, не назначено в :term:`меню<Главное меню>` и :term:`тулбаре<Панель инструментов>` приложения, то нажатие пользователем такого сочетания будет обработано браузером, согласно его предпочтениям. Список горячих клавиш --------------------- Фреймворк предоставляет следующие виды горячих клавиш: 1. Типовые горячие клавиши (горячие клавиши для некоторых стандартных операций) 2. Глобальные горячие клавиши (горячие клавиши, реализованные на низких уровнях сервера приложений и фреймворка) 3. Горячие клавиши приложения (горячие клавиши, назначенные операциям в прикладных модулях) Типовые горячие клавиши ``````````````````````` .. table:: Горячие клавиши :term:`фрейма<Фрейм>`/типовые горячие клавиши +-------------------------+-----------------------------------------------+------------------+ | Горячая клавиша | Описание | Мнемоника | +=========================+===============================================+==================+ | :kbd:`Esc` | Закрыть форму. | CLOSEFORMCANCEL | +-------------------------+-----------------------------------------------+------------------+ | :kbd:`F1` | Подсказка. | HELP | +-------------------------+-----------------------------------------------+------------------+ | :kbd:`F2` | Закрыть форму с сохранением. | CLOSEFORMOK | +-------------------------+-----------------------------------------------+------------------+ | :kbd:`F4` | Открыть карточку редактирования. | CARDEDIT | +-------------------------+-----------------------------------------------+------------------+ | :kbd:`F11` | Детализация. | SHOWTAB | +-------------------------+-----------------------------------------------+------------------+ | :kbd:`F12` | Обновить. | REFRESH | +-------------------------+-----------------------------------------------+------------------+ | :kbd:`Ctrl+B` | Отменить все изменения на форме. | CANCELFORM | +-------------------------+-----------------------------------------------+------------------+ | :kbd:`Ctrl+S` | Сохранить изменения. | SAVEFORM | +-------------------------+-----------------------------------------------+------------------+ | :kbd:`Ctrl+Alt+I` | Показать информацию об объекте. | SHOWABOUTOBJECT | +-------------------------+-----------------------------------------------+------------------+ | :kbd:`Shift+Ctrl+Alt+A` | Открыть диалог аудита объекта. | SHOWAUDITOBJECT | +-------------------------+-----------------------------------------------+------------------+ | :kbd:`Shift+Ctrl+Alt+F` | Открыть диалог аудита открытия форм. | SHOWAUDITSEL | +-------------------------+-----------------------------------------------+------------------+ .. seealso:: `Руководство прикладного разработчика GlobalFramework / Типовые горячие клавиши `__ Глобальные горячие клавиши `````````````````````````` .. csv-table:: Глобальные горячие клавиши :header: "Горячая клавиша", "Описание", "Мнемоника" :widths: 35,45,20 ":kbd:`Esc`", "Отмена редактирования (в состоянии редактирования). Закрытие формы/диалога.", ".. _HK_CANCELEDIT: HK_CANCELEDIT" ":kbd:`Ins`", "Выбрать в мультиселекте.", ".. _HK_MULTI_SELECT: HK_MULTI_SELECT" ":kbd:`Enter`", "Начать редактирование.", ".. _HK_STARTEDIT: HK_STARTEDIT" ":kbd:`Enter`", "Закончить редактирование.", ".. _HK_ENDEDIT: HK_ENDEDIT" ":kbd:`F7`", "Применить универсальный фильтр.", ".. _HK_UNI_FLT_OK: HK_UNI_FLT_OK" ":kbd:`Num -`", "Свернуть дерево.", ".. _HK_COLLAPSE_TREE: HK_COLLAPSE_TREE" ":kbd:`Ctrl+Enter`", "Открыть в редакторе.", ".. _HK_SHOWEDITOR: HK_SHOWEDITOR" ":kbd:`Ctrl+-`", "Закрыть текущую ветку дерева.", ".. _HK_TREE_CLOSE_CURRENT_NODE: HK_TREE_CLOSE_CURRENT_NODE" ":kbd:`Ctrl+=`", "Открыть текущий узел дерева.", ".. _HK_TREE_OPEN_CURRENT_NODE: HK_TREE_OPEN_CURRENT_NODE" ":kbd:`Ctrl+Del`", "Скрыть колонку.", ".. _HK_HIDE_COLUMN: HK_HIDE_COLUMN" ":kbd:`Ctrl+F7`", "Отфильтровать по выбранной ячейке.", ".. _HK_FILTER_BY_FOCUSED_CELL: HK_FILTER_BY_FOCUSED_CELL" ":kbd:`Ctrl+F9`", "Выполнение отладочного макроса.", ".. _HK_EXECUTE_DEBUG_MACRO: HK_EXECUTE_DEBUG_MACRO" ":kbd:`Ctrl+L`", "Отобразить все колонки.", ".. _HK_ALL_COLUMNS_ON_SCREEN: HK_ALL_COLUMNS_ON_SCREEN" ":kbd:`Ctrl+O`", "Открыть универсальный фильтр.", ".. _HK_UNI_FLT_OPEN: HK_UNI_FLT_OPEN" ":kbd:`Ctrl+R`", "Сервис замены значений.", ".. _HK_REPLACE_VALUE_SERVICE: HK_REPLACE_VALUE_SERVICE" ":kbd:`Ctrl+P`", "Вывести на печать.", ".. _HK_PRINT_GRID: HK_PRINT_GRID" ":kbd:`Ctrl+W`", "Пересчитать ширину колонок.", ".. _HK_CALC_COLUMNS_WIDTH: HK_CALC_COLUMNS_WIDTH" ":kbd:`Ctrl+Alt+=`", "Открыть текущую ветку дерева.", ".. _HK_TREE_OPEN_CURRENT_SUBNODE: HK_TREE_OPEN_CURRENT_SUBNODE" ":kbd:`Ctrl+Alt+Left`", "Зафиксировать по левому краю.", ".. _HK_FIX_AT_LEFT_SIDE: HK_FIX_AT_LEFT_SIDE" ":kbd:`Ctrl+Alt+Right`", "Зафиксировать по правому краю.", ".. _HK_FIX_AT_RIGHT_SIDE: HK_FIX_AT_RIGHT_SIDE" ":kbd:`Ctrl+Alt+F7`", "Отчистить универсальный фильтр.", ".. _HK_UNI_FLT_CLEAR: HK_UNI_FLT_CLEAR" ":kbd:`Ctrl+Alt+A`", "Применить автофильтр.", ".. _HK_AUTO_FILTER_GRID: HK_AUTO_FILTER_GRID" ":kbd:`Ctrl+Alt+D`", "Сбросить пользовательские настройки.", ".. _HK_RESET_USER_SETTINGS: HK_RESET_USER_SETTINGS" ":kbd:`Ctrl+Alt+F`", "Отфильтровать выбранные записи.", ".. _HK_FILTER_SELECTED_RECORDS: HK_FILTER_SELECTED_RECORDS" ":kbd:`Ctrl+Alt+G`", "Область группировки.", ".. _HK_GROUPING_ZONE_GRID: HK_GROUPING_ZONE_GRID" ":kbd:`Ctrl+Alt+H`", "Настройка видимости колонок.", ".. _HK_COLUMNS_VISIBILITY_TUNING: HK_COLUMNS_VISIBILITY_TUNING" ":kbd:`Ctrl+Alt+T`", "Полностью раскрыть дерево.", ".. _HK_FULLEXPAND_TREE: HK_FULLEXPAND_TREE" ":kbd:`Ctrl+Alt+U`", "Загрузить пользовательские настройки.", ".. _HK_USER_SETTING_LOAD: HK_USER_SETTING_LOAD" ":kbd:`Shift+Ctrl+F7`", "Отменить универсальный фильтр.", ".. _HK_UNI_FLT_CANCEL: HK_UNI_FLT_CANCEL" ":kbd:`Shift+Ctrl+=`", "Сумма значений по выделенным записям", ".. _HK_CALC_SUMM_OF_SEL_REC: HK_CALC_SUMM_OF_SEL_REC" ":kbd:`Shift+Ctrl+F`", "Открыть редактор фильтра.", ".. _HK_FILTER_BULDER_GRID: HK_FILTER_BULDER_GRID" ":kbd:`Shift+Ctrl+O`", "Открыть общие настройки универсального фильтра.", ".. _HK_UNI_FLT_OPENPUBLIC: HK_UNI_FLT_OPENPUBLIC" ":kbd:`Shift+Ctrl+S`", "Сохранить как...", ".. _HK_SAVE_AS: HK_SAVE_AS" ":kbd:`Shift+Ctrl+T`", "Показать промежуточные итоги.", ".. _HK_INTERMEDIATE_RESULTS_GRID: HK_INTERMEDIATE_RESULTS_GRID" ":kbd:`Shift+Ctrl+Alt+D`", "Открытие диалога :ref:`отладчика`.", ".. _HK_DEBUG_WINDOW: HK_DEBUG_WINDOW" ":kbd:`Shift+Ctrl+Alt+W`", "Открытие диалога :ref:`отладчика`.", ".. _HK_DEBUG_WINDOW_2: HK_DEBUG_WINDOW_2" ":kbd:`Shift+Ctrl+Alt+V`", "Открытие текущего :term:`Avi`-файла в среде разработки.", ".. _HK_SELECTION_CARD: HK_SELECTION_CARD" .. seealso:: `Руководство прикладного разработчика GlobalFramework / Глобальные горячие клавиши `__ .. table:: Предусмотренные, но не назначенные глобальные горячие клавиши +---------------------------------------------------------------------------------+----------------------------------+ | Описание | Мнемоника | +=================================================================================+==================================+ | Перейти в подвал. | 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 | +---------------------------------------------------------------------------------+----------------------------------+ .. seealso:: `Руководство прикладного разработчика GlobalFramework / Глобальные горячие клавиши `__ Порядок обработки нажатия горячих клавиш ---------------------------------------- Основная стратегия обработки нажатия пользователем горячей клавиши: 1. Глобальные горячие клавиши 2. Горячие клавиши операций активного фрейма (типовые и назначенные в приложении) 3. Горячие клавиши операций фрейма мастер-выборки, если таковые фреймы есть (типовые и назначенные в приложении) Если сочетание найдено, то выполняется соответствующая операция и поиск прекращается. Если сочетание клавиш повторяются, то выполнится операция, которая определена в стратегии раньше (имеет больший приоритет). .. note:: Внутренняя архитектура веб-приложения диктует то, что каждый фрейм имеет свой собственный обработчик нажатия горячих клавиш. Таким образом, при нажатии горячей клавиши, программное событие будет отправлено по очереди всем фреймам, начиная с созданного самым последним и по-очереди до созданного самым первым. Каждый обработчик события самостоятельно принимает решение: относится ли событие к данному конкретному фрейму и, если не относится, обработчик самостоятельно игнорирует это событие. Если же относится: обработчик выполняет соответствующую операцию и "останавливает" событие.