|
Удаление реквизитов, созданных программно |
☑ |
0
r_i_n_i_k
19.09.12
✎
11:10
|
8.2 УП
при формировании отчета программно создаются вкладки и табличные документы в них. При повторном заполнении отчета выпадает ошибка, т.к. создаются вкладки, которые уже созданы..но если вручную закрыть и открыть отчет, то опять отлично заполняется.. Подскажите, как в коде очистить все эти элементы и реквизиты, созданные программно?
|
|
1
Фокусник
19.09.12
✎
11:13
|
(0) Массив. В него при добавлении добавить элементы.
При повторном добавлении либо искать элементы: есть - не добавлять, либо перед повторным добавлением удалить все эти элементы (из массива) с формы
|
|
2
r_i_n_i_k
19.09.12
✎
11:18
|
(1) я создаю программно
* вкладку
* реквизит с типом ТД
* элемент формы, где путь к данным - это реквизит
т.е. это всё добавлять в массив и перед формированием искать элементы этого массива по форме и удалять, если нашли?
|
|
3
Reset
19.09.12
✎
11:23
|
Если КудаВыводить=Неопределено тогда
/// Создать всю эту лабудень
КонецЕсли;
// Выводить в КудаВыводить
|
|
4
r_i_n_i_k
19.09.12
✎
11:32
|
(3)
да, так работает, когда при повторном формировании было создано меньше или столько же вкладок...а как быть с лишщними вкладками? т.е. при первом формировании создало 4 вкладки, а при повторном нужны лишь 2?
|
|
5
Reset
19.09.12
✎
11:46
|
Для ОчереднаяВозможноНужнаяВкладка из КоллекцияОписанийПараметровВкладокНапримерСоотвествиеИлиМассив цикл
Если НужнаВЭтомВарианте(ОчереднаяВозможноНужнаяВкладка.Имя) тогда
Если ОчереднаяВозможноНужнаяВкладка.КудаВыводить=Неопределено тогда
/// Создать всю эту лабудень
КонецЕсли;
/// Выводить в КудаВыводить
Иначе
Если ОчереднаяВозможноНужнаяВкладка.КудаВыводить<>Неопределено тогда
/// Удалить или скрыть вкладку
КонецЕсли;
КонецЕсли;
КонецЦикла;
|
|
6
Reset
19.09.12
✎
11:49
|
или
Для Очередная из КоллекцияОписанийПараметровВкладокНапримерСоотвествиеИлиМассив цикл
Если ОчереднаяВозможноНужнаяВкладка.КудаВыводить<>Неопределено тогда
/// Удалить или скрыть вкладку
КонецЕсли;
КонецЦикла;
Для каждого ОчереднаяНужная из СписокНужных цикл
Если КоллекцияОписанийПараметровВкладокНапримерСоотвествиеИлиМассив[ОчереднаяНужная]=Неопределено тогда
/// Создать всю эту лабудень, запомнить в КоллекцияОписанийПараметровВкладокНапримерСоотвествиеИлиМассив
КонецЕсли;
/// Выводить в КудаВыводить
КонецЦикла;
|
|
7
Reset
19.09.12
✎
11:50
|
Чувствую себя преподавателем на уроке информатики
|
|
8
Reset
19.09.12
✎
11:51
|
или наоборот, студентом (или школьником, информатика в школе вроде)
|
|
9
Фокусник
19.09.12
✎
12:47
|
(2) >т.е. это всё добавлять в массив и перед формированием искать элементы этого массива по форме и удалять, если нашли?
Да, т.е. убиваешь всё, что было созданно программно.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший