|
Выгрузка результата запроса в таблицу формы |
☑ |
0
Kashey
02.12.11
✎
12:22
|
Результат запроса выгружается в ТЗ и передаётся в следующую процедуру
Процедура ДобавитьКолонкиВТЗ(ВремТЗ);
КоллекцияРеквизитов = Новый Массив;
КоллекцияУдаляемыхРеквизитов = Новый Массив;
Для каждого Колонка Из ВремТЗ.Колонки Цикл
НоваяКолонка = Новый РеквизитФормы(Колонка.Имя,Колонка.ТипЗначения,"ТЗ",Колонка.Имя);
КоллекцияРеквизитов.Добавить(НоваяКолонка);
КонецЦикла;
КолонкиТЗ = ПолучитьРеквизиты("ТЗ");
Для каждого Колонка Из КолонкиТЗ Цикл
КоллекцияУдаляемыхРеквизитов.Добавить("ТЗ." + Колонка.Имя);
КонецЦикла;
ЭлементТЗ = Элементы.ТЗ;
ИзменитьРеквизиты(,КоллекцияУдаляемыхРеквизитов);
ИзменитьРеквизиты(КоллекцияРеквизитов);
ЗначениеВРеквизитФормы(ВремТЗ, "ТЗ");
Для Каждого Колонка Из ВремТЗ.Колонки Цикл
НоваяКолонка = Элементы.Добавить(Колонка.Имя,Тип("ПолеФормы"),ЭлементТЗ);
НоваяКолонка.ПутьКДанным = "ТЗ."+Колонка.Имя;
КонецЦикла;
КонецПроцедуры
При первом вызове всё ок. Но при повторном вызове ругается на строчку
Ошибка при вызове метода контекста (Добавить)
НоваяКолонка = Элементы.Добавить (Колонка.Имя,Тип"ПолеФормы"),ЭлементТЗ);
по причине:Недопустимое значение параметров
Что я делаю не так?
|
|
1
catena
02.12.11
✎
12:28
|
А колонки очищаются перед повторным формированием?
|
|
2
Kashey
02.12.11
✎
12:35
|
(1)Если имеются ввиду колонки таблицы формы - то нет.
Хотя пробывал и так
ЭлементТЗ = Элементы.ТЗ;
Если ЭлементТЗ.ПодчиненныеЭлементы.Количество() >0 Тогда
Для каждого Колонка Из ЭлементТЗ.ПодчиненныеЭлементы Цикл
Нужный = Элементы.ТЗ.ПодчиненныеЭлементы.Найти(Колонка.Имя );
Если Нужный <> Неопределено Тогда
Элементы.Удалить(Нужный);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Не помогает
|
|
3
shuhard
02.12.11
✎
12:37
|
(2) тогда зырь отладчиком Элементы.Добавить (Колонка.Имя,Тип"ПолеФормы"),ЭлементТЗ);
может у тебя пробел и цифра первой идёт
|
|
4
Kashey
02.12.11
✎
12:44
|
(3) Дело в том что 1-й раз отрабатывает норм, а вот повторный вызов процедуры с тем же запросом ругается.
|
|
5
shuhard
02.12.11
✎
12:45
|
(4) тогда зырь отладчиком Элементы.Добавить (Колонка.Имя,Тип"ПолеФормы"),ЭлементТЗ);
может у тебя пробел и цифра первой идёт
|
|