|   |   | 
| 
 | Управляемые формы. Таблица значений. Удаление колонки | ☑ | ||
|---|---|---|---|---|
| 0
    
        wylde 02.10.12✎ 16:34 | 
        Есть например такая таблица значений на форме.
  http://s61.radikal.ru/i171/1210/b4/8a363aa53c69.jpg Как программно удалить колонку? Колонки = ТЗ.Колонки - пишет поле объекта не обнаружено (Колонки) | |||
| 1
    
        5 Элемент 02.10.12✎ 16:34 | 
        ИзменитьФорму     | |||
| 2
    
        5 Элемент 02.10.12✎ 16:35 | 
        Элементы.ХХ.Видимость     | |||
| 3
    
        wylde 02.10.12✎ 16:35 | 
        а что изменить то конкретно нужно? С управляемыми формами редко сталкиваюсь.     | |||
| 4
    
        MSII 02.10.12✎ 16:36 | 
        ИзменитьРеквизиты     | |||
| 5
    
        Asmody 02.10.12✎ 16:37 | 
        (0) на форме не бывает таблицы значений. на форме бывает элемент таблица. и ещё может быть реквизит формы типа таблица значений     | |||
| 6
    
        wylde 02.10.12✎ 16:39 | 
        2 5 Элемент: Не, нужно именно удалить колонку, не через видимость     | |||
| 7
    
        5 Элемент 02.10.12✎ 16:39 | 
        см (4)     | |||
| 8
    
        MSII 02.10.12✎ 16:40 | 
        В общем, если нужно изменить состав реквизитов - см. метод УФ ИзменитьРеквизиты
  Если достаточно удалить элемент формы - удаляй его, используя метод Удалить коллекции Элементы УФ. | |||
| 9
    
        Defender aka LINN 02.10.12✎ 16:45 | 
        (8) Заипешься, я гарантирую это.     | |||
| 10
    
        wylde 02.10.12✎ 16:45 | 
        ок, спасибо попробую разобраться.     | |||
| 11
    
        5 Элемент 02.10.12✎ 16:47 | 
        Тебе ТЗ нужна без колонок или форма без колонок?     | |||
| 12
    
        wylde 02.10.12✎ 16:58 | 
        Думаю что проще наверное будет создать обычную таблицу значений на сервере удалить нужные колонки, а потом уже ее выгрузить на клиент на управляемую форму.     | |||
| 13
    
        Defender aka LINN 02.10.12✎ 16:58 | 
        (12) бггггг. Удачи :)     | |||
| 14
    
        IKSparrow 02.10.12✎ 17:37 | 
        (12) Он (13) что-то знает... Я бы прислушался...     | |||
| 15
    
        Pro-tone 02.10.12✎ 17:44 | 
        (0) а для каких целей это надо? 
  (12) Строить типизированную ТЗ на сервере имеет смысл только для каких-нибудь демонически изменяемых расчетов, а если ТЗ нужна только для вывода данных на форму - тогда нарисовать ТЗ на форме с тем кол-вом колонок которые будут использоваться, а ненужные просто скрывать или закрывать доступность, к примеру. | |||
| 16
    
        wylde 02.10.12✎ 18:17 | 
        Спасибо разобрался, в общем вот она рыба моей мечты ))
  Удалять колонки можно только из таблиц которые были созданы программно поэтому создаем программно таблицу с колонками &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ТЗ_Объект = Новый ТаблицаЗначений; ТЗ_Объект.Колонки.Добавить("Кол1", Новый ОписаниеТипов("Строка")); ТЗ_Объект.Колонки.Добавить("Кол2", Новый ОписаниеТипов("Строка")); // Создание Реквизита формы типа ДанныеФормыТЗ МассивДобавляемыхРеквизитов = Новый Массив; МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("ТЗ", Новый ОписаниеТипов("ТаблицаЗначений"))); Для Каждого Колонка Из ТЗ_Объект.Колонки Цикл МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "ТЗ")); КонецЦикла; ИзменитьРеквизиты(МассивДобавляемыхРеквизитов); // Преобразование объекта прикладного типа ТаблицаЗначений // в реквизит управляемой формы (данные формы) ЗначениеВРеквизитФормы(ТЗ_Объект, "ТЗ"); //ЭтаФорма.Элементы.Удалить(ЭлементФормы); // Создание элемента формы типа ТаблицаФормы для отображения ТЗ ЭлементТЗ = Элементы.Добавить("ТЗ", Тип("ТаблицаФормы")); ЭлементТЗ.ПутьКДанным = "ТЗ"; ЭлементТЗ.Отображение = ОтображениеТаблицы.Список; Для Каждого Колонка Из ТЗ_Объект.Колонки Цикл НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"),ЭлементТЗ); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = "ТЗ." + Колонка.Имя; КонецЦикла; КонецПроцедуры а затем уже можно колонки удалять &НаСервере Процедура ОбработатьТЗ() ЭлементФормы = Элементы.Найти("ТЗ"); Если ЭлементФормы <> Неопределено Тогда МассивУдаляемыхРеквизитов = Новый Массив; РеквизитыТЗ = ПолучитьРеквизиты("ТЗ"); //Для Каждого Реквизит Из РеквизитыТЗ Цикл МассивУдаляемыхРеквизитов.Добавить("ТЗ." + "Кол1"); //КонецЦикла; ЭтаФорма.ИзменитьРеквизиты(,МассивУдаляемыхРеквизитов); КонецЕсли; КонецПроцедуры | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |