Имя: Пароль:
1C
1С v8
Динамическая таблица на форме
0 1Cancer
 
15.02.16
18:11
Суть задачи, чтобы пользователь ввел 2 матрицы, размер которых заранее не известен. Пока, что думаю что это будет 2 ТЗ которые создаются динамически. Хорошее ли это решение, и можно ли им указать локацию, где они создадутся.
1 Cyberhawk
 
15.02.16
18:25
Хорошее, можно
2 1Cancer
 
15.02.16
18:33
(1) ок, а как например указать где создать ТЗ, допустим у меня есть группа группа1, могу я явно ее туда вставить, или пиксельно указать. Собственно если кто знает, хотелось бы пример кода
3 Cyberhawk
 
15.02.16
18:51
ОФ или УФ?
4 1Cancer
 
16.02.16
11:18
(3) уф
5 Cyberhawk
 
16.02.16
11:22
"могу я явно ее туда вставить, или пиксельно указать" // В группу вставить можешь, пиксельно - нет
"Собственно если кто знает, хотелось бы пример кода" // В СП Элементы.Добавить()
6 1Cancer
 
16.02.16
12:20
(5) я не очень понимаю, вот процедура, в ее параметр передается сформированное ТЗ, она выводит ТЗ на форму, как сделать чтобы она ее вывела в конкретное место О_о а именно в группу2 например
&НаСервере
    Процедура ВывестиТЗНаФорму(ТЗ)
        
        ИсходноеИмяТЗ = "МояТаблицаЗначений";
        
        МаксНомерТЗ = 0;
        
        МассивРеквизитов = ПолучитьРеквизиты();        
        
        Для каждого Реквизит Из МассивРеквизитов Цикл
            
            Если Лев(Реквизит.Имя, СтрДлина(ИсходноеИмяТЗ)) = ИсходноеИмяТЗ Тогда
                
                СтрНомер = Прав(Реквизит.Имя, СтрДлина(Реквизит.Имя) - СтрДлина(ИсходноеИмяТЗ));                
                
                Номер = Число(СтрНомер);
                
                Если Номер > МаксНомерТЗ Тогда
                    
                    МаксНомерТЗ = Номер;
                
                КонецЕсли;
            
            КонецЕсли;            
        
        КонецЦикла;
        
        ИмяТЗ = ИсходноеИмяТЗ + Строка(МаксНомерТЗ+1);
        
        //Имеем исходную таблицу значений с именем "ТЗ"
        //Добавляем реквизит формы
        МассивРеквизитов = Новый Массив;
        МассивРеквизитов.Добавить(Новый РеквизитФормы(ИмяТЗ, Новый ОписаниеТипов("ТаблицаЗначений"), "", ИмяТЗ));
        
        Для Каждого Колонка Из ТЗ.Колонки Цикл
            МассивРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, ИмяТЗ, Колонка.Заголовок));
        КонецЦикла;
        
        ИзменитьРеквизиты(МассивРеквизитов);
        
        //Помещаем Элементы на форму
        Таблица = Элементы.Добавить(ИмяТЗ, Тип("ТаблицаФормы"));
        Таблица.ПутьКДанным = ИмяТЗ;
        Таблица.Отображение = ОтображениеТаблицы.Список;        
        
        Для Каждого Колонка Из ТЗ.Колонки Цикл
            
            НовыйЭлемент = Элементы.Добавить(ИмяТЗ + "_" + Колонка.Имя, Тип("ПолеФормы"), Таблица);
            НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
            НовыйЭлемент.ПутьКДанным = ИмяТЗ + "." + Колонка.Имя;
            
        КонецЦикла;
        
        //переносим таблицу значений на форму
        ЗначениеВРеквизитФормы(ТЗ,ИмяТЗ);
        
    КонецПроцедуры
7 Cyberhawk
 
16.02.16
12:23
"я не очень понимаю"
Потому что ты по какой-то причине проигнорировал мой ответ.
Повторю значимую часть: "В СП Элементы.Добавить()"
8 1Cancer
 
16.02.16
12:36
(7) аа блин что - то читаю книгу вижу фигу))
Таблица = Элементы.Добавить(ИмяТЗ, Тип("ТаблицаФормы"),ЭтаФорма.Элементы["Группа3"]);
вот как раз то, что ты говорил.
Спасиб
Программист всегда исправляет последнюю ошибку.