Капитально об программе 1С 8.0-8.3-8.4, 7.7

Программное добавление и перемещение элементов в управляемой форме

Для оптимизации рутинной процедуры «отрисовки» внешнего вида формы, была написана небольшая процедура.

Применение

В примере кода для вновь созданной формы отчета на СКД добавляются группы-колонки и существующие стандартные реквизиты перемещаются (Результат — в левую, настройки в правую колонку).

Следует обратить внимание на установку свойства «Вид».

До его установки часть свойств элемента (расширения данного вида) будет недоступна, и при их установке вызывать ошибку.

Пример кода

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