Код 1C v 8.2 УП &НаСервере
Процедура ДобавитьНаСервере()
ДобавляемыеРеквизиты = Новый Массив;
Реквизит1 = Новый РеквизитФормы( "Таб" , Новый ОписаниеТипов( "ТаблицаЗначений" ) , , "Таблица" , Истина ) ;
ДобавляемыеРеквизиты. Добавить( Реквизит1 ) ;
ИзменитьРеквизиты( ДобавляемыеРеквизиты) ;
ДобавляемыеРеквизиты = Новый Массив;
Реквизит2 = Новый РеквизитФормы( "Кол" , Новый ОписаниеТипов( "Строка" ) , "Таб" , "Колонка" , Истина ) ;
ДобавляемыеРеквизиты. Добавить( Реквизит2 ) ;
ИзменитьРеквизиты( ДобавляемыеРеквизиты) ;
ТаблицаФормы = ЭтаФорма. Элементы. Добавить( "Таблица" , Тип( "ТаблицаФормы" ) , ЭтаФорма) ;
ТаблицаФормы. ПутьКДанным = "Таб" ;
Колонка = ЭтаФорма. Элементы. Добавить( "Колонка" , Тип( "ПолеФормы" ) , ТаблицаФормы) ;
Колонка. ПутьКДанным = "Таб.Кол" ;
КонецПроцедуры
еще
Код 1C v 8.2 УП
Кмд = ЭтаФорма. Команды. Добавить( "Выгрузить" ) ;
Кмд. Действие = "Выгрузить" ;
Кмд. Заголовок = "Выгрузить в файл" ;
КмдЗ = ЭтаФорма. Команды. Добавить( "Загрузить" ) ;
КмдЗ. Действие = "Загрузить" ;
КмдЗ. Заголовок = "Загрузить из файла" ;
КмдЗ = ЭтаФорма. Команды. Добавить( "ЗаписатьВДокумент" ) ;
КмдЗ. Действие = "ЗаписатьВДокумент" ;
КмдЗ. Заголовок = "Записать в документ" ;
Горизонт = ЭтаФорма. Элементы. Добавить( "Горизонт" , Тип( "ГруппаФормы" ) , ЭтаФорма) ;
Горизонт. Вид = ВидГруппыФормы. ОбычнаяГруппа;
Элемент2 = ЭтаФорма. Элементы. Добавить( "Выгрузить" , Тип( "КнопкаФормы" ) , Горизонт) ;
Элемент2 . Вид = ВидКнопкиФормы. ОбычнаяКнопка;
Элемент2 . ИмяКоманды = "Выгрузить" ;
Элемент = ЭтаФорма. Элементы. Добавить( "Загрузить" , Тип( "КнопкаФормы" ) , ЭтаФорма) ;
Элемент. Вид = ВидКнопкиФормы. ОбычнаяКнопка;
Элемент. ИмяКоманды = "Загрузить" ;
Элемент = ЭтаФорма. Элементы. Добавить( "ЗаписатьВДокумент" , Тип( "КнопкаФормы" ) , ЭтаФорма) ;
Элемент. Вид = ВидКнопкиФормы. ОбычнаяКнопка;
Элемент. ИмяКоманды = "ЗаписатьВДокумент" ;
ТаблицаФормы = Элементы. Добавить( "ф__ТЗ" , Тип( "ТаблицаФормы" ) ) ;
ТаблицаФормы. ПутьКДанным = "ТЗ" ;
Код 1C v 8.2 УП &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ДобавляемыеРеквизиты = Новый Массив;
Реквизит = Новый РеквизитФормы( "Реквизит1" , Новый ОписаниеТипов( "Строка" ) , , "Введите строку" , Истина ) ;
ДобавляемыеРеквизиты. Добавить( Реквизит) ;
ИзменитьРеквизиты( ДобавляемыеРеквизиты) ;
Элемент = ЭтаФорма. Элементы. Добавить( "Поле" , Тип( "ПолеФормы" ) , ЭтаФорма) ;
Элемент. Вид = ВидПоляФормы. ПолеВвода;
Элемент. ПутьКДанным = "Реквизит1" ;
Кмд = ЭтаФорма. Команды. Добавить( "Команда1" ) ;
Кмд. Действие = "НажатиеКнопки" ;
Кмд. Заголовок = "Нажатие кнопки" ;
Элемент2 = ЭтаФорма. Элементы. Добавить( "Кнопка1" , Тип( "КнопкаФормы" ) , ЭтаФорма) ;
Элемент2 . Вид = ВидКнопкиФормы. ОбычнаяКнопка;
Элемент2 . ИмяКоманды = "Команда1" ;
КонецПроцедуры
&НаКлиенте
Процедура НажатиеКнопки()
ЭтаФорма. Реквизит1 = "Готово" ;
КонецПроцедуры
Программное добавление кнопок в управляемый интерфейс
Если упрощенно, то помог код следующего содержания:
Код 1C v 8.2 УП &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Для Каждого ТекИмяКнопки Из Параметры. МассивИменКнопок Цикл
КомандаФормы = Команды. Добавить( ТекИмяКнопки) ;
КомандаФормы. Действие = "ПроцедураОбработкиНажатия" ;
Элементы. Добавить( ТекИмяКнопки, Тип( "КнопкаФормы" ) , Элементы. ПоПравилуОбработкиПодменю) ;
Элементы[ТекИмяКнопки]. Заголовок = ТекИмяКнопки;
Элементы[ТекИмяКнопки]. ИмяКоманды = ТекИмяКнопки;
КонецЦикла
КонецПроцедуры
Параметры.МассиИменКнопок – Массив, в котором содержаться имена создаваемых кнопок.
Элементы.ПоПравилуОбработкиПодменю – группа подменю, в которую добавляются кнопки.
«ПроцедураОбработкиНажатия» – имя процедуры, которая объявлена на стороне клиента. Именно ей будет передаваться управление в случае нажатия кнопки. Идентификацию того, какая именно кнопка была нажата проводил по имени команды.
Код 1C v 8.2 УП &НаКлиенте
Процедура ПроцедураОбработкиНажатия(Элемент)
Состояние( "Выполняется нажатие кнопки с командой" + Элемент. Имя) ;
КонецПроцедуры
Следует отметить, что обязательно создание команд. Если кнопке не определить имя команды, то платформа такую кнопку не покажет.