![]() |
|
Как удалить программно добавленную таблицу значений с управляемой формы? | ☑ | ||
---|---|---|---|---|
0
Мимохожий Однако
05.05.22
✎
10:37
|
Следующим кодом отобразил таблицу значений на форме
МассивТипаВыбора = Новый Массив; МассивТипаВыбора.Добавить(Тип("ТаблицаЗначений")); ОписаниеТипаВыбора = Новый ОписаниеТипов(МассивТипаВыбора); //Добавляем поля МассивДобавляемыхРеквизитов = Новый Массив; //добавляем табличное поле МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("ТабПрог", ОписаниеТипаВыбора)); Если ТЗ.Колонки.Количество()=0 Тогда Возврат КонецЕсли; //добавляем реквизиты полей табличного поля Для Каждого Колонка Из ТЗ.Колонки Цикл МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения,"ТабПрог",Колонка.Имя)); КонецЦикла; ИзменитьРеквизиты(МассивДобавляемыхРеквизитов); //Загружаем ТЗ с полученными данными ЭтотОбъект.ТабПрог.Загрузить(ТЗ); //Выводим поле формы ТаблицаФормы = Элементы.Добавить("ТабПрог", Тип("ТаблицаФормы")); ТаблицаФормы.ПутьКДанным = "ТабПрог"; ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет; ТаблицаФормы.ФиксацияСлева = 3; //выводим колонки поля формы Для Каждого Колонка Из ТЗ.Колонки Цикл НоваяКолонка = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), Элементы.ТабПрог); НоваяКолонка.Заголовок = Колонка.Имя; НоваяКолонка.ПутьКДанным = "ТабПрог."+Колонка.Имя; НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода; НоваяКолонка.РежимРедактирования = РежимРедактированияКолонки.ВходПриВводе; КонецЦикла; .. Теперь надо удалить эту таблицу с формы Удаляю кодом. НайдЭлемент=Элементы.Найти("ТабПрог"); Если НЕ НайдЭлемент=Неопределено Тогда Элементы.Удалить(НайдЭлемент); КонецЕсли; Но при повторном формировании таблицы значений на форме выдаёт ошибку по причине: Неуникальное имя реквизита. Имя: "ТабПрог" Получается, что я не удалил этот реквизит?! |
|||
1
Fish
гуру
05.05.22
✎
10:39
|
Реквизит формы и элемент формы - это не одно и то же.
|
|||
2
vicof
05.05.22
✎
10:40
|
(1) +1
|
|||
3
Fish
гуру
05.05.22
✎
10:41
|
+(1) Ты же сначала добавляешь реквизит, потом элементы формы для реквизита, а удаляешь только элемент.
|
|||
4
Мимохожий Однако
05.05.22
✎
11:02
|
(3) Я не спорю. Можно пример кода как удалить то, что добавил?
|
|||
5
Галахад
гуру
05.05.22
✎
11:09
|
Типа того:
МассивУдалить = Новый Массив; МассивУдалить.Добавить("ТабПрог"); ИзменитьРеквизиты(,МассивУдалить); |
|||
6
Мимохожий Однако
05.05.22
✎
11:21
|
(5) Спасибо. То, что надо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |