Добавляем на управляемую форму:
1)Реквизит "ТаблицаДанных" с типом таблица значений
2)Элемент "Таблица" - ТаблицаДанныхНаФорме и связываем с реквизитом ТаблицаДанных
По кнопке "Загрузить" пишем:
// Удаляем старые элементы формы и реквизиты формы если они есть
Если ТаблицаДанных.Количество() > 0 Тогда
МассивУдаления = Новый Массив;
МассивПолей = Новый Массив;
Для Каждого УдаляемыйЭлемент Из Элементы.ТаблицаДанныхНаФорме.ПодчиненныеЭлементы Цикл
ЭлементУдаления = УдаляемыйЭлемент.ПутьКДанным;
ПолеУдаляемогоЭлемента = Элементы.ТаблицаДанныхНаФорме.ПодчиненныеЭлементы.Найти(УдаляемыйЭлемент.Имя);
МассивПолей.Добавить(ПолеУдаляемогоЭлемента);
МассивУдаления.Добавить(ЭлементУдаления);
КонецЦикла;
Для Каждого k Из МассивПолей Цикл
Элементы.Удалить(k);
КонецЦикла;
ИзменитьРеквизиты(,МассивУдаления);
МассивУдаления.Очистить();
ТаблицаДанных.Очистить();
КонецЕсли;
//заполняем таблицу значений с динамическими колонками в управляемой форме
МассивДобавляемыхРеквизитов = Новый Массив;
Для Каждого Колонка Из ТаблицаДанныхExcel.Колонки Цикл
РеквизитФормы = Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "ТаблицаДанных", Колонка.Имя);
МассивДобавляемыхРеквизитов.Добавить(РеквизитФормы);
КонецЦикла;
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
Для Каждого Колонка Из ТаблицаДанныхExcel.Колонки Цикл
Элемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), Элементы.ТаблицаДанныхНаФорме);
Элемент.Вид = ВидПоляФормы.ПолеВвода;
Элемент.ПутьКДанным = "ТаблицаДанных." + Колонка.Имя;
КонецЦикла;
ЭтаФорма.ТаблицаДанных.Загрузить(ТаблицаДанныхExcel);
Источник
Комментариев нет:
Отправить комментарий