MyTetra Share
Делитесь знаниями!
Создать таблицу на форме
Время создания: 14.09.2016 15:04
Автор: pola
Текстовые метки: 1c.forms
Раздел: Программирование - 1с - forms
Запись: xintrea/mytetra_anatolean/raw/master/base/14738546788ienz8uwa7/text.html на bitbucket.org

&НаСервере

Процедура СоздатьТаблицуНаФорме(ИмяТаблицы, ТаблицаИсточник, ТипЭлемента)

МассивДобавляемыхРеквизитов = Новый Массив;

МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(ИмяТаблицы, Новый ОписаниеТипов(ТипЭлемента)));

Для Каждого КолонкаТЗ Из ТаблицаИсточник.Колонки Цикл

МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(КолонкаТЗ.Имя, КолонкаТЗ.ТипЗначения, ИмяТаблицы));

КонецЦикла;

ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);

ЗначениеВРеквизитФормы(ТаблицаИсточник, ИмяТаблицы);

ЭлементТаблица = Элементы.Добавить(ИмяТаблицы, Тип("ТаблицаФормы"));

ЭлементТаблица.ПутьКДанным = ИмяТаблицы;

ЭлементТаблица.Отображение = ОтображениеТаблицы.Список;

ЭлементТаблица.ИзменятьПорядокСтрок = Ложь;

ЭлементТаблица.ИзменятьСоставСтрок = Ложь;

Для Каждого Колонка Из ТаблицаИсточник.Колонки Цикл

НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), ЭлементТаблица);

НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;

НовыйЭлемент.ПутьКДанным = ИмяТаблицы + "." + Колонка.Имя;

КонецЦикла;

КонецПроцедуры

// использование

// на форме должен быть создан элемент типа "Таблица" (имя в примере "ДанныеДляПроводок")

&НаСервере

Процедура ЗаполнитьДаннымиНаСервере() Экспорт

ТаблицаРезультат = РезультатЗапроса.Выгрузить();

Если Элементы.Найти("ДанныеДляПроводок") = Неопределено Тогда

СоздатьТаблицуНаФорме("ДанныеДляПроводок", ТаблицаРезультат, "ТаблицаЗначений");

Иначе

ЗначениеВРеквизитФормы(ТаблицаРезультат, "ДанныеДляПроводок");

КонецЕсли;

КонецПроцедуры

 
MyTetra Share v.0.59
Яндекс индекс цитирования