Сочетания клавиш в 1С: что можно переназначить и как это сделать

· 8 мин

Содержание

Пользователь сам не может переназначить горячие клавиши в обычном режиме 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 и подобныелюбой пользователь, но с оговорками

Главное ограничение: платформа не показывает пользователю таблицу «действие — клавиша» с возможностью её править. Все назначения живут в метаданных конфигурации.

Назначение клавиш в Конфигураторе: свойство команды

Это основной способ. Сочетание привязывается не к клавише, а к команде, и срабатывает там, где команда доступна.

Порядок действий:

  1. Откройте Конфигуратор и нужную конфигурацию. Для типовой конфигурации на поддержке лучше работать через расширение (см. ниже), а не менять её напрямую.
  2. Откройте форму, в которой нужна команда, и перейдите на закладку «Команды».
  3. Выберите существующую команду или создайте новую кнопкой добавления. Укажите имя, заголовок и действие — процедуру в модуле формы.
  4. В палитре свойств команды найдите свойство «Сочетание клавиш» и задайте комбинацию: поставьте нужные модификаторы (Ctrl, Alt, Shift) и выберите клавишу.
  5. Перетащите команду на форму или в командную панель, чтобы её можно было вызвать и мышью. Для надёжности добавьте команду хотя бы в одну командную панель.
  6. Сохраните конфигурацию и обновите конфигурацию базы данных (F7 в Конфигураторе), затем запустите 1С:Предприятие и проверьте.

Для команд, которые относятся не к одной форме, а ко всей конфигурации (разделу или объекту), то же свойство есть у общих команд и команд объектов метаданных. Принцип тот же: открыли свойства, задали комбинацию.

Назначайте сочетание на клавишу, которая не занята платформой в этой форме. Если комбинация уже используется стандартной командой, результат зависит от приоритета (подробнее в разделе про конфликты). Не вешайте свои действия на F1, F5, Ctrl+C и Ctrl+V — пользователи ждут от них привычного поведения.

Расширение вместо правки типовой

Если конфигурация на поддержке (БП, ЗУП, УТ), прямая правка формы превращает обновления в мучение: при каждом релизе придётся сравнивать и объединять изменения. Расширение конфигурации (появились в платформе 8.3.6) решает это.

Схема такая:

  1. Создайте расширение: Конфигурация → Расширения конфигурации.
  2. Добавьте в расширение нужную форму через «заимствование» объекта.
  3. В заимствованной форме создайте свою команду и задайте ей сочетание клавиш.
  4. Отдельным шагом загрузите расширение в базу и выполните «Обновить конфигурацию базы данных».

Заимствованные объекты в обычном режиме не ломают обновление типовой конфигурации, а ваша команда остаётся на месте.

Назначение сочетаний из кода на встроенном языке

В управляемых формах команду можно создать динамически, прямо при открытии формы. Это нужно, когда сочетание зависит от настроек пользователя или условий, которые неизвестны на этапе разработки.

Типичная схема в модуле формы:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	Команда = Команды.Добавить("БыстраяЗаписьИПечать");
	Команда.Заголовок = "Записать и напечатать";
	Команда.Действие = "БыстраяЗаписьИПечать";
	Команда.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.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 на ноутбуках).
  • Макросы клавиатуры производителя — у игровых и офисных клавиатур есть свои утилиты.

Подводные камни этого способа: он действует только на конкретном компьютере, не переносится вместе с базой и не работает на терминальном сервере, пока администратор не разрешит запуск таких утилит. Для корпоративной среды обычно проще попросить программиста добавить команду через расширение.

Конфликты сочетаний и отладка

Симптом знакомый: в Конфигураторе сочетание назначено, а нажимаешь — ничего не происходит или срабатывает не то.

Причины, которые стоит проверить по порядку:

  1. Команда недоступна в этом контексте. Если у команды стоит ограничение по ролям или функциональным опциям, а у пользователя нет прав, сочетание не работает.
  2. Занято стандартным сочетанием. Платформа или элемент формы (например, таблица) перехватывает комбинацию раньше вашей команды.
  3. Фокус не в той области. Часть сочетаний действует только когда фокус на таблице, в поле ввода или в командной панели, а не на форме в целом.
  4. Конфликт с Windows или раскладкой. Alt+Shift и Ctrl+Shift в системе часто переключают раскладку клавиатуры. Комбинации с ними лучше не брать. Ctrl+Alt+... в некоторых раскладках эквивалентно AltGr и даёт символы.
  5. Конфигурация не обновлена. Изменили метаданные, но не применили к базе. Запустите обновление конфигурации базы данных и перезапустите клиент.
  6. Условия показа. Если кнопка команды скрыта функциональной опцией, сочетание не сработает тоже.

Как проверить быстро:

  • Нажмите сочетание в другой форме, где есть эта же команда. Если там работает, проблема в фокусе или контексте.
  • Временно выберите другую комбинацию, например с Ctrl+Alt+Shift: она реже совпадает с чужими назначениями.
  • Запустите клиент под тем пользователем, у которого жалоба, и убедитесь, что кнопка команды видна. Если нет, причина в ролях или опциях.
  • Если сочетание срабатывает не в том месте, поищите в проекте другие команды с такой же комбинацией. Для этого в Конфигураторе есть поиск по всей конфигурации: найдите там название клавиши и посмотрите, у каких команд оно встречается.

Меняя сочетание в рабочей конфигурации, предупредите пользователей. Привычка к клавишам формируется годами, и «улучшение» без предупреждения вызывает больше жалоб, чем пользы.

Как выбрать комбинацию, которую запомнят

Удачное сочетание живёт годами, неудачное отключают через месяц. Несколько правил, проверенных практикой:

  • Привязывайте к смыслу. Ctrl+P для печати запоминается сразу, а Ctrl+Alt+Shift+7 не запомнит никто. Если команда одна из часто используемых, пусть клавиша напоминает название.
  • Не больше двух модификаторов. Три и более клавиши одновременно неудобны, особенно на ноутбучной клавиатуре.
  • Учитывайте раскладку. Буквенные сочетания работают по физической клавише, поэтому в русской и английской раскладках поведение должно совпадать. Проверьте обе.
  • Следите за функциональными клавишами. На ноутбуках F1-F12 часто работают вместе с Fn, и для таких пользователей сочетание с F-клавишей неудобно.
  • Документируйте. Допишите сочетание в заголовок или подсказку команды: пользователь увидит его, наведя курсор на кнопку.

Перед выкладкой пройдите короткую проверку:

Проверка сочетания клавиш перед внедрением
Выполнено: 0 / 5

Частые вопросы

Можно ли переназначить горячие клавиши в 1С без Конфигуратора?
Средствами самой платформы нет, таблицы «действие — клавиша» для пользователя не предусмотрено. Доступны только внешние утилиты вроде AutoHotkey на своём компьютере.
Где в 1С посмотреть все горячие клавиши?
Единого окна нет. Сочетание показывает подсказка у кнопки командной панели, остальное описано в справке по F1.
Назначил сочетание, а оно не работает. Что делать?
Проверьте, что конфигурация базы обновлена, что команда доступна пользователю по ролям и что сочетание не занято стандартной командой. Затем попробуйте другую комбинацию.
Можно ли ловить нажатие любой клавиши в форме кодом?
В управляемой форме общего события нажатия клавиши нет. Создайте команду с нужным сочетанием и обрабатывайте её процедурой.
Работают ли свои сочетания в веб-клиенте?
Браузер перехватывает часть комбинаций (Ctrl+T, Ctrl+W, Ctrl+N и подобные) раньше 1С. Такие комбинации в веб-клиенте брать нельзя.