Здравствуйте. На таблице динамически создаю ТЗ

```1c
    //**
    Реквизиты = Новый Массив;
    //
    Реквизиты.Добавить(Новый РеквизитФормы("ТаблицаНаФорме", Новый ОписаниеТипов("ТаблицаЗначений")));
    //
    Для Каждого Ст ИЗ Таблица.Колонки Цикл
    //
    Реквизиты.Добавить(Новый РеквизитФормы(Ст.Имя, Ст.ТипЗначения, "ТаблицаНаФорме"));
    //
    КонецЦикла;
    //
    //Добавим Реквизиты на форму
    ИзменитьРеквизиты(Реквизиты);
    //
    //Добавим элементы формы
    Таб = Элементы.Добавить("ТаблицаНаФорме", тип("ТаблицаФормы"));
    Таб.ПутьКДанным = "ТаблицаНаформе";
    //
    //запретим менять положение строк и сами строки, отключим командную панель
    //
    Таб.ИзменятьСоставСтрок = Ложь;
    Таб.ИзменятьПорядокСтрок = Ложь;
    Таб.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
    //
    Для Каждого СТ ИЗ Таблица.Колонки Цикл
    //
    Рек = Элементы.Добавить("Колонка" + Ст.Имя, Тип("ПолеФормы"), Таб);
    //
    Рек.Вид = ВидПоляФормы.ПолеНадписи;
    Рек.ПутьКДанным = "ТаблицаНаФорме" + "." + Ст.Имя;
    Рек.Заголовок = Ст.Имя;
    КонецЦикла;
    //
    //Заполним Таблицу
    ЗначениеВРеквизитФормы(Таблица,"ТаблицаНаФорме");
```

Очищаю перед выбором, другова файла

```1c
    //
    Таблица = РеквизитФормыВЗначение("ТаблицаНаФорме");
    РеквизитыБулево = Новый Массив;
    Реквизиты = Новый Массив;
    Для Каждого Колонка ИЗ Таблица.Колонки Цикл
    //
    Реквизиты.Добавить("ТаблицаНаФорме." + Колонка.Имя);
    //
    КонецЦикла;
    //
    ИзменитьРеквизиты( ,Реквизиты);

    //Теперьудаляем таблицу с формы
    ЭлементТаблица = Элементы.Найти("ТаблицаНаФорме");
    Если ЭлементТаблица <> "ТаблицаНаФорме" Тогда
    //
    Элементы.Удалить(ЭлементТаблица);
    //
    КонецЕсли;
    Реквизиты.Очистить();
```

Визуально все очищенно. Но при загрузки нового файла выдает ошибку

{ВнешняяОбработка.ЗагрузкаВITIL.Форма.Форма.Форма(196)}: Ошибка при вызове метода контекста (ИзменитьРеквизиты)
 ИзменитьРеквизиты(Реквизиты);
по причине:
Неуникальное имя реквизита. Имя: "ТаблицаНаФорме"
---
Разве это не оно?
Реквизиты формы и элементы формы - это немного разные вещи.

Ты удалил элемент но не удалил реквизит.

смотри
вот ты добавляешь реквизиты

```1c
    Реквизиты = Новый Массив;
    //
    Реквизиты.Добавить(Новый РеквизитФормы("ТаблицаНаФорме", Новый ОписаниеТипов("ТаблицаЗначений"))); ///Вот реквизит таблица на форме
    //
    Для Каждого Ст ИЗ Таблица.Колонки Цикл
    //
    Реквизиты.Добавить(Новый РеквизитФормы(Ст.Имя, Ст.ТипЗначения, "ТаблицаНаФорме")); //А вот добавляешь еще реквизиты - колонки.
    //
    КонецЦикла;
    //
    //Добавим Реквизиты на форму
    ИзменитьРеквизиты(Реквизиты);
```

далее ты создаешь элементы формы, и связываешь их с созданными реквизитами.

потом удаление

```1c
    Реквизиты = Новый Массив;
    Для Каждого Колонка ИЗ Таблица.Колонки Цикл
    //
    Реквизиты.Добавить("ТаблицаНаФорме." + Колонка.Имя); //Добавляешь реквизиты, колонки
    //
    КонецЦикла;
    //
    .....ИВСЕ ! А где реквизит ТаблицаНаФорме ?
    ИзменитьРеквизиты( ,Реквизиты);
```

В итоге таблица на форме, у тебя остался.
А ты пытаешься по новой его создать..естественно ошибка
---
ты удаляешь только реквизиты колонок таблицы на форме, но сама таблица на форме остается.
Ее тоже надо удалить.
---
Разве это не оно?

```1c
    Если ЭлементТаблица <> Неопределено Тогда
    //
    Элементы.Удалить(ЭлементТаблица);
    //
    КонецЕсли;
```
---
Разве это не оно?
Реквизиты формы и элементы формы - это немного разные вещи.

Ты удалил элемент но не удалил реквизит.

смотри
вот ты добавляешь реквизиты

```1c
    Реквизиты = Новый Массив;
    //
    Реквизиты.Добавить(Новый РеквизитФормы("ТаблицаНаФорме", Новый ОписаниеТипов("ТаблицаЗначений"))); ///Вот реквизит таблица на форме
    //
    Для Каждого Ст ИЗ Таблица.Колонки Цикл
    //
    Реквизиты.Добавить(Новый РеквизитФормы(Ст.Имя, Ст.ТипЗначения, "ТаблицаНаФорме")); //А вот добавляешь еще реквизиты - колонки.
    //
    КонецЦикла;
    //
    //Добавим Реквизиты на форму
    ИзменитьРеквизиты(Реквизиты);
```

далее ты создаешь элементы формы, и связываешь их с созданными реквизитами.

потом удаление

```1c
    Реквизиты = Новый Массив;
    Для Каждого Колонка ИЗ Таблица.Колонки Цикл
    //
    Реквизиты.Добавить("ТаблицаНаФорме." + Колонка.Имя); //Добавляешь реквизиты, колонки
    //
    КонецЦикла;
    //
    .....ИВСЕ ! А где реквизит ТаблицаНаФорме ?
    ИзменитьРеквизиты( ,Реквизиты);
```

В итоге таблица на форме, у тебя остался.
А ты пытаешься по новой его создать..естественно ошибка
---
Извините пожалуйста немного не понял, ошибка при создании или при очистки?
---
Если ЭлементТаблица <> "ТаблицаНаФорме" Тогда
        //
        Элементы.Удалить(ЭлементТаблица);
        //
    КонецЕсли;

```1c
    Если ЭлементТаблица <> Неопределено Тогда
    //
    Элементы.Удалить(ЭлементТаблица);
    //
    КонецЕсли;
```

Может так?
---
После очистки выглядит так, но ошибка все ровно
{ВнешняяОбработка.ЗагрузкаВITIL.Форма.Форма.Форма(196)}: Ошибка при вызове метода контекста (ИзменитьРеквизиты)
 ИзменитьРеквизиты(Реквизиты);
по причине:
Неуникальное имя реквизита. Имя: "ТаблицаНаФорме"
---
```1c
    Рекв = Новый Массив;
    Рекв.Добавить("ТаблицаНаФорме");
    ИзменитьРеквизиты(,Рекв);
```