Добавление кнопок установки и снятия флажков

Клиент попросил в одну форму добавить кнопки добавления-удаления флажков. В работе с этим клиентом я принял для себя правило — все элементы добавлять через расширение кодом, а не визуально. Поэтому работа заняла чуть больше времени, чем если бы я пользовался конструктором форм.

&НаСервере
Процедура дор_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	
 ИмяКоманды = "дор_УстановитьПометки";
 КомандаФормы = ЭтаФорма.Команды.Добавить(ИмяКоманды);
 КомандаФормы.Действие = ИмяКоманды;
 КомандаФормы.Заголовок = "Установить пометки";
 КомандаФормы.ИзменяетСохраняемыеДанные = Ложь;
 КомандаФормы.Отображение = ОтображениеКнопки.Картинка;
 КомандаФормы.Картинка = БиблиотекаКартинок.УстановитьФлажки;

 НовыйЭлемент = ЭтаФорма.Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), КоманднаяПанель);
 НовыйЭлемент.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
 НовыйЭлемент.ИмяКоманды = ИмяКоманды;
 
 
 ИмяКоманды = "дор_СнятьПометки";
 КомандаФормы = ЭтаФорма.Команды.Добавить(ИмяКоманды);
 КомандаФормы.Действие = ИмяКоманды;
 КомандаФормы.Заголовок = "Снять пометки";
 КомандаФормы.ИзменяетСохраняемыеДанные = Ложь;
 КомандаФормы.Отображение = ОтображениеКнопки.Картинка;
 КомандаФормы.Картинка = БиблиотекаКартинок.СнятьФлажки;

 НовыйЭлемент = ЭтаФорма.Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), КоманднаяПанель);
 НовыйЭлемент.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
 НовыйЭлемент.ИмяКоманды = ИмяКоманды;

КонецПроцедуры


&НаКлиенте
Процедура дор_УстановитьПометки(Команда)
	//дор_Пометки(Истина);
	дор_Пометки(1);
КонецПроцедуры

&НаКлиенте
Процедура дор_СнятьПометки(Команда)
	//дор_Пометки(ложь);
	дор_Пометки(0);
КонецПроцедуры

&НаКлиенте
Процедура дор_Пометки(Значение) Экспорт
	Для Каждого Эл ИЗ Дерево.ПолучитьЭлементы() Цикл
		//Эл.Пометка = Значение;
		Эл.Отметка = Значение;
	КонецЦикла;

КонецПроцедуры

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

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

Используются типовые картинки для подобных команд. Выглядит так:

Объем: 0.5 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *