Обычная кнопка-подменю

Понадобилось в ряд кнопок добавить новую кнопку-подменю. Оказывается, подменю возможно только в командной панели.

Поэтому сначала создаю командную панель, в ней группу формы с видом «подменю». А уже в эту группу добавляю нужные кнопки.

Вот как выглядели кнопки до изменений:

А вот уже после изменений:

По сути я убрал кнопку «Создать отгрузку» и создал свою, уже с возможностью выбора различных вариантов:

Элементы и команды создаю в процедуре «При создании на сервере»:

	//== Создать партии - разные команды
	Элементы.Pochta_СоздатьОтгрузку.Видимость = ложь; //Убираем стандартную кнопку

	//Создаем панель команд КП в одном ряду с кнопками
	Привязка = Элементы.Pochta_СоздатьОтгрузку;
	КП = Элементы.Вставить("дор_КПСозданияПартий", Тип("ГруппаФормы"), Привязка.Родитель, Привязка);
	КП.Вид = ВидГруппыФормы.КоманднаяПанель;
	
	//Создаем группу команд Подменю в панели КП
	Подменю = Элементы.Добавить("дор_ГруппаСозданияПартий", Тип("ГруппаФормы"), КП);
	Подменю.Вид = ВидГруппыФормы.Подменю;
	Подменю.Заголовок = "Создать отгрузку";   
	Подменю.ЦветФона = Элементы.Pochta_СоздатьОтгрузку.ЦветФона;
	Подменю.ЦветРамки = Элементы.Pochta_СоздатьОтгрузку.ЦветРамки;
	Подменю.ЦветТекстаЗаголовка = Элементы.Pochta_СоздатьОтгрузку.ЦветТекста;
	Подменю.ШрифтЗаголовка = Элементы.Pochta_СоздатьОтгрузку.Шрифт;
	
	Привязка = Подменю; //Далее все элементы будут привязаны к подменю
	
	
	//Команда по всем заказам
	ИмяКоманды = "Pochta_СоздатьПартииПоВсемЗаказам";
	КомандаФормы = ЭтаФорма.Команды.Добавить(ИмяКоманды);
	КомандаФормы.Действие = ИмяКоманды;
	КомандаФормы.Заголовок = "По всем заказам";
	КомандаФормы.ИзменяетСохраняемыеДанные = истина;
	КомандаФормы.Отображение = ОтображениеКнопки.Текст;
	нЭлемент = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), Привязка);
	нЭлемент.ИмяКоманды = ИмяКоманды;    
	
	//Команда по выбранным заказам
	ИмяКоманды = "Pochta_СоздатьПартииПоВыбраннымЗаказам";
	КомандаФормы = ЭтаФорма.Команды.Добавить(ИмяКоманды);
	КомандаФормы.Действие = ИмяКоманды;
	КомандаФормы.Заголовок = "По выделенным заказам";
	КомандаФормы.ИзменяетСохраняемыеДанные = истина;
	КомандаФормы.Отображение = ОтображениеКнопки.Текст;
	нЭлемент = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), Привязка);
	нЭлемент.ИмяКоманды = ИмяКоманды;    

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

Сами команды добавляю в модуль формы:

&НаКлиенте
Процедура Pochta_СоздатьПартииПоВсемЗаказам(Команда) Экспорт  
КонецПроцедуры

&НаКлиенте
Процедура Pochta_СоздатьПартииПоВыбраннымЗаказам(Команда) Экспорт  
КонецПроцедуры

&НаКлиенте
Процедура Pochta_СоздатьПартииПоЗаказамЗаДату(Команда) Экспорт  
КонецПроцедуры

Среда: Розница 2.3.11.43 Объем: 1 час.

fixin

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

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

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

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