0
Мимохожий Однако
05.05.22
✎
10:37
|
Следующим кодом отобразил таблицу значений на форме
МассивТипаВыбора = Новый Массив;
МассивТипаВыбора.Добавить(Тип("ТаблицаЗначений"));
ОписаниеТипаВыбора = Новый ОписаниеТипов(МассивТипаВыбора);
//Добавляем поля
МассивДобавляемыхРеквизитов = Новый Массив;
//добавляем табличное поле
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("ТабПрог", ОписаниеТипаВыбора));
Если ТЗ.Колонки.Количество()=0 Тогда
Возврат
КонецЕсли;
//добавляем реквизиты полей табличного поля
Для Каждого Колонка Из ТЗ.Колонки Цикл
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения,"ТабПрог",Колонка.Имя));
КонецЦикла;
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
//Загружаем ТЗ с полученными данными
ЭтотОбъект.ТабПрог.Загрузить(ТЗ);
//Выводим поле формы
ТаблицаФормы = Элементы.Добавить("ТабПрог", Тип("ТаблицаФормы"));
ТаблицаФормы.ПутьКДанным = "ТабПрог";
ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
ТаблицаФормы.ФиксацияСлева = 3;
//выводим колонки поля формы
Для Каждого Колонка Из ТЗ.Колонки Цикл
НоваяКолонка = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), Элементы.ТабПрог);
НоваяКолонка.Заголовок = Колонка.Имя;
НоваяКолонка.ПутьКДанным = "ТабПрог."+Колонка.Имя;
НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
НоваяКолонка.РежимРедактирования = РежимРедактированияКолонки.ВходПриВводе;
КонецЦикла;
..
Теперь надо удалить эту таблицу с формы
Удаляю кодом.
НайдЭлемент=Элементы.Найти("ТабПрог");
Если НЕ НайдЭлемент=Неопределено Тогда
Элементы.Удалить(НайдЭлемент);
КонецЕсли;
Но при повторном формировании таблицы значений на форме выдаёт ошибку по причине:
Неуникальное имя реквизита. Имя: "ТабПрог"
Получается, что я не удалил этот реквизит?!
|
|