|
Дерево значений. | ☑ | ||
---|---|---|---|---|
0
antihacker
24.12.18
✎
12:47
|
Всем привет !
Вот код. тДерево = РеквизитФормыВЗначение("ДЗ_РезАнализа"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Бюджеты.Ссылка КАК ДатаАнализа //| Бюджеты.Ссылка КАК Колонка2 |ИЗ | Справочник.Бюджеты КАК Бюджеты |УПОРЯДОЧИТЬ ПО | ДатаАнализа ИЕРАРХИЯ"; Выгрузка = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Выгрузка1 = Запрос.Выполнить().Выгрузить(); тДерево = Выгрузка; ЗначениеВРеквизитФормы(тДерево, "ДЗ_РезАнализа"); Все работает без ошибок. Но почему то не вижу результаты. А если добавить колонкий в ручную, то вижу результаты. Но так не могу, так колонки в дерево значений добавляются динамический. |
|||
1
antihacker
24.12.18
✎
13:14
|
Или как удалить все колонки дерево значений ?
|
|||
2
antihacker
24.12.18
✎
13:47
|
Аууу не уж то ни кто не знает ?
|
|||
3
Волшебник
24.12.18
✎
13:49
|
(2) пишется "неужто" и "никто"
|
|||
4
SeriyP
24.12.18
✎
13:53
|
(0) СоздатьКолонки?
|
|||
5
antihacker
24.12.18
✎
13:59
|
Колонка создается без проблем.
// 1. получаем дерево как програмный объект ДеревоОбъект = РеквизитФормыВЗначение("ДЗ_РезАнализа"); // 2. добавляем колонку ДеревоОбъект.Колонки.Добавить("ДатаАнализа", Новый ОписаниеТипов("Строка")); // 3. создаем РЕКВИЗИТ КОЛОНКИ (невидимая часть, справа в редакторе форм) МассивДобавляемыхРеквизитов = Новый Массив; // реквизит принадлежит дереву МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("ДатаАнализа", Новый ОписаниеТипов("СправочникСсылка.Бюджеты"), "ДЗ_РезАнализа")); // добавляем реквизит в форму (невидимая часть, справа в редакторе форм) ИзменитьРеквизиты(МассивДобавляемыхРеквизитов); // 4. заполняем дерево (реквизит формы) занчением ЗначениеВРеквизитФормы(ДеревоОбъект, "ДЗ_РезАнализа"); // 5. добавляем НА ФОРМУ (видимая часть, слева в редакторе форм) // назовем ДеревоУзел, принадлежит элементу дерева, связан с добавленной колонкой «Узел» НовыйЭлемент = Элементы.Добавить("ДеревоУзел", Тип("ПолеФормы"), Элементы.ДЗ_РезАнализа); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = "ДЗ_РезАнализа.ДатаАнализа"; Но потом нужно будет удалить все колонки и добавить новые динамические колонки. По этому спрашивал. хотя бы как можно удалить все колонки ? |
|||
6
antihacker
24.12.18
✎
14:53
|
Мдааааа.
|
|||
7
antihacker
24.12.18
✎
15:40
|
Пробовал вот так.
Ошибку не выдает, но и не удалеят ДеревоОбъект1 = РеквизитФормыВЗначение("ДЗ_РезАнализа"); // 3. создаем РЕКВИЗИТ КОЛОНКИ (невидимая часть, справа в редакторе форм) МассивУдаляемыхРеквизитов = Новый Массив; // реквизит принадлежит дереву Для каждого текколонка Из ДеревоОбъект1.Колонки Цикл МассивУдаляемыхРеквизитов.Добавить("ДЗ_РезАнализа." +текколонка.имя); КонецЦикла; ////ДеревоОбъект.Строки.Очистить(); попытка ИзменитьРеквизиты(,МассивУдаляемыхРеквизитов); исключение сообщить(Описаниеошибки()); конецпопытки; ЗначениеВРеквизитФормы(ДеревоОбъект1, "ДЗ_РезАнализа"); |
|||
8
antihacker
25.12.18
✎
07:14
|
// 1. получаем дерево как програмный объект
ДеревоОбъект1 = РеквизитФормыВЗначение("ДЗ_РезАнализа"); // 3. создаем РЕКВИЗИТ КОЛОНКИ (невидимая часть, справа в редакторе форм) МассивУдаляемыхРеквизитов = Новый Массив; // реквизит принадлежит дереву Для каждого текколонка Из ДеревоОбъект1.Колонки Цикл МассивУдаляемыхРеквизитов.Добавить("ДЗ_РезАнализа." +текколонка.имя); КонецЦикла; попытка ИзменитьРеквизиты(,МассивУдаляемыхРеквизитов); исключение сообщить(Описаниеошибки()); конецпопытки; ЗначениеВРеквизитФормы(ДеревоОбъект1, "ДЗ_РезАнализа"); Элементы.ДЗ_РезАнализа.Обновить(); // 1. получаем дерево как програмный объект ДеревоОбъект = РеквизитФормыВЗначение("ДЗ_РезАнализа"); // 2. добавляем колонку ДеревоОбъект.Колонки.Добавить("ДатаАнализа", Новый ОписаниеТипов("Строка")); // 3. создаем РЕКВИЗИТ КОЛОНКИ (невидимая часть, справа в редакторе форм) МассивДобавляемыхРеквизитов = Новый Массив; // реквизит принадлежит дереву МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("ДатаАнализа", Новый ОписаниеТипов("СправочникСсылка.Бюджеты"), "ДЗ_РезАнализа")); // добавляем реквизит в форму (невидимая часть, справа в редакторе форм) ИзменитьРеквизиты(МассивДобавляемыхРеквизитов); // 4. заполняем дерево (реквизит формы) занчением ЗначениеВРеквизитФормы(ДеревоОбъект, "ДЗ_РезАнализа"); // 5. добавляем НА ФОРМУ (видимая часть, слева в редакторе форм) // назовем ДеревоУзел, принадлежит элементу дерева, связан с добавленной колонкой «Узел» НовыйЭлемент = Элементы.Добавить("ДеревоУзел", Тип("ПолеФормы"), Элементы.ДЗ_РезАнализа); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = "ДЗ_РезАнализа.ДатаАнализа"; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Бюджеты.Ссылка КАК ДатаАнализа //| Бюджеты.Ссылка КАК Колонка2 |ИЗ | Справочник.Бюджеты КАК Бюджеты |УПОРЯДОЧИТЬ ПО | ДатаАнализа ИЕРАРХИЯ"; тДерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); ЗначениеВРеквизитФормы(тДерево, "ДЗ_РезАнализа"); для каждого текзнч из тДерево.Строки Цикл сообщить(текзнч.ДатаАнализа); конеццикла; Вот так работает. Здесь ДеревоОбъект1 = РеквизитФормыВЗначение("ДЗ_РезАнализа"); // 3. создаем РЕКВИЗИТ КОЛОНКИ (невидимая часть, справа в редакторе форм) МассивУдаляемыхРеквизитов = Новый Массив; // реквизит принадлежит дереву Для каждого текколонка Из ДеревоОбъект1.Колонки Цикл МассивУдаляемыхРеквизитов.Добавить("ДЗ_РезАнализа." +текколонка.имя); КонецЦикла; попытка ИзменитьРеквизиты(,МассивУдаляемыхРеквизитов); исключение сообщить(Описаниеошибки()); конецпопытки; Удаляю реквизиты колонок. Но теперь при повторном нажатие ругаться на это НовыйЭлемент = Элементы.Добавить("ДеревоУзел", Тип("ПолеФормы"), Элементы.ДЗ_РезАнализа); Оно и понятно. Реквизит удалить то я удалил, но элемент на форме не удалил. Как удалить ? Не получается. |
|||
9
antihacker
25.12.18
✎
08:47
|
Тема закрыта.
Решил вот так. КолЭлемент = Элементы.ФДЗ_РезАнализа.ПодчиненныеЭлементы.Количество(); Если КолЭлемент > 0 Тогда МассивУдаления = Новый Массив; МассивПоля = Новый Массив; Для Каждого УдаляемыйЭлемент Из Элементы.ФДЗ_РезАнализа.ПодчиненныеЭлементы Цикл ЭлементУдаления = УдаляемыйЭлемент.ПутьКДанным; ПолеУдаляемогоЭлемента = Элементы.ФДЗ_РезАнализа.ПодчиненныеЭлементы.Найти(УдаляемыйЭлемент.ПутьКДанным); МассивПоля.Добавить(УдаляемыйЭлемент); МассивУдаления.Добавить(ЭлементУдаления); КонецЦикла; Для Каждого Стр Из Массивполя Цикл Элементы.Удалить(Стр); КонецЦикла; ИзменитьРеквизиты(,МассивУдаления); МассивУдаления.Очистить(); //СписокРеквизитов.Очистить(); КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |