|
Управляемые формы. Таблица значений. Удаление колонки | ☑ | ||
---|---|---|---|---|
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"); //КонецЦикла; ЭтаФорма.ИзменитьРеквизиты(,МассивУдаляемыхРеквизитов); КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |