Заметка

Переопределение действия кнопки

Код команды кнопки

В процессе разработки иногда возникает необходимость программного переназначения действия кнопок.

Размеры интерфейса ограничены размерами мониторов, и далеко не у всех они большие 🙂

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

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

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

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

Добавить комментарий