1С программно добавить кнопку на командную панель

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

В ниже приведенном примере создаются кнопки для всех колонок списка справочника:

Поясню немного код. Сначала мы создаем подменю, а потом в него добавляем кнопки, где имена и положение(индекс) берутся из колонки. Всем кнопкам назначается процедура "СортироватьПоКолонке".

Программное добавление стандартных действий на командную панель формы

Добавим кнопку Открыть, вызывающую процедуру ОткрытьЭлемент
Код 1C v 8.х

Как программно добавить в командную панель кнопку со стандартной функцией "Сортировать по убыванию"?
Можно, например, включить автозаполнение в ком. панели, потом при открытии создать структуру или массив с действиями, заполнить его, и после этого отключить автозаполнение
Код 1C v 8.х

Похожие FAQ

Еще в этой же категории

Заполнение списка значений в элементе поле выбора на форме 10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип – Произвольный, Использование – Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Форма

Программное создание таблицы значений с условным оформлением 6
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Форма

Как активизировать, перевести фокус на необходимый элемент на форме? 6
//Текущему Элементу формы присваиваем элемент котровый необходимо активизировать ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ТабличноеПоле; Форма

Читайте также:  Установка sdr sharp и драйвера usb rtl2832u

Программное добавление элементов на форму 6
ЭлементыФормы (Controls) . Добавить (Add) – Добавляет элемент управления на форму. Синтаксис: Добавить( Тип , Имя , Видимость , ПоместитьНа ) Параметры: Тип (обязательный) Тип: Тип. Тип добавляемого элемента управления: Индикатор; П Поле выбора

Как ограничить список выбора? 5
Ограничим список элементов, установив отбор в открываемой форме //Пример 1 Процедура СтатьяПДРНачалоВыбора(Элемент, СтандартнаяОбработка) ФормаВыбора = Справочники.ПрочиеДоходыИРасходы.ПолучитьФормуВыбора(, Элемент); ЭлементОтбораВидПДР = Форма Посмотреть все в категории Работа с Формой (Диалог) и её элементами

Guesto notes

При доработке типовых решений для облегчения дальнейших обновлений использую программное добавление кнопки с обработчиком

Задача

Программно добавить на командную панель кнопку с выполнением произвольного кода по ее нажатию.

Реализация

Для наглядности создадим новую обработку с «Пустой» формой. Её внешний вид будет следующим

В обработчике события формы ПриСозданииНаСервере() добавим код генерации команды и кнопки

И создадим обработчик нашей команды

В итоге на форме появится кнопка выполняющая наш обработчик. Выглядеть все это будет как добавленная кнопка в конфигураторе

Так же кнопки формы имеют свойство КнопкаПоУмолчанию, если присвоить значение Истина

тогда кнопка будет выделена цветом и шрифтом

Комментарии 2

а как код то добавить чтобы выполнялся?
или код нужно заранее на форму поместить, тогда нет смысла добавлять программно команду, если код всеравно нужно помещать заранее на конкретную форму.

Алексей, доброго времени суток! Хороший вопрос!

Все верно, код обработчика придется добавить в модуль формы.

А теперь давайте посмотрим не только на разработку, но и на сопровождение и дальнейшее обновление доработанной конфигурации.

Если добавить команду «руками», то при обновлении дважды измененной формы команда будет потеряна. Ведь, модули формы мы можем сравнить, а формы нет.

Если команду добавить программно в модуле формы или соответствующем модуле БСП, а обработчик в модуле формы. При этом выделив все свои процедуры префиксом и поместив их в отдельную область, то мы получим ситуацию, когда все наши изменения можно легко увидеть в сравнении модулей. Не придется держать чек-лист со списком команд/реквизитов/элементов для ручного добавления и перепроверки после обновления.

Читайте также:  Субару форестер sg5 расход топлива

И тут мы приходим к правилу — формы «руками» не правятся вообще. Все «ручные» изменения выявляются на этапе ревью, вносивший такие изменения бурно порицается.

Обдумав данный механизм, просится к добавлению:
1. Автотест с открытием форм и исполнением программного изменения;
2. Корректная обработка ситуаций, когда программное изменение не получилось. С соответствующим выводом на этапе тестирования.

Не долго думая пишем придуманное выше и наслаждаемся результатом.

Оцените статью
Добавить комментарий

Adblock detector