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