Имя: Пароль:
1C
1С v8
Програмно созданные колонки
, ,
0 Skimes
 
29.05.12
17:09
При открытии документа формирую дополнительные колонки в табличную часть:
Пока ОсновныеСклады.Следующий() Цикл
НоваяКолонка = ЭлементыФормы.ЗапчастиДерево.Колонки.Добавить();    
НоваяКолонка.Имя = "СК_" + ОсновныеСклады.Ссылка.Код;
НоваяКолонка.ТекстШапки = ОсновныеСклады.Ссылка;
НоваяКолонка.УстановитьЭлементУправления(Тип("ПолеВвода"));    КонецЦикла;

Затем в процедуре ПриПолученииДанных() пытаюсь ее заполнить. В отладчике если смотреть, то данные записываются как нужно, в значения ячеек данные попадают. Но по факту на форме их нет. И если снова инициировать ПриПолученииДанных(), значения тоже видно что обнулились.
Какое свойство я не выставил или что делаю не так?
1 Vladal
 
29.05.12
17:10
Обновить.
Надо просто ЗапчастиДерево.СоздатьКолонки()
2 Vladal
 
29.05.12
17:10
ну или ЭлементыФормы.Запчасти... создатьКолонки()
3 olya111
 
29.05.12
17:12
Надо использовать метод СоздатьКолонки()
4 Wobland
 
29.05.12
17:15
создать колонки уже предлагали?
5 Skimes
 
29.05.12
17:16
Ну так если через СоздатьКолонки(), он все старые убъет. Мне так не надо=)
6 Skimes
 
29.05.12
17:17
(1) "Обновить" ??
Ты предлагаешь обновлять ТЧ ПриПолученииДанных()???
7 ptiz
 
29.05.12
17:17
Данные должны где-то храниться. Если колонка таб.поля не связана с колонкой таб.части, то введенные данные надо куда-то сохранять (в ТЗ например) и рисовать каждый раз ПриПолученииДанных.
8 Vladal
 
29.05.12
17:19
(6) Я тебе написал, чтобы ты применил метод СоздатьКолонки()
9 Vladal
 
29.05.12
17:20
(4) Предлагали в первом посте. только ж не все буквы любимые.
10 olya111
 
29.05.12
17:20
Я делала аналогичную задачу с использованием СоздатьКолонки() у меня старые колонки ( которые были из табличной части обработки) не убил,а к тем что были добавил нужные.
11 Vladal
 
29.05.12
17:20
(5) Покажи свою супер-чудо-обработку, а?
12 Skimes
 
29.05.12
17:24
Ну допустим вот так:

Для Каждого ОформлениеСтроки из ОформленияСтрок Цикл
   Для каждого колонка из ОформлениеСтроки.Ячейки Цикл
       Если Лев(колонка.Имя,3) = "СК_" Тогда
        ПараметрыОтбора = Новый Структура;
        ПараметрыОтбора.Вставить("Номенклатура", ОформлениеСтроки.ДанныеСтроки.Номенклатура);
       ПараметрыОтбора.Вставить("Склад", Справочники.Склады.НайтиПоКоду(Прав(Колонка.Имя,9)));
       Остаток = ТаблицаОстатков.НайтиСтроки(ПараметрыОтбора);
       Колонка.Значение = ?(Остаток.Количество() = 0,0,Остаток[0].СвободныйОстаток);
       Колонка.ЦветФона = Новый Цвет(230,230,230);                
   КонецЕсли;    
           
   КонецЦикла;    
       
   КонецЦикла;
13 Skimes
 
29.05.12
17:25
Для Каждого ОформлениеСтроки из ОформленияСтрок Цикл
       

Первую строчку кода стер..
14 Skimes
 
29.05.12
17:27
(10) попробую тогда.
15 olya111
 
29.05.12
17:28
Я так делала:

Я делала так:

ЭлементыФормы.Результат.СоздатьКолонки();
   ЭлементыФормы.Результат.Колонки.СтрокаВФайле.ТолькоПросмотр = Истина;
   ЭлементыФормы.Результат.Колонки.КодСпирс.ТолькоПросмотр = Истина;
   ЭлементыФормы.Результат.Колонки.КодСпирс.ГоризонтальноеПоложениеВШапке = ГоризонтальноеПоложение.Центр;
   ЭлементыФормы.Результат.Колонки.НомерДизайна.ТолькоПросмотр = Истина;
   ЭлементыФормы.Результат.Колонки.НомерДизайна.ГоризонтальноеПоложениеВШапке = ГоризонтальноеПоложение.Центр;
   ЭлементыФормы.Результат.Колонки.Номенклатура.ЭлементУправления.КнопкаОткрытия = Истина;
   ЭлементыФормы.Результат.Колонки.Номенклатура.ГоризонтальноеПоложениеВШапке = ГоризонтальноеПоложение.Центр;
и.т.д.

Где Результат - это таблица значений на форме данные у которой табличная часть результат
16 olya111
 
29.05.12
17:31
Или если нет наименований можно то же через Получить()..