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