Вход | Регистрация
 

Правильное удаление элемента с формы

Правильное удаление элемента с формы
Я
   NIGHTHUNTER
 
23.04.21 - 06:40
Делаю процедуру, которая по установленной галке создает список значения программно на форме.
Если галка снимается, список удаляется. Но вот когда ставишь его повторно идет ошибка,  -
Как правильно удалить, что бы потом создавать снова, при повторных установках галки ?

   Неуникальное имя реквизита. Имя: "СписокДляXLS"
   {ВнешняяОбработка.ПанельЗаготовок_0_20_22.Форма.Форма.Форма(1609)}:        ИзменитьРеквизиты(ДобавляемыеРеквизиты);
   {ВнешняяОбработка.ПанельЗаготовок_0_20_22.Форма.Форма.Форма(1636)}:        СоздатьСписокДляXLS();

   по причине:
   Неуникальное имя реквизита. Имя: "СписокДляXLS"


    СпXLS = Элементы.Найти("СписокДляXLS");
    Если СпXLS = Неопределено Тогда
        ДобавляемыеРеквизиты = Новый Массив;
        ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("СписокДляXLS", Новый ОписаниеТипов("Строка")));
        ИзменитьРеквизиты(ДобавляемыеРеквизиты);
        //
        СписокДляXLS                                              = Элементы.Добавить("СписокДляXLS",  Тип("ПолеФормы"), Элементы.ГруппаОпцииГоризонтальные_2);
        СписокДляXLS.Вид                                           = ВидПоляФормы.ПолеВвода;
        СписокДляXLS.ПутьКДанным                                   = "СписокДляXLS";
        СписокДляXLS.ПоложениеЗаголовка                            = ПоложениеЗаголовкаЭлементаФормы.Нет;
        //
        ЭтаФорма.Элементы.СписокДляXLS.КнопкаОчистки            = Истина;
        ЭтаФорма.Элементы.СписокДляXLS.КнопкаВыпадающегоСписка  = Истина;    
        //
        ЭтаФорма.Элементы.СписокДляXLS.СписокВыбора.Добавить("COMОбъект",         "COMОбъект");    
        ЭтаФорма.Элементы.СписокДляXLS.СписокВыбора.Добавить("ТабличныйДокумент", "ТабличныйДокумент");  
    Иначе
        Элементы.Удалить(СпXLS);
    КонецЕсли;
КонецПроцедуры
//
   ДенисЧ
 
1 - 23.04.21 - 06:41
А азчем удалять-добавлять? Просто видимостью поиграться - не вариант?
   NIGHTHUNTER
 
2 - 23.04.21 - 10:13
(1) Ну так хочу подкопаться. Можно и видимостью. Я рассматриваю все возможные варианты.

Так вот сработало, -
    СпXLS = Элементы.Найти("СписокДляXLS");
    Если СпXLS = Неопределено Тогда 
        ДобавляемыеРеквизиты = Новый Массив;
        ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("СписокДляXLS", Новый ОписаниеТипов("Строка")));
        ИзменитьРеквизиты(ДобавляемыеРеквизиты);
        //

        СписокДляXLS                                              = Элементы.Добавить("СписокДляXLS",  Тип("ПолеФормы"), Элементы.ГруппаОпцииГоризонтальные_2);
        СписокДляXLS.Вид                                           = ВидПоляФормы.ПолеВвода;
        СписокДляXLS.ПутьКДанным                                   = "СписокДляXLS";
        СписокДляXLS.ПоложениеЗаголовка                            = ПоложениеЗаголовкаЭлементаФормы.Нет;
        //

        ЭтаФорма.Элементы.СписокДляXLS.КнопкаОчистки            = Истина;
        ЭтаФорма.Элементы.СписокДляXLS.КнопкаВыпадающегоСписка  = Истина;    
        //

        ЭтаФорма.Элементы.СписокДляXLS.СписокВыбора.Добавить("COMОбъект",         "COMОбъект");    
        ЭтаФорма.Элементы.СписокДляXLS.СписокВыбора.Добавить("ТабличныйДокумент", "ТабличныйДокумент");  
    Иначе
        УдаляемыеРеквизитыТЗ = Новый Массив;
        УдаляемыеРеквизитыТЗ.Добавить("СписокДляXLS");
        Элементы.Удалить(СпXLS);  
        ИзменитьРеквизиты(, УдаляемыеРеквизитыТЗ);  
    КонецЕсли;
КонецПроцедуры

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.