10.2. ТаблицаЗначений в качестве реквизита управляемой формы
1. ТабицаЗначений задана статически
Необходимо вставить поле НомерСтроки и проинициализировать
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
//Добавляем поля
МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("НомерСтроки", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,0)),"ТабЗнач" , "НомерСтроки"));
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
//добавляем строку данных
СтрокаТекущаяТаблица = ТабЗнач.Добавить();
СтрокаТекущаяТаблица.НомерСтроки = 1;
//Выводим
ТаблицаФормы = Элементы.Добавить("ТабЗнач", Тип("ТаблицаФормы"));
ТаблицаФормы.ПутьКДанным = "ТабЗнач";
ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
ТаблицаФормы.ФиксацияСлева = 3;
НоваяКолонка = Элементы.Добавить("НомерСтроки", Тип("ПолеФормы"), Элементы.ТабЗнач);
НоваяКолонка.Заголовок = "Номер строки";
НоваяКолонка.ПутьКДанным = "ТабЗнач.НомерСтроки";
НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
НоваяКолонка.РежимРедактирования = РежимРедактированияКолонки.ВходПриВводе;
КонецПроцедуры
2. ТаблицаЗначений План с Номенклатура, Регион, Разница полями добавляется программно
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
//Добавляем поля
МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("План", Новый ОписаниеТипов("ТаблицаЗначений")));
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"),"План" ,"Номенклатура"));
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Регион", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,2)),"План" , "Регион"));
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Разница", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,2)),"План" , "Осталось распределить"));
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
//Выводим
ТаблицаФормы = Элементы.Добавить("План", Тип("ТаблицаФормы"));
ТаблицаФормы.ПутьКДанным = "План";
ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
ТаблицаФормы.ФиксацияСлева = 3;
ТаблицаФормы.УстановитьДействие("ПередУдалением", "ПланПередУдалением");
ТаблицаФормы.УстановитьДействие("ПередНачаломДобавления", "ПланПередНачаломДобавления");
НоваяКолонка = Элементы.Добавить("ПланНоменклатура", Тип("ПолеФормы"), Элементы.План);
НоваяКолонка.Заголовок = "Номенклатура";
НоваяКолонка.ПутьКДанным = "План.Номенклатура";
НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
НоваяКолонка.РежимРедактирования = РежимРедактированияКолонки.ВходПриВводе;
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ПланНоменклатура");
ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("План.Разница");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = 100;
ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый);
КонецПроцедуры