1С 8.x Управляемое приложение 1С 7.7. Бухучет Статьи Ссылки
1С 8.x arrow 1С 8.x arrow Узелки на память arrow Программное создание элементов формы
Программное создание элементов формы Печать

Динамическое добавление флажка 

Обработчике события ПередОтктытием :

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

 

Лучше код который создает флажок в поместить в обработчик ПередОткрытием(),
а позиционирование в обработчик ОбновлениеОтображения()
 

Динамическое добавление кнопки

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
  
 МВерх = 60;
 МЛево = 12;
 
 ВГр = тзВидыБлюд.Количество();
 
 Инд = 0;
 Пока Инд <= ВГр-1 Цикл
 
  ЭлементСпискаВидыБлюд = тзВидыБлюд[Инд];
 
  Кнопка = ЭлементыФормы.Добавить(Тип("Кнопка"), ЭлементСпискаВидыБлюд.Имя, Истина);
  Кнопка.ЦветФонаКнопки = ЭлементСпискаВидыБлюд.ЦветФонаКнопки;
  Кнопка.Заголовок = ЭлементСпискаВидыБлюд.Представление;
  Кнопка.Шрифт = ШрифтКнопки;
 
  Кнопка.Верх = МВерх;
  Кнопка.Лево = МЛево;
  Кнопка.Ширина = 200;
  Кнопка.Высота = 50;
   
  МВерх = МВерх + Кнопка.Высота + мПромежутокМеждуКнопками;
 
 
  Действие = Новый Действие("РеакцияНаНажатие");
  Кнопка.УстановитьДействие("Нажатие", Действие);
 
 
  Инд = Инд + 1;
 
 КонецЦикла;
 
 
 
КонецПроцедуры

Процедура РеакцияНаНажатие(Элемент)
 
  
 Сообщить("Нажатие кнопки c именем " + Элемент.Имя );
 Сообщить(Строка(Перечисления.ВидыБлюд[Элемент.Имя]));
  
КонецПроцедуры

Процедура ДобавитьСтрокуВТзВидыБлюд(Имя, Представление, ЦветФонаКнопки)
НоваяСтрока = тзВидыБлюд.Добавить();

НоваяСтрока.Имя = Имя;
НоваяСтрока.Представление = Представление;
НоваяСтрока.ЦветФонаКнопки = ЦветФонаКнопки;
 
КонецПроцедуры

//--------------------------------------------------------------------------
тзВидыБлюд = Новый ТаблицаЗначений;
тзВидыБлюд.Колонки.Добавить("Имя");
тзВидыБлюд.Колонки.Добавить("Представление");
тзВидыБлюд.Колонки.Добавить("ЦветФонаКнопки");

ДобавитьСтрокуВТзВидыБлюд("КомплексныйОбед", "Комплексный обед", WebЦвета.Бирюзовый);
ДобавитьСтрокуВТзВидыБлюд("Первое" , "Первое" , WebЦвета.Аквамарин);
ДобавитьСтрокуВТзВидыБлюд("Второе" , "Второе" , WebЦвета.БледноЗеленый);
ДобавитьСтрокуВТзВидыБлюд("Третье" , "Третье" , WebЦвета.БледноЗолотистый);
ДобавитьСтрокуВТзВидыБлюд("Выпечка" , "Выпечка" , WebЦвета.Васильковый);



//---------------------------------------------------------------------------

мПромежутокМеждуКнопками = 12;
ШрифтКнопки = Новый Шрифт("Arial", 12,Истина);