Задача: [Платформа 1С 8.1] Создать в форме документа на панели новую страницу, добавить элемент управления дерево значений, панель управления дерева и заполнить дерево значений данными из табличной части Товары с группировкой по типу товаров

//Добавляем новую с траницу на панель

Код:
НоваяСтраница = Форма.ЭлементыФормы.Панель.Страницы.Добавить("Страница_1", "Новая страница);

//Делаем активной новую страницу. Элементы управления будут добавляться на активную страницу, не забываем это

Код:
Форма.ЭлементыФормы.Панель.ТекущаяСтраница = НоваяСтраница;

//Добавим ДеревоЗначений.

Код:
ДеревоТоваров  = Форма.ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), "ДеревоТоваров_1", Истина, Форма.ЭлементыФормы.Панель);

//Добавим Командную панель

Код:
КоманднаяПанельДЗ = Форма.ЭлементыФормы.Добавить(Тип("КоманднаяПанель"), "КоманднаяПанель_1" , Истина, Форма.ЭлементыФормы.Панель);
КоманднаяПанельДЗ.Верх = 6;
КоманднаяПанельДЗ.Лево = 6;
КоманднаяПанельДЗ.Ширина = Форма.ЭлементыФормы.Панель.Ширина - 12 - 2;//высчитываем опытным путем [img]http://s9.rimg.info/b6c5307f51fa942d5a809f844f68f056.gif[/img]  
КоманднаяПанельДЗ.Высота = 24;

//Установим привязки командной панели   

Код:
КоманднаяПанельДЗ.УстановитьПривязку(ГраницаЭлементаУправления.Верх,Форма.ЭлементыФормы.Панель,ГраницаЭлементаУправления.Верх);
КоманднаяПанельДЗ.УстановитьПривязку(ГраницаЭлементаУправления.Низ,КоманднаяПанельДЗ,ГраницаЭлементаУправления.Верх);
КоманднаяПанельДЗ.УстановитьПривязку(ГраницаЭлементаУправления.Право,Форма.ЭлементыФормы.Панель,ГраницаЭлементаУправления.Право);
КоманднаяПанельДЗ.УстановитьПривязку(ГраницаЭлементаУправления.Лево,Форма.ЭлементыФормы.Панель,ГраницаЭлементаУправления.Лево);

КоманднаяПанельДЗ.ИсточникДействий = ДеревоТоваров; //Установим источник действий для командной панели
КоманднаяПанельДЗ.АвтоЗаполнение = Истина; // и включим автозаполнение кнопок командной панели

//Далее установим данные для нашего дерева значений и создадим колонки дерева значений
//для этого в реквизитах формы необходимо заранее добавить реквизит ДеревоЗначений_1, тип - ДеревоЗначений

//Создаем колонки дерева

Код:
Для Каждого Реквизит из  ЭтотОбъект.Метаданные().ТабличныеЧасти.НоменклатураДоговора.Реквизиты Цикл 
    Если Реквизит.Имя = "Система" Тогда
                                   //Пример добавления колонки составного типа
    	МассТипов = Новый Массив;
    	МассТипов.Добавить(Тип("СправочникСсылка.Системы"));
    	МассТипов.Добавить(Тип("СправочникСсылка.ВидыНоменклатуры"));
    	ЭтаФорма["ДеревоТоваров_"+Сч].Колонки.Добавить("Система",Новый ОписаниеТипов(МассТипов),"System",20);
    	Продолжить;
    КонецЕсли;
    	
    ЭтаФорма["ДеревоТоваров_1"].Колонки.Добавить(Реквизит.Имя,Реквизит.Тип,Реквизит.Синоним,15);	
	КонецЦикла;

//

Код:
ТоварыПоСистеме.Данные = "ДеревоТоваров_1";

//Настраиваем внешний вид Дерева и устанавливаем привязки

Код:
ТоварыПоСистеме.Верх = 34;
ТоварыПоСистеме.Лево = 6;
ТоварыПоСистеме.Ширина = Форма.ЭлементыФормы.ПанельПроперти.Ширина - 18;
ТоварыПоСистеме.Высота = Форма.ЭлементыФормы.ПанельПроперти.Высота - 60;
ТоварыПоСистеме.УстановитьПривязку(ГраницаЭлементаУправления.Верх,Форма.ЭлементыФормы.ПанельПроперти,ГраницаЭлементаУправления.Верх);
ТоварыПоСистеме.УстановитьПривязку(ГраницаЭлементаУправления.Низ,Форма.ЭлементыФормы.ПанельПроперти,ГраницаЭлементаУправления.Низ);
ТоварыПоСистеме.УстановитьПривязку(ГраницаЭлементаУправления.Право,Форма.ЭлементыФормы.ПанельПроперти,ГраницаЭлементаУправления.Право);
ТоварыПоСистеме.ТолькоПросмотр = Ложь;
ТоварыПоСистеме.ИзменятьПорядокСтрок = Истина;
ТоварыПоСистеме.ИзменятьСоставСтрок = Истина;

//Создадим колонки элемента управления ДеревоТоваров на основании колонок Дерева значений, которые мы создали ранее   

Код:
ТоварыПоСистеме.СоздатьКолонки();

Установим обработчик события "ПриИзменении" для колонки "Номенклатура

Код:
ТоварыПоСистеме.Колонки.Номенклатура.ЭлементУправления.УстановитьДействие("ПриИзменении",Новый Действие("ДеревоТоваровНоменклатураПриИзменении"));

Внимание! В модуле Формы документа должна быть процедура ДеревоТоваровНоменклатураПриИзменении(Элемент)
А так же добавим обработчик "ОбработкаВыбора" для колонки "Номенклатура"

Код:
ТоварыПоСистеме.Колонки.Номенклатура.ЭлементУправления.УстановитьДействие("ОбработкаВыбора",Новый Действие("ДеревоТоваровНоменклатураОбработкаВыбора"));

Внимание! В модуле Формы документа должна быть процедура ДеревоТоваровНоменклатураОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)

И добавим дополнительную кнопку на панель управления

Код:
КоманднаяПанельДЗ.Кнопки.Добавить("Разделитель_");
Кнопка = КоманднаяПанельДЗ.Кнопки.Добавить("Подбор", ТипКнопкиКоманднойПанели.Действие, , Новый Действие("ПодборНажатие"));
Кнопка.Текст = "ПОДБОР";
Кнопка.Отображение = ОтображениеКнопкиКоманднойПанели.Надпись;
Кнопка.Подсказка   = "Подбор номенклатуры в ТЧ";