Имя: Пароль:
1C
1С v8
Добавить колонку в ТЗ УФ
,
0 rull9ss
 
16.04.13
19:03
Сильно не пинать, только учусь.

необходимо программно добавить колонки в таблицу значений на форме(реквизит формы). делаю так:

ТаблицаАналоги = РеквизитФормыВЗначение("ТекущиеАналоги",Тип("ТаблицаЗначений"));
   Для Каждого СтрокаТЗ Из Тз цикл
       СтрокаАналогов = ТаблицаАналоги.Найти(СтрокаТЗ.Номенклатура, "Аналог");
   
       
       КолонкаЦены = ТаблицаАналоги.Колонки.Добавить(Строка(СтрокаТЗ.ВидЦены)+"Цена"+Строка(СтрокаТЗ.Валюта),,Строка(СтрокаТЗ.ВидЦены)+", Цена "+Строка(СтрокаТЗ.Валюта));
       СтрокаАналогов[КолонкаЦены.Имя] = СтрокаТЗ.Цена;

   КонецЦикла;
   ЗначениеВРеквизитФормы(ТаблицаАналоги, "ТекущиеАналоги");

В ТекущиеАналоги колонки добавляются и заполняются нормально. но когда передаю значение в реквизит формы то ТаблицаАналоги получается без колонок.
Подскажите что не так делаю, как правильно добавить колонки в ТЗ?
1 Wobland
 
16.04.13
19:04
таблица значений - это кусок памяти ваще-то
2 rull9ss
 
16.04.13
19:05
(1) и?
3 grayshadow
 
16.04.13
19:05
Для Каждого СтрокаТЗ Из Тз цикл
ТаблицаАналоги.Колонки.Добавить

а что, надо иметь столько колонок, сколько строк в ТЗ?
4 Wobland
 
16.04.13
19:05
(2) формулируй мысли корректно
5 Wobland
 
16.04.13
19:07
а что такое Тз?
6 rull9ss
 
16.04.13
19:07
(3) именно.

(4) да вроде конкретней некуда. Вопрос: как программно добавить колонки в реквизит формы(Тип таблица Значений)
7 rull9ss
 
16.04.13
19:07
(5) Таблица Значений
8 Wobland
 
16.04.13
19:08
(7) спасибо, кэп
9 rull9ss
 
16.04.13
19:09
(8) по сути ответить можешь7 а то конец рабочего дня, а мне этот чуток остался доделать
10 Wobland
 
16.04.13
19:09
(9) уже нет
11 grayshadow
 
16.04.13
19:24
кусок из моего решения:

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

и только потом ЗначениеВРеквизитФормы
12 rull9ss
 
17.04.13
10:50
МассивДобавляемыхРеквизитов = Новый Массив;
       МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Строка(СтрокаТЗ.ВидЦены)+"Цена"+Строка(СтрокаТЗ.Валюта), Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15,3)),"ТекущиеАналоги", Строка(СтрокаТЗ.ВидЦены)+", Цена "+Строка(СтрокаТЗ.Валюта)));
       
       ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
       
       
       НоваяКолонка = Элементы.Добавить(Строка(СтрокаТЗ.ВидЦены)+"Цена"+Строка(СтрокаТЗ.Валюта), Тип("ПолеФормы"), ЭтаФорма.Элементы.ТекущиеАналоги);
       НоваяКолонка.Заголовок = Строка(СтрокаТЗ.ВидЦены)+", Цена "+Строка(СтрокаТЗ.Валюта);
       НоваяКолонка.ПутьКДанным = "ТекущиеАналоги."+Строка(СтрокаТЗ.ВидЦены)+"Цена"+Строка(СтрокаТЗ.Валюта);
       НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;



Может поможет кому-то
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.