Добавление кнопок установки и снятия флажков
Клиент попросил в одну форму добавить кнопки добавления-удаления флажков. В работе с этим клиентом я принял для себя правило — все элементы добавлять через расширение кодом, а не визуально. Поэтому работа заняла чуть больше времени, чем если бы я пользовался конструктором форм.
&НаСервере Процедура дор_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) ИмяКоманды = "дор_УстановитьПометки"; КомандаФормы = ЭтаФорма.Команды.Добавить(ИмяКоманды); КомандаФормы.Действие = ИмяКоманды; КомандаФормы.Заголовок = "Установить пометки"; КомандаФормы.ИзменяетСохраняемыеДанные = Ложь; КомандаФормы.Отображение = ОтображениеКнопки.Картинка; КомандаФормы.Картинка = БиблиотекаКартинок.УстановитьФлажки; НовыйЭлемент = ЭтаФорма.Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), КоманднаяПанель); НовыйЭлемент.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели; НовыйЭлемент.ИмяКоманды = ИмяКоманды; ИмяКоманды = "дор_СнятьПометки"; КомандаФормы = ЭтаФорма.Команды.Добавить(ИмяКоманды); КомандаФормы.Действие = ИмяКоманды; КомандаФормы.Заголовок = "Снять пометки"; КомандаФормы.ИзменяетСохраняемыеДанные = Ложь; КомандаФормы.Отображение = ОтображениеКнопки.Картинка; КомандаФормы.Картинка = БиблиотекаКартинок.СнятьФлажки; НовыйЭлемент = ЭтаФорма.Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), КоманднаяПанель); НовыйЭлемент.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели; НовыйЭлемент.ИмяКоманды = ИмяКоманды; КонецПроцедуры &НаКлиенте Процедура дор_УстановитьПометки(Команда) //дор_Пометки(Истина); дор_Пометки(1); КонецПроцедуры &НаКлиенте Процедура дор_СнятьПометки(Команда) //дор_Пометки(ложь); дор_Пометки(0); КонецПроцедуры &НаКлиенте Процедура дор_Пометки(Значение) Экспорт Для Каждого Эл ИЗ Дерево.ПолучитьЭлементы() Цикл //Эл.Пометка = Значение; Эл.Отметка = Значение; КонецЦикла; КонецПроцедуры
Можно было бы озаботиться рекурсивной установкой флажков в дереве на форме, но клиенту достаточно было проставить флажки по верхнему уровню.
Кнопки я вставляю в конец командной панели, благо она пустая, обычно панель заполнена, поэтому приходится вставлять перед определенным элементом, чтобы кнопки были на виду.
Используются типовые картинки для подобных команд. Выглядит так:
Объем: 0.5 час.
Спасибо. Очень пригодилось. Все отлично работает
Спасибо за обратную связь. Приятно, когда кто-то берет в работу.
тож использовал, спс)
хорошо