Сочетания клавиш в 1С: что можно переназначить и как это сделать
Содержание
Пользователь сам не может переназначить горячие клавиши в обычном режиме 1С:Предприятия: в окне настроек такого раздела нет. Новое сочетание для своей команды назначает разработчик в Конфигураторе: у команды есть свойство «Сочетание клавиш». Если права на конфигурацию нет, остаются стандартные сочетания и внешние средства вроде AutoHotkey.
Разберём оба пути. Сначала что уже заложено в платформу, потом как повесить на клавиши собственное действие, а в конце как найти и убрать конфликт, когда сочетание «не срабатывает».
Что уже назначено: стандартные сочетания платформы
Прежде чем создавать своё, проверьте, нет ли нужного. Часть сочетаний платформа даёт сразу, и ради них не нужен ни Конфигуратор, ни разработчик.
Работа со списками и документами:
Insert— создать новый элемент или документ в списке;F9— скопировать выделенный элемент;F2— изменить выделенный элемент или перейти к редактированию ячейки;Delete— пометить на удаление (повторное нажатие снимает пометку);F5— обновить список;F4— открыть форму выбора в поле ввода;Ctrl+S— записать документ или элемент.
Общие команды:
F1— справка;Ctrl+P— печать;Ctrl+C,Ctrl+V,Ctrl+X,Ctrl+Z,Ctrl+A— привычные копирование, вставка, вырезание, отмена, выделение всего;Ctrl+Tab— переключение между открытыми окнами;Ctrl+F4— закрыть текущее окно.
Если вы не уверены в сочетании, наведите курсор на кнопку командной панели. В подсказке рядом с названием команды платформа показывает назначенное сочетание, если оно есть.
В самом Конфигураторе свой набор. В редакторе модуля работают Ctrl+Space (список подсказок), Ctrl+G (перейти к строке), F3 (найти далее), в отладке F5 запускает режим отладки, а F9 ставит или снимает точку останова. Эти сочетания относятся к редактору конфигурации и на работу пользователей в базе не влияют.
Кто и где может менять сочетания: быстрая карта
Способов несколько, и выбор зависит от того, что именно вам нужно. Сначала таблица, потом подробности по каждой строке.
| Задача | Где делается | Кто может |
|---|---|---|
| Узнать готовое сочетание | Подсказка кнопки, справка F1 | любой пользователь |
| Назначить сочетание своей команде формы | Конфигуратор, свойства команды | разработчик конфигурации |
| Добавить сочетание в типовую конфигурацию | Расширение конфигурации | разработчик, права на изменение конфигурации не нужны |
| Назначить сочетание из кода | Встроенный язык, модуль формы | разработчик |
| Переназначить клавишу «на уровне Windows» | AutoHotkey и подобные | любой пользователь, но с оговорками |
Главное ограничение: платформа не показывает пользователю таблицу «действие — клавиша» с возможностью её править. Все назначения живут в метаданных конфигурации.
Назначение клавиш в Конфигураторе: свойство команды
Это основной способ. Сочетание привязывается не к клавише, а к команде, и срабатывает там, где команда доступна.
Порядок действий:
- Откройте Конфигуратор и нужную конфигурацию. Для типовой конфигурации на поддержке лучше работать через расширение (см. ниже), а не менять её напрямую.
- Откройте форму, в которой нужна команда, и перейдите на закладку «Команды».
- Выберите существующую команду или создайте новую кнопкой добавления. Укажите имя, заголовок и действие — процедуру в модуле формы.
- В палитре свойств команды найдите свойство «Сочетание клавиш» и задайте комбинацию: поставьте нужные модификаторы (
Ctrl,Alt,Shift) и выберите клавишу. - Перетащите команду на форму или в командную панель, чтобы её можно было вызвать и мышью. Для надёжности добавьте команду хотя бы в одну командную панель.
- Сохраните конфигурацию и обновите конфигурацию базы данных (
F7в Конфигураторе), затем запустите 1С:Предприятие и проверьте.
Для команд, которые относятся не к одной форме, а ко всей конфигурации (разделу или объекту), то же свойство есть у общих команд и команд объектов метаданных. Принцип тот же: открыли свойства, задали комбинацию.
Назначайте сочетание на клавишу, которая не занята платформой в этой форме. Если комбинация уже используется стандартной командой, результат зависит от приоритета (подробнее в разделе про конфликты). Не вешайте свои действия на F1, F5, Ctrl+C и Ctrl+V — пользователи ждут от них привычного поведения.
Расширение вместо правки типовой
Если конфигурация на поддержке (БП, ЗУП, УТ), прямая правка формы превращает обновления в мучение: при каждом релизе придётся сравнивать и объединять изменения. Расширение конфигурации (появились в платформе 8.3.6) решает это.
Схема такая:
- Создайте расширение:
Конфигурация → Расширения конфигурации. - Добавьте в расширение нужную форму через «заимствование» объекта.
- В заимствованной форме создайте свою команду и задайте ей сочетание клавиш.
- Отдельным шагом загрузите расширение в базу и выполните «Обновить конфигурацию базы данных».
Заимствованные объекты в обычном режиме не ломают обновление типовой конфигурации, а ваша команда остаётся на месте.
Назначение сочетаний из кода на встроенном языке
В управляемых формах команду можно создать динамически, прямо при открытии формы. Это нужно, когда сочетание зависит от настроек пользователя или условий, которые неизвестны на этапе разработки.
Типичная схема в модуле формы:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Команда = Команды.Добавить("БыстраяЗаписьИПечать");
Команда.Заголовок = "Записать и напечатать";
Команда.Действие = "БыстраяЗаписьИПечать";
Команда.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.P, Ложь, Истина, Истина);
Элемент = Элементы.Добавить("КнопкаБыстраяЗаписьИПечать", Тип("КнопкаФормы"), Элементы.ГруппаКоманднаяПанель);
Элемент.ИмяКоманды = "БыстраяЗаписьИПечать";
КонецПроцедуры
&НаКлиенте
Процедура БыстраяЗаписьИПечать(Команда)
Записать();
// дальше — вызов нужной печатной формы
КонецПроцедуры
В этом примере комбинация собрана конструктором: клавиша P, затем признаки модификаторов. Проверьте порядок параметров в синтаксис-помощнике по типу «СочетаниеКлавиш», прежде чем копировать код в рабочую конфигурацию. Название группы ГруппаКоманднаяПанель — условное, подставьте реально существующую группу вашей формы.
Две вещи, о которые чаще всего спотыкаются:
- Обработчик команды объявляется как клиентская процедура с параметром
Команда. Если он помечен&НаСервере, платформа его не вызовет. - Команду нужно привязать к элементу формы. Кнопка может быть скрыта или вынесена в «Ещё», но без элемента сочетание в ряде случаев не сработает.
Перехватить любое нажатие клавиши на форме, как событие KeyDown в других средах, в управляемой форме нельзя. Нет общего события «нажата клавиша». Рабочая модель в 1С — «клавиша → команда → процедура». Поэтому, если нужно «поймать» сочетание, делайте его командой.
Таблица популярных сочетаний для разных ролей
Сочетания удобно запоминать по задачам. Ниже подборка, которую чаще всего используют в повседневной работе.
| Роль | Действие | Клавиши |
|---|---|---|
| Бухгалтер | Создать документ в списке | Insert |
| Бухгалтер | Скопировать документ | F9 |
| Бухгалтер | Записать | Ctrl+S |
| Бухгалтер | Напечатать | Ctrl+P |
| Любой | Открыть список выбора | F4 |
| Любой | Обновить список | F5 |
| Любой | Справка | F1 |
| Разработчик | Подсказка в модуле | Ctrl+Space |
| Разработчик | Перейти к строке | Ctrl+G |
| Разработчик | Точка останова | F9 |
| Разработчик | Запуск с отладкой | F5 |
Обратите внимание: F9 и F5 значат разное в программе и в Конфигураторе. Это нормально, но путает тех, кто работает в обоих режимах.
Если нужно переназначить клавишу для себя
Пользователь без доступа к Конфигуратору всё равно может решить задачу «мне неудобна эта клавиша», но уже средствами Windows.
Варианты:
- AutoHotkey — бесплатная утилита, позволяет подменить комбинацию так, чтобы она действовала только в окне 1С. Сценарий привязывается к исполняемому файлу клиента (
1cv8c.exe), чтобы не затрагивать другие программы. - Программы для переназначения клавиатуры — подходят, когда нужно поменять физическую клавишу (например, неудобный
Insertна ноутбуках). - Макросы клавиатуры производителя — у игровых и офисных клавиатур есть свои утилиты.
Подводные камни этого способа: он действует только на конкретном компьютере, не переносится вместе с базой и не работает на терминальном сервере, пока администратор не разрешит запуск таких утилит. Для корпоративной среды обычно проще попросить программиста добавить команду через расширение.
Конфликты сочетаний и отладка
Симптом знакомый: в Конфигураторе сочетание назначено, а нажимаешь — ничего не происходит или срабатывает не то.
Причины, которые стоит проверить по порядку:
- Команда недоступна в этом контексте. Если у команды стоит ограничение по ролям или функциональным опциям, а у пользователя нет прав, сочетание не работает.
- Занято стандартным сочетанием. Платформа или элемент формы (например, таблица) перехватывает комбинацию раньше вашей команды.
- Фокус не в той области. Часть сочетаний действует только когда фокус на таблице, в поле ввода или в командной панели, а не на форме в целом.
- Конфликт с Windows или раскладкой.
Alt+ShiftиCtrl+Shiftв системе часто переключают раскладку клавиатуры. Комбинации с ними лучше не брать.Ctrl+Alt+...в некоторых раскладках эквивалентноAltGrи даёт символы. - Конфигурация не обновлена. Изменили метаданные, но не применили к базе. Запустите обновление конфигурации базы данных и перезапустите клиент.
- Условия показа. Если кнопка команды скрыта функциональной опцией, сочетание не сработает тоже.
Как проверить быстро:
- Нажмите сочетание в другой форме, где есть эта же команда. Если там работает, проблема в фокусе или контексте.
- Временно выберите другую комбинацию, например с
Ctrl+Alt+Shift: она реже совпадает с чужими назначениями. - Запустите клиент под тем пользователем, у которого жалоба, и убедитесь, что кнопка команды видна. Если нет, причина в ролях или опциях.
- Если сочетание срабатывает не в том месте, поищите в проекте другие команды с такой же комбинацией. Для этого в Конфигураторе есть поиск по всей конфигурации: найдите там название клавиши и посмотрите, у каких команд оно встречается.
Меняя сочетание в рабочей конфигурации, предупредите пользователей. Привычка к клавишам формируется годами, и «улучшение» без предупреждения вызывает больше жалоб, чем пользы.
Как выбрать комбинацию, которую запомнят
Удачное сочетание живёт годами, неудачное отключают через месяц. Несколько правил, проверенных практикой:
- Привязывайте к смыслу.
Ctrl+Pдля печати запоминается сразу, аCtrl+Alt+Shift+7не запомнит никто. Если команда одна из часто используемых, пусть клавиша напоминает название. - Не больше двух модификаторов. Три и более клавиши одновременно неудобны, особенно на ноутбучной клавиатуре.
- Учитывайте раскладку. Буквенные сочетания работают по физической клавише, поэтому в русской и английской раскладках поведение должно совпадать. Проверьте обе.
- Следите за функциональными клавишами. На ноутбуках
F1-F12часто работают вместе сFn, и для таких пользователей сочетание сF-клавишей неудобно. - Документируйте. Допишите сочетание в заголовок или подсказку команды: пользователь увидит его, наведя курсор на кнопку.
Перед выкладкой пройдите короткую проверку:
Частые вопросы
Можно ли переназначить горячие клавиши в 1С без Конфигуратора?
Где в 1С посмотреть все горячие клавиши?
F1.Назначил сочетание, а оно не работает. Что делать?
Можно ли ловить нажатие любой клавиши в форме кодом?
Работают ли свои сочетания в веб-клиенте?
Ctrl+T, Ctrl+W, Ctrl+N и подобные) раньше 1С. Такие комбинации в веб-клиенте брать нельзя.