Имя: Пароль:
1C
 
8.2 Таблицу значений на управляемую форму программно
0 Dmitr
 
02.07.10
13:08
Как собственно на форму вытащить таблицу значений именно программно.
Сильно не пинайте с 8.2 пока только осваиваюсь
1 Mort
 
02.07.10
13:10
(Таблица значений) уже есть как реквизит?
2 Dmitr
 
02.07.10
13:11
нет она тоже программно создаеться
3 Dmitr
 
02.07.10
13:11
и структура у нее естественно может меняться
4 Mort
 
02.07.10
13:14
На сервере создается?
Нужно создать ДанныеФормыКоллекция соотв. ТЗ и пихнуть её в реквизиты формы через ИзменитьРеквизиты, потом создать через Элементы таблицу формы с привязкой к этой коллекции.
5 Dmitr
 
02.07.10
13:16
(4) А образец кода можно? Плиз
6 Mort
 
02.07.10
13:21
(5) А ты попробуй сам. Вдруг получится? В СП поищи, в типовой какой-нить.
7 Dmitr
 
02.07.10
14:12
Не могу сообразить как и примеров в типовых нету. По крайней мере явных
8 johnbay
 
02.07.10
14:46
Примерно так:
МассивТипаВыбора = Новый Массив;
МассивТипаВыбора.Добавить(Тип("ТаблицаЗначений"));
ОписаниеТипаВыбора = Новый ОписаниеТипов(МассивТипаВыбора);
МассивРеквизитов.Добавить(Новый РеквизитФормы("МойРеквизит", ОписаниеТипаВыбора, "", "Моя таблица"));


ТаблицаПолейВыбора                          = ФормаОтчета.Элементы.Добавить("МояТаблица", Тип("ТаблицаФормы"), Группа);
ТаблицаПолейВыбора.ПутьКДанным              = "МойРеквизит";
ТаблицаПолейВыбора.Отображение              = ОтображениеТаблицы.Список;
ТаблицаПолейВыбора.ПоложениеЗаголовка       = ПоложениеЗаголовкаЭлементаФормы.Нет;
ТаблицаПолейВыбора.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
ТаблицаПолейВыбора.ВертикальныеЛинии        = ложь;
ТаблицаПолейВыбора.ГоризонтальныеЛинии      = ложь;
ТаблицаПолейВыбора.Шапка                    = ложь;
ТаблицаПолейВыбора.Подвал                   = ложь;
ТаблицаПолейВыбора.ИзменятьПорядокСтрок     = истина;
ТаблицаПолейВыбора.ИзменятьСоставСтрок      = ложь;
ТаблицаПолейВыбора.РастягиватьПоГоризонтали = Истина;
ТаблицаПолейВыбора.ИзменятьСоставСтрок      = ложь;

ФормаОтчета.ИзменитьРеквизиты(МассивРеквизитов);
9 Defender aka LINN
 
02.07.10
14:48
10 Dmitr
 
02.07.10
14:49
Спасибо попробую отпишусь о результатах
11 Dmitr
 
02.07.10
16:42
Вообщем получилось както так:

   МассивРеквизитов = Новый Массив;
   МассивТипаВыбора = Новый Массив;
   МассивТипаВыбора.Добавить(Тип("ТаблицаЗначений"));
   ОписаниеТипаВыбора = Новый ОписаниеТипов(МассивТипаВыбора);
   МассивРеквизитов.Добавить(Новый РеквизитФормы("МойРеквизит", ОписаниеТипаВыбора, "", "Моя таблица"));
   
   Для Каждого Колонка Из ТЗ.Колонки Цикл
        МассивРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "МойРеквизит"));
   КонецЦикла;

   ИзменитьРеквизиты(МассивРеквизитов);
   
   ТаблицаПолейВыбора                          = Элементы.Добавить("МояТаблица", Тип("ТаблицаФормы"),Родитель);
   ТаблицаПолейВыбора.ПутьКДанным              = "МойРеквизит";
   ТаблицаПолейВыбора.Отображение              = ОтображениеТаблицы.Список;
   Для Каждого Колонка Из ТЗ.Колонки Цикл
       НовыйЭлемент = Элементы.Добавить("Дерево_" + Колонка.Имя, Тип("ПолеФормы"), ТаблицаПолейВыбора);
       НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
       НовыйЭлемент.ПутьКДанным = "МойРеквизит." + Колонка.Имя;
   КонецЦикла;    
   ЗначениеВРеквизитФормы(ТЗ,"МойРеквизит");

ТЗ - произвольная таблица значений.