Как в 1С сделать кнопку вызова обработки, доступную в один клик из любой формы?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При работе в современных конфигурациях на платформе 1С:Предприятие 8.3, таких как Бухгалтерия предприятия 3.0, пользователи часто сталкиваются с необходимостью быстрого вызова определенной функции или обработки. В старых версиях платформы для этого существовали системные кнопки (например, калькулятор), доступные всегда. В интерфейсе «Такси» стандартные механизмы навигации иногда требуют нескольких кликов, что снижает эффективность работы. В данной статье мы разберем, как реализовать кнопку «в один клик», которая будет видна всегда, вне зависимости от открытой в данный момент формы.

Способ 1. Использование общей команды и панели системных команд

Разберем наиболее изящный способ, который позволяет вывести кнопку в самую верхнюю часть экрана (заголовок приложения), рядом с кнопками «Избранное» и «История». Это решение максимально приближено к концепции «один клик из любого места».

Для реализации этого метода выполним следующие шаги:

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

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    // Открываем форму обработки по ее полному имени
    ОткрытьФорму("Обработка.МояСпециальнаяОбработка.Форма.Форма");
КонецПроцедуры

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

Способ 2. Программное добавление кнопки через расширение

Если нам необходимо, чтобы кнопка располагалась именно внутри каждой формы (например, в командной панели), мы можем воспользоваться механизмом расширений. Это позволит нам не изменять типовую конфигурацию БП 3.0 и сохранить возможность легкого обновления.

Рассмотрим по шагам, как внедрить кнопку программно во все формы системы:

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

&НаСервере
Процедура ДобавитьКнопкуНаФорму(Форма)
    // Проверим, нет ли уже такой кнопки (чтобы избежать дублирования)
    Если Форма.Элементы.Найти("МояГлобальнаяКнопка") = Неопределено Тогда
        
        // Добавляем команду формы
        НоваяКоманда = Форма.Команды.Добавить("МояГлобальнаяКоманда");
        НоваяКоманда.Действие = "Подключаемый_МояГлобальнаяКоманда";
        НоваяКоманда.Заголовок = "Открыть сервис";
        
        // Добавляем кнопку на командную панель
        НоваяКнопка = Форма.Элементы.Добавить("МояГлобальнаяКнопка", Тип("КнопкаФормы"), Форма.КоманднаяПанель);
        НоваяКнопка.ИмяКоманды = "МояГлобальнаяКоманда";
        
    КонецЕсли;
КонецПроцедуры

Важно помнить, что при программном добавлении команды на клиенте должен существовать обработчик с именем Подключаемый_МояГлобальнаяКоманда. В расширении это реализуется через добавление соответствующего кода в общий модуль, доступный на клиенте.

Способ 3. Использование глобальных горячих клавиш

Выясним, как сделать вызов еще быстрее — без использования мыши. Для ОбщейКоманды, которую мы создали в первом способе, можно назначить Сочетание клавиш.

Посмотрим на пример настройки:

  1. Откроем свойства нашей ОбщейКоманды.
  2. Найдем поле Сочетание клавиш.
  3. Назначим удобную комбинацию, например, Ctrl+Shift+Z.

Преимущество этого метода: сочетание клавиш работает глобально в рамках всего приложения 1С. Пользователю не нужно искать кнопку глазами и тянуться к ней мышкой. Это обеспечивает доступность функции «в ноль кликов».

Способ 4. Механизм «Подключаемых команд» БСП

Так как 1С:Бухгалтерия 3.0 построена на базе Библиотеки стандартных подсистем (БСП), мы можем интегрировать нашу кнопку в стандартное меню «Отчеты» или «Заполнение». Это более «штатный» путь для конфигураций 1С.

Разберем алгоритм действий:

  1. Необходимо зарегистрировать нашу обработку в составе подключаемых команд. Это делается через переопределение соответствующих процедур в модулях УправлениеИТХ или через механизмы регистрации внешних обработок.
  2. Если мы регистрируем обработку как Дополнительную обработку, мы можем в ее карточке (в режиме «1С:Предприятие») указать список документов, в которых она должна отображаться.
  3. Чтобы команда была доступна «в один клик», в настройках размещения нужно указать отображение непосредственно в командной панели, а не в подменю «Дополнительные кнопки».

Этот метод хорош тем, что он не требует изменения метаданных в конфигураторе (если использовать механизм дополнительных отчетов и обработок), однако он может потребовать 2 клика (кнопка Еще -> Ваша команда), если командная панель формы перегружена элементами.

Способ 5. Панель «Избранное» как альтернативное решение

Иногда программисту не обязательно писать код, чтобы решить задачу пользователя. Рассмотрим пользовательский метод организации быстрого доступа:

  1. Пользователь находит нужную команду в интерфейсе (или программист создает ОбщуюКоманду и выводит ее в любой раздел интерфейса).
  2. Пользователь нажимает на иконку «Звездочка» (Добавить в избранное) рядом с командой.
  3. В настройках панелей (Вид -> Настройка панелей) пользователь выносит Панель избранного в верхнюю или боковую часть экрана.

Проанализируем результат: теперь кнопка вызова обработки всегда закреплена на экране. Этот способ не требует программирования и работает в любой типовой конфигурации на управляемых формах.

Резюме

Мы рассмотрели пять различных подходов к созданию кнопки быстрого доступа. Для разработчика наиболее профессиональным решением будет создание Общей команды с размещением в Панели системных команд. Это гарантирует доступность функции из любого окна приложения. Если же задача требует контекстного выполнения действий (например, обработки данных текущего документа), лучше использовать механизмы БСП или программное добавление кнопок через расширения.

← На главную