|
УФ. Вывод произвольной ТЗ на форму | ☑ | ||
---|---|---|---|---|
0
mzelensky
20.01.15
✎
09:12
|
Доброго всем! Помогите разобраться, а то видать туплю
Управляемая форма. НА форме в реквизитах есть таблица значений "ТЗ_Ф". Колонок у этой ТЗ нет. Задача - программно сформировать произвольную ТЗ (на сервере) и вывести ее в эту самую "ТЗ_Ф" на форме Вроде как делаю по аналогии с этим: v8: СКД 8.2: программный вывод в дерево значений на форме v8: Управляемые формы. Таблица значений. Удаление колонки |
|||
1
mzelensky
20.01.15
✎
09:13
|
Как делаю:
ТЗ = Новый ТаблицаЗначений; МассивДобавляемыхРеквизитов = Новый Массив; // Создание Реквизита формы типа ДанныеФормыТЗ МассивУдаляемыхРеквизитов = Новый Массив; Для Счетчик = 1 По ВсегоКолонок Цикл ТЗ.Колонки.Добавить("Колонка"+Счетчик, Новый ОписаниеТипов("Строка")); КонецЦикла; Для Счетчик =1 По ВсегоСтрок Цикл НоваяСтрока = ТЗ.Добавить(); КонецЦикла; Для Счетчик = 0 По ВсегоКолонок-1 Цикл ТЗ.ЗагрузитьКолонку(Данные[Счетчик], Счетчик); Если Элементы.Найти("ТЗ_" + "Колонка"+Строка(Счетчик +1)) = Неопределено Тогда МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("ТЗ_Колонка"+Строка(Счетчик +1), Новый ОписаниеТипов("Строка"), "ТЗ_Ф")); //МассивУдаляемыхРеквизитов.Добавить("Колонка"+Строка(Счетчик +1)); КонецЕсли; КонецЦикла; ИзменитьРеквизиты(МассивДобавляемыхРеквизитов, МассивУдаляемыхРеквизитов); ЗначениеВРеквизитФормы(ТЗ, "ТЗ_Ф"); |
|||
2
mzelensky
20.01.15
✎
09:14
|
В результате получаю ошибку на "ЗначениеВРеквизитФормы(ТЗ, "ТЗ_Ф");" с описанием
{Форма.ФормаОбработки.Форма(95)}: Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы) ЗначениеВРеквизитФормы(ТЗ, "ТЗ_Ф"); по причине: Недопустимое значение параметра (параметр номер '2') |
|||
3
mzelensky
20.01.15
✎
09:15
|
ГДЕ ТУПЛЮ?
|
|||
4
НЕА123
20.01.15
✎
09:23
|
Массив = Новый Массив;
МассивУдаляемыхКолонокТЗ = Новый Массив; Для Каждого Эл Из Элементы.ТЗ_Ф.ПодчиненныеЭлементы Цикл МассивУдаляемыхКолонокТЗ.Добавить(Эл); КонецЦикла; Для Каждого Эл Из МассивУдаляемыхКолонокТЗ Цикл Элементы.Удалить(Эл); КонецЦикла; |
|||
5
mzelensky
20.01.15
✎
09:25
|
(4) Это в какое место нужно?
|
|||
6
НЕА123
20.01.15
✎
09:28
|
(5)
это надо до того... суть в том, что надо убрать связь с несуществующими колонками. |
|||
7
mzelensky
20.01.15
✎
09:30
|
(6) Дело в том, что ошибка выходит в самом начале создания. Т.е. по сути удалять нечего - колонок там нет
|
|||
8
НЕА123
20.01.15
✎
09:31
|
(6)+
в (0) МассивУдаляемыхРеквизитов просто забыл заполнить. |
|||
9
mzelensky
20.01.15
✎
09:33
|
(8) Так нечего же удалять. Нет колонок еще в ТЗ.
При повторной загрузке понятно, что нужно старые удалить, но ошибка выходит приПЕРВОЙ обработке, когда ТЗ на форме пустая вообще - ни строк ни колонок НЕТ |
|||
10
НЕА123
20.01.15
✎
09:35
|
(7)
у меня еще вот делается до ЗначениеВРеквизитФормы(ТЗ, "ТЗ_Ф"); Для Каждого Реквизит Из МассивДобавляемыхРеквизитов Цикл Эл = Элементы.Добавить(Реквизит.Имя, Тип("ПолеФормы"), Элементы.ТЗ_Ф); Эл.вид = ВидПоляФормы.ПолеВвода; Эл.доступныеТипы = Новый ОписаниеТипов(Колонка.ТипЗначения); Эл.ПутьКДанным = "ТЗ_Ф."+Эл.Имя; Эл.Формат = "ЧГ=0"; КонецЦикла; |
|||
11
Deon
20.01.15
✎
09:37
|
а реквизит тоже ТЗ_Ф называется?
|
|||
12
Лефмихалыч
20.01.15
✎
09:38
|
если ЗначениеВРеквизитФормы говорит это, значит реквизита формы "ТЗ_Ф" не существует или он не таблица значений
|
|||
13
НЕА123
20.01.15
✎
09:38
|
(10)+
может это и не то. но у меня работает. |
|||
14
Лефмихалыч
20.01.15
✎
09:39
|
+(12) если таки существует, значит всё закрой, продуй кэш, и открывай заново
|
|||
15
mzelensky
20.01.15
✎
09:44
|
(11) Реквизит формы называется "ТЗ_Ф" и элемент формы называется "ТЗ_Ф" (он на форме уже есть. Соответственно колнок у него нет)
|
|||
16
mzelensky
20.01.15
✎
09:44
|
(10) Это ты элемент формы таблицы значения создаешь программно. У меня он на форме уже лежит
|
|||
17
Deon
20.01.15
✎
09:49
|
Отладчик показывает одинаковые колонки в источнике и приемнике?
|
|||
18
mzelensky
20.01.15
✎
10:04
|
Забавно. Сделал вот так:
Для Счетчик = 0 По ВсегоКолонок-1 Цикл ТЗ.ЗагрузитьКолонку(Данные[Счетчик], Счетчик); КонецЦикла; Для Каждого Колонка Из ТЗ.Колонки Цикл МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "ТЗ_Ф")); КонецЦикла; Ошибка ушла |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |