10.2. ТаблицаЗначений в качестве реквизита управляемой формы

1. ТабицаЗначений задана статически

Необходимо вставить поле НомерСтроки и проинициализировать

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

//Добавляем поля

МассивДобавляемыхРеквизитов = Новый Массив;

МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("НомерСтроки", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,0)),"ТабЗнач" , "НомерСтроки"));

ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);

//добавляем строку данных

СтрокаТекущаяТаблица = ТабЗнач.Добавить();

СтрокаТекущаяТаблица.НомерСтроки = 1;

//Выводим

ТаблицаФормы = Элементы.Добавить("ТабЗнач", Тип("ТаблицаФормы"));

ТаблицаФормы.ПутьКДанным = "ТабЗнач";

ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;

ТаблицаФормы.ФиксацияСлева = 3;

НоваяКолонка = Элементы.Добавить("НомерСтроки", Тип("ПолеФормы"), Элементы.ТабЗнач);

НоваяКолонка.Заголовок = "Номер строки";

НоваяКолонка.ПутьКДанным = "ТабЗнач.НомерСтроки";

НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;

НоваяКолонка.РежимРедактирования = РежимРедактированияКолонки.ВходПриВводе;

КонецПроцедуры

2. ТаблицаЗначений План с Номенклатура, Регион, Разница полями добавляется программно

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

//Добавляем поля

МассивДобавляемыхРеквизитов = Новый Массив;

МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("План", Новый ОписаниеТипов("ТаблицаЗначений")));

МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"),"План" ,"Номенклатура"));

МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Регион", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,2)),"План" , "Регион"));

МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Разница", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,2)),"План" , "Осталось распределить"));

ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);

//Выводим

ТаблицаФормы = Элементы.Добавить("План", Тип("ТаблицаФормы"));

ТаблицаФормы.ПутьКДанным = "План";

ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;

ТаблицаФормы.ФиксацияСлева = 3;

ТаблицаФормы.УстановитьДействие("ПередУдалением", "ПланПередУдалением");

ТаблицаФормы.УстановитьДействие("ПередНачаломДобавления", "ПланПередНачаломДобавления");

НоваяКолонка = Элементы.Добавить("ПланНоменклатура", Тип("ПолеФормы"), Элементы.План);

НоваяКолонка.Заголовок = "Номенклатура";

НоваяКолонка.ПутьКДанным = "План.Номенклатура";

НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;

НоваяКолонка.РежимРедактирования = РежимРедактированияКолонки.ВходПриВводе;

ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();

ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ПланНоменклатура");

ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("План.Разница");

ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;

ЭлементОтбора.ПравоеЗначение = 100;

ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый);

КонецПроцедуры