Как программно добавить кнопку на командную панель?
Для программной вставки кнопки мы обращаемся к командной панели и добавляем на неё кнопки, указывая процедуру которая будет вызываться при ёё нажатии, а внутри процедуры можно делать анализ и выполнять действия в зависимости от нажатой кнопки.
В ниже приведенном примере создаются кнопки для всех колонок списка справочника:
ЭлементыФормы.КоманднаяПанельСортировки.Кнопки.Добавить("СортироватьПо", ТипКнопкиКоманднойПанели.Подменю);
КолонкиСписка = ЭлементыФормы.СправочникСписок.Колонки;
Для Каждого ТекКолонка Из КолонкиСписка Цикл
ИндексКолонки = КолонкиСписка.Индекс(ТекКолонка);
МенюСортировки = ЭлементыФормы.КоманднаяПанельСортировки.Кнопки.СортироватьПо.Кнопки;
МенюСортировки.Вставить(ИндексКолонки, ТекКолонка.Имя, ТипКнопкиКоманднойПанели.Действие, ТекКолонка.Имя, Новый Действие("СортироватьПоКолонке"));
КонецЦикла;
Поясню немного код. Сначала мы создаем подменю, а потом в него добавляем кнопки, где имена и положение(индекс) берутся из колонки. Всем кнопкам назначается процедура "СортироватьПоКолонке".
Вот так выглядит результат