Имя: Пароль:
1C
1С v8
УФ. Не отображается на форме РеквизитФормы типа ТаблицаЗначений
0 yuraskas
 
14.04.20
00:01
Создан реквизит формы с типом ТаблицаЗначений с именем к примеру "врТЗХранилище" без колонок и добавлен на форму. Не виден (наверное что нет колонок?)
Колонки формируются программно:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Для н = 0 По 29 Цикл
        НаимКолонкиСервер = "Код"+Строка(н);
        МассивДобавляемыхРеквизитов = Новый Массив;
        МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(НаимКолонкиСервер, Новый ОписаниеТипов("Строка"),"врТЗХранилище"));
        ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);  
    КонецЦикла;
КонецПроцедуры

Тз заполняется программно, в отладчике видно, что заполнено, тип "ДанныеФормыКоллекция", но на форме нет ничего. Что еще нужно сделать чтобы отобразилось на форме.
1 yuraskas
 
14.04.20
00:04
После заполнения, добавил вот этот код, все равно не отображается на форме, что еще нужно сделать?

    ЭлементТаблица = Элементы.Добавить("МояТаблицаФормы", Тип("ТаблицаФормы"), Элементы.ГруппаМатрица);
    ЭлементТаблица.ПутьКДанным = "врТЗХранилище";
    ЭлементТаблица.Отображение = ОтображениеТаблицы.Список;

2 vicof
 
14.04.20
08:03
(0) Г..код детектед
Ну загляни хотя бы в синтакс-помощник.
3 yuraskas
 
14.04.20
08:26
(2)Коллеги, с УФ работал мало, прошу конструктивной помощи, если нечего ответить, лучше не пишите.
4 ДенисЧ
 
14.04.20
08:35
Я не помню, как в УФ, но в ОФ ещё нужно сказать СоздатьКолонки()...
5 Sedoy
 
14.04.20
08:49
(3) Чтобы увидеть таблицу на клиенте, ее надо и заполнять на клиенте.
6 hhhh
 
14.04.20
09:08
(3) чего это ты создал элементТаблица, а  ЭлеиентКолонки где? Пушкин будет за тебя создавать?
7 yuraskas
 
14.04.20
16:06
(5) Если я начинаю ее заполнять на клиенте, то вот что выдает: "Изменение состава элементов недоступно"
Поэтому делаем на сервере. Короче получилось, если кому пригодиться то вот такой код нужно, чтобы (0) вывести на форму:

&НаСервере
Процедура ОбновитьФорму()
    
    ЭлементТаблица = Элементы.Добавить("МояТаблицаФормы", Тип("ТаблицаФормы"), Элементы.ГруппаМатрица);
    ЭлементТаблица.ПутьКДанным = "врТЗХранилище";
    ЭлементТаблица.Отображение = ОтображениеТаблицы.Список;

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

    ЗначениеВДанныеФормы(вртз, врТЗХранилище);
    
КонецПроцедуры