При работе в современных конфигурациях на платформе 1С:Предприятие 8.3, таких как Бухгалтерия предприятия 3.0, пользователи часто сталкиваются с необходимостью быстрого вызова определенной функции или обработки. В старых версиях платформы для этого существовали системные кнопки (например, калькулятор), доступные всегда. В интерфейсе «Такси» стандартные механизмы навигации иногда требуют нескольких кликов, что снижает эффективность работы. В данной статье мы разберем, как реализовать кнопку «в один клик», которая будет видна всегда, вне зависимости от открытой в данный момент формы.
Разберем наиболее изящный способ, который позволяет вывести кнопку в самую верхнюю часть экрана (заголовок приложения), рядом с кнопками «Избранное» и «История». Это решение максимально приближено к концепции «один клик из любого места».
Для реализации этого метода выполним следующие шаги:
ОбщаяКоманда. Назовем ее, например, ОткрытьМоюОбработку.
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
// Открываем форму обработки по ее полному имени
ОткрытьФорму("Обработка.МояСпециальнаяОбработка.Форма.Форма");
КонецПроцедуры
Проанализируем ситуацию: использование группы Панель системных команд позволяет игнорировать контекст текущей формы. Кнопка будет закреплена в «шапке» интерфейса. Это именно то, что реализовано в крупных решениях вроде 1С:ERP для вызова техподдержки.
Если нам необходимо, чтобы кнопка располагалась именно внутри каждой формы (например, в командной панели), мы можем воспользоваться механизмом расширений. Это позволит нам не изменять типовую конфигурацию БП 3.0 и сохранить возможность легкого обновления.
Рассмотрим по шагам, как внедрить кнопку программно во все формы системы:
ПриСозданииНаСервере для всех форм. Для этого в расширении можно создать обработчик для заимствованной формы или использовать программный интерфейс.
&НаСервере
Процедура ДобавитьКнопкуНаФорму(Форма)
// Проверим, нет ли уже такой кнопки (чтобы избежать дублирования)
Если Форма.Элементы.Найти("МояГлобальнаяКнопка") = Неопределено Тогда
// Добавляем команду формы
НоваяКоманда = Форма.Команды.Добавить("МояГлобальнаяКоманда");
НоваяКоманда.Действие = "Подключаемый_МояГлобальнаяКоманда";
НоваяКоманда.Заголовок = "Открыть сервис";
// Добавляем кнопку на командную панель
НоваяКнопка = Форма.Элементы.Добавить("МояГлобальнаяКнопка", Тип("КнопкаФормы"), Форма.КоманднаяПанель);
НоваяКнопка.ИмяКоманды = "МояГлобальнаяКоманда";
КонецЕсли;
КонецПроцедуры
Важно помнить, что при программном добавлении команды на клиенте должен существовать обработчик с именем Подключаемый_МояГлобальнаяКоманда. В расширении это реализуется через добавление соответствующего кода в общий модуль, доступный на клиенте.
Выясним, как сделать вызов еще быстрее — без использования мыши. Для ОбщейКоманды, которую мы создали в первом способе, можно назначить Сочетание клавиш.
Посмотрим на пример настройки:
ОбщейКоманды.Ctrl+Shift+Z.Преимущество этого метода: сочетание клавиш работает глобально в рамках всего приложения 1С. Пользователю не нужно искать кнопку глазами и тянуться к ней мышкой. Это обеспечивает доступность функции «в ноль кликов».
Так как 1С:Бухгалтерия 3.0 построена на базе Библиотеки стандартных подсистем (БСП), мы можем интегрировать нашу кнопку в стандартное меню «Отчеты» или «Заполнение». Это более «штатный» путь для конфигураций 1С.
Разберем алгоритм действий:
УправлениеИТХ или через механизмы регистрации внешних обработок.Этот метод хорош тем, что он не требует изменения метаданных в конфигураторе (если использовать механизм дополнительных отчетов и обработок), однако он может потребовать 2 клика (кнопка Еще -> Ваша команда), если командная панель формы перегружена элементами.
Иногда программисту не обязательно писать код, чтобы решить задачу пользователя. Рассмотрим пользовательский метод организации быстрого доступа:
ОбщуюКоманду и выводит ее в любой раздел интерфейса).Проанализируем результат: теперь кнопка вызова обработки всегда закреплена на экране. Этот способ не требует программирования и работает в любой типовой конфигурации на управляемых формах.
Мы рассмотрели пять различных подходов к созданию кнопки быстрого доступа. Для разработчика наиболее профессиональным решением будет создание Общей команды с размещением в Панели системных команд. Это гарантирует доступность функции из любого окна приложения. Если же задача требует контекстного выполнения действий (например, обработки данных текущего документа), лучше использовать механизмы БСП или программное добавление кнопок через расширения.