Имя: Пароль:
1C
1С v8
УФ: табличная часть. Как добавить произвольное количество колонок?
0 НубВ1С8
 
01.07.13
20:55
Изначально я не знаю, сколько и каких колонок будет в табличной части обработки. Как добавить?

в принципе, &насервере можно создать ТЗ со всеми требуемыми характеристиками, но я не пойму, как ТЗ в Табличную часть обработки положить.
1 AlexNew
 
01.07.13
21:10
В книге Разработка управляемого интерфейса есть, там буков много.
2 Eugeneer
 
01.07.13
21:33
ярчайший пример есть в самой типовой - документ установка цен номенклатуры.
3 Eugeneer
 
01.07.13
21:34
все на самом деле очень и очень просто. У тебя есть массив.
В цикле массива можно создавать и заполнять любые колонки указав им генерируемый идентификатор по которому далее можно работать с данными такой таблицы. опять таки через цикл по массиву.
4 AlexNew
 
01.07.13
21:35
(2) УФ, УТ 11? и там лишнего много.
5 Eugeneer
 
01.07.13
21:35
(4) да. все элементарно!
6 Eugeneer
 
01.07.13
21:37
автору могу в подарок дать разработку в которой я это юзаю.
http://subsystems.ru/catalog/29/474/
7 anddro
 
01.07.13
21:38
8 Eugeneer
 
01.07.13
21:41
(7) это на 90 процентов того что я писал в (2).
Типовой код.
9 anddro
 
01.07.13
21:51
(8) судя по частоте этого вопроса, пора его в кз
10 Eugeneer
 
01.07.13
21:54
Таже самая ситуация и с условными оформлениями построенными программно.
11 Eugeneer
 
01.07.13
21:54
например если усложнить задачу и еще надо раскрашивать определенные ячейки таблицы построенной с произвольными колонками.
12 НубВ1С8
 
02.07.13
09:06
(6) можно на sh(гав)ic-angara.ru ?
13 НубВ1С8
 
12.07.13
09:38
Чтобы ветка не осталась без решения-кода:
&НаСервере
Процедура СоздатьКолонкуНасервере(НазваниеКолонки)
     // Добавить реквизит.
   
ТипыРеквизита = Новый Массив;
ТипыРеквизита.Добавить(Тип("Строка"));
   
ОписаниеТиповДляРеквизита = Новый ОписаниеТипов(ТипыРеквизита);
   
НовыйРеквизит = Новый РеквизитФормы(НазваниеКолонки,   // имя
                                       ОписаниеТиповДляРеквизита,    // тип
                                       "Объект.ТЗ",    // путь к табличной части
                                       НазваниеКолонки,                  // заголовок
                                       Истина);                      // сохраняемые данные

   ДобавляемыеРеквизиты = Новый Массив;
   ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
   
   ИзменитьРеквизиты(ДобавляемыеРеквизиты);
   
   // Добавить элемент формы и связать его с реквизитом.
   НовыйЭлемент = Элементы.Добавить(НазваниеКолонки, Тип("ПолеФормы"), Элементы.ТЗ);
   НовыйЭлемент.ПутьКДанным   = "Объект.ТЗ."+НазваниеКолонки;                                    
   НовыйЭлемент.Вид           = ВидПоляФормы.ПолеВвода;
   НовыйЭлемент.Доступность = Истина;
   //НовыйЭлемент.ЦветФона = webЦвета.Аквамарин;
   элементы.Шахматка.Видимость = истина;


   новыйэлемент.Видимость =истина ;
конецпроцедуры
Ошибка? Это не ошибка, это системная функция.