Имя: Пароль:
1C
1С v8
Добавление колонок в таблицу значений.
, ,
0 Bober777
 
21.01.13
16:02
Добавление колонок в таблицу значений. Таблица значений является реквизитом формы в управляемой форме. Таблица без колонок на форме не показывается естественно. Но и программно колонки не добавляются. А это вообще возможно?
КС = Новый КвалификаторыСтроки;
   Массив = Новый Массив;
   Массив.Добавить(Тип("Строка"));
   ОписаниеТиповСтрока             = Новый ОписаниеТипов(Массив,    ,    КС);
   ТЗ.Выгрузить().Колонки.Добавить("Колонка"        , Новый ОписаниеТипов("Строка"));
1 Bober777
 
21.01.13
16:03
т.е. приведенный код не работает. Работает но на таблице значений если ее создать не на форме, а в модуле программно

ТЗ = Новый ТаблицаЗначений;
2 Reset
 
21.01.13
16:10
Нету ТаблицаЗначений на клиенте
Реквизитом УФ является ДанныеФормыКоллекция.
Гуру ФУ меня поправят.
3 Reset
 
21.01.13
16:10
УФ*
простите
4 Bober777
 
21.01.13
16:11
а я в серверной процедуре это делаю
5 Reset
 
21.01.13
16:12
Насколько я понимаю, в ДанныеФормыКоллекция колонки программно не добавить.
6 Bober777
 
21.01.13
16:13
нет не добавить.
7 Reset
 
21.01.13
16:13
Ладно, чтоб не обмануть, лучше помолчу
8 MSII
 
21.01.13
16:15
Сначала добавляем реквизиты, потом элементы. Поиском посмотри, не раз обмусоливался механизм.
9 Bober777
 
21.01.13
16:16
(7)Да я вот тут тему одну ковыряю, сейчас буду применять примеры от туда).
v8: Программное отображение таблицы значений я думаю это как раз моя тема).
10 Bober777
 
21.01.13
18:01
МассивДобавляемыхРеквизитов = Новый Массив;
   МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("План", Новый ОписаниеТипов("ТаблицаЗначений")));
   
   МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"),"План" ,"Номенклатура"));
   МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Регион", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,2)),"План" , "Регион"));
   МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Разница", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,2)),"План" , "Осталось распределить"));
   
   ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
   
   ТаблицаФормы = Элементы.Добавить("План", Тип("ТаблицаФормы"));
   ТаблицаФормы.ПутьКДанным = "План";
   ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
   ТаблицаФормы.ФиксацияСлева = 3;
   ТаблицаФормы.УстановитьДействие("ПередУдалением", "ПланПередУдалением");
   ТаблицаФормы.УстановитьДействие("ПередНачаломДобавления", "ПланПередНачаломДобавления");
   
   НоваяКолонка = Элементы.Добавить("ПланНоменклатура", Тип("ПолеФормы"), Элементы.План);
   НоваяКолонка.Заголовок = "Номенклатура";
   НоваяКолонка.ПутьКДанным = "План.Номенклатура";
   НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
   НоваяКолонка.РежимРедактирования = РежимРедактированияКолонки.ВходПриВводе;
   
   ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
   ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
   ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ПланНоменклатура");
   ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("План.Разница");
   ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   ЭлементОтбора.ПравоеЗначение = 100;
   ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый);


Я посмотрел этот код на сайте
http://help1c.com/faq/view/1170.html
и во всем разобрался