Я пробовал вышеуказанный код - у меня не работало удаление таблицы значений из управляемой формы. В итоге сделал свою модификацию:
Удаление таблицы значений из управляемой формы
Удалять реквизиты таблицы значений нет нужды - достаточно удалить саму таблицу значений.
&НаСервере
Процедура УдалитьТЗ(УФ, НомерТЗ="1") Экспорт
ИмяТаблицы = "МояТаблицаЗначений";
ИмяТЗНаФорме = ИмяТаблицы + НомерТЗ;
// Если удаляемая таблица значений действительно присутствует на данной управляемой форме
Если НЕ УФ.Элементы.Найти(ИмяТЗНаФорме) = Неопределено Тогда
// Сначала удалим реквизит "Таблица значений" из УФ
МассивИменУдаляемыхРеквизитов = Новый Массив;
МассивИменУдаляемыхРеквизитов.Добавить(ИмяТЗНаФорме);
УФ.ИзменитьРеквизиты(,МассивИменУдаляемыхРеквизитов);
УдаляемыйЭлемент = УФ.Элементы.Найти(ИмяТЗНаФорме);
Если НЕ УдаляемыйЭлемент = Неопределено Тогда
// Теперь удалим элемент формы, который служил для визуального отображения
// удалённого реквизита УФ "Таблица значений"
УФ.Элементы.Удалить(УдаляемыйЭлемент);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Показать
Ну и до кучи - процедура вывода таблицы значений на управляемую форму:
&НаСервере
Процедура _ПечатьТЗ_УФ(ТЗ, Форма, НомерТЗ="1") Экспорт
//http://bilbo.com.ua/tablitsa-znacheniy-v-upravlyaemoy-forme.html
УдалитьТЗ(Форма, НомерТЗ); //моё добавление
//Имеем исходную таблицу значений с именем "ТЗ"
//Добавляем реквизит формы
ИмяТЗ = "МояТаблицаЗначений" + НомерТЗ;
МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить(Новый РеквизитФормы(ИмяТЗ, Новый ОписаниеТипов("ТаблицаЗначений"), "", ИмяТЗ));
Для Каждого Колонка Из ТЗ.Колонки Цикл
МассивРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, ИмяТЗ, Колонка.Заголовок));
КонецЦикла;
Форма.ИзменитьРеквизиты(МассивРеквизитов);
//Помещаем Элементы на форму
Таблица = Форма.Элементы.Добавить(ИмяТЗ, Тип("ТаблицаФормы"));
Таблица.ПутьКДанным = ИмяТЗ;
Таблица.Отображение = ОтображениеТаблицы.Список;
Для Каждого Колонка Из ТЗ.Колонки Цикл
НовыйЭлемент = Форма.Элементы.Добавить(ИмяТЗ + "_" + Колонка.Имя, Тип("ПолеФормы"), Таблица);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = ИмяТЗ + "." + Колонка.Имя;
КонецЦикла;
//переносим таблицу значений на форму
Форма.ЗначениеВРеквизитФормы(ТЗ,ИмяТЗ);
КонецПроцедуры
Показать