Как назначить горячие клавиши для отмены проведения документа в 1С?

Программист IT и автоматизация бизнеса
← На главную

Часто при активной работе с документами в системе 1С возникает необходимость быстро отменить их проведение, переведя в статус черновика без использования мыши. В типовых конфигурациях 1С отдельной стандартной горячей клавиши, которая только отменяет проведение, «из коробки» не предусмотрено. Давайте разберем по шагам, как можно решить эту задачу различными способами: проанализируем как штатные возможности интерфейса, так и варианты доработки системы через Конфигуратор.

Использование стандартной клавиши Delete

Самый простой вариант, который часто используют пользователи на практике — это применение клавиши Del. Посмотрим на этот механизм подробнее.

Если выделить проведенный документ в списке и нажать Del (или Del и затем дважды Enter для подтверждения), система отменит его проведение. Однако важно понимать скрытый нюанс: при этом действии документ помечается на удаление.

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

Программный способ: создание собственной кнопки

Если вам требуется именно «чистая» отмена проведения по нажатию определенного сочетания клавиш (например, Ctrl + Shift + Z), без пометки на удаление, правильнее всего реализовать это программно. Рассмотрим подробнее, как это сделать в режиме Конфигуратора.

  1. Откройте форму списка или форму нужного документа в Конфигураторе.
  2. Перейдите на вкладку Команды и создайте новую команду. Назовите ее, например, ОтменаПроведенияДокумента.
  3. Перетащите созданную команду в командную панель формы в виде кнопки.
  4. В свойствах этой команды найдите поле Сочетание клавиш и задайте любую удобную вам комбинацию (например, Alt + Q).
  5. В модуле формы в обработчике действия этой команды пропишите следующий код:

&НаКлиенте
Процедура ОтменаПроведенияДокумента(Команда)
    ОтменаПроведенияДокументаНаСервере();
КонецПроцедуры

&НаСервере
Процедура ОтменаПроведенияДокументаНаСервере()
    // Получаем объект документа из ссылки (для формы списка) или используем текущий объект
    ДокОбъект = РеквизитФормыВЗначение("Объект");
    
    // Записываем документ с режимом отмены проведения
    ДокОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
    
    // Возвращаем данные обратно в форму
    ЗначениеВРеквизитФормы(ДокОбъект, "Объект");
КонецПроцедуры

Для старых конфигураций на обычных формах (1С 7.7 или 1С 8.2) код в кнопке будет выглядеть еще проще:


Процедура ОтменитьПроведениеНажатие(Кнопка)
    Док = ЭтотОбъект;
    Док.Записать(РежимЗаписиДокумента.ОтменаПроведения);
КонецПроцедуры

Таким образом, мы получаем полноценную горячую клавишу, которая выполняет именно ту задачу, которая нам нужна, не искажая логику работы с черновиками.

Быстрая отмена с клавиатуры без программирования

Выясним, как быть, если доступа к конфигуратору нет, доработки запрещены, но использовать мышь неудобно. Разберем встроенные возможности операционной системы и интерфейса 1С:

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

Массовая отмена проведения

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

Применяйте встроенные групповые обработки, такие как «Групповое изменение реквизитов» или «Универсальный подбор и обработка объектов». В списках этих обработок вы можете выделить нужные документы стандартными сочетаниями клавиш (например, Shift + ↓, Ctrl + Клик мыши или Shift + End), после чего выбрать действие «Отмена проведения». Система обработает весь массив выделенных документов разом.

Использование сторонних программ-макросов

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

В такой программе пишется короткий скрипт, который перехватывает нажатие заданного вами шортката (например, F4). При нажатии скрипт моментально эмулирует программный клик правой кнопкой мыши по выделенному документу в окне 1С, находит пункт контекстного меню «Отменить проведение» и активирует его. Это избавляет от рутинных кликов, но требует базовых навыков написания макросов для операционной системы.

← На главную