Имя: Пароль:
1C
1С v8
Динамический список на форме в виде дерева
0 zerat
 
27.06.16
13:59
Всем привет! Создаю общую произвольную форму, на которой хочу разместить документы в виде иерархического списка. У документа есть табличная часть. Хочется чтобы первая строка была Ссылка на документ, вторая строка перечислялось все что есть в табличной части документа.  Динамический список нужен для того чтобы данные обновлялись.
1 vde69
 
27.06.16
14:01
никогда не делайте динамический список в виде дерева - будуи страшные тормоза
2 zerat
 
27.06.16
14:02
(1) как быть подскажите?
3 Chameleon1980
 
27.06.16
14:03
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Создание и заполнение "обычного" объекта прикладного типа ДеревоЗначений,
    // который будет отображен на управляемой форме
    ДеревоОбъект = Новый ДеревоЗначений;
    ДеревоОбъект.Колонки.Добавить("Узел", Новый ОписаниеТипов("Строка"));
    Для к1 = 1 По 5 Цикл
        СтрокаУ1 = ДеревоОбъект.Строки.Добавить();
        СтрокаУ1.Узел = "Узел"+к1;
        Для к2 = 1 По 5 Цикл
            СтрокаУ2 = СтрокаУ1.Строки.Добавить();
            СтрокаУ2.Узел = СтрокаУ1.Узел+к2;
            Для к3 = 1 По 5 Цикл
                СтрокаУ3 = СтрокаУ2.Строки.Добавить();
                СтрокаУ3.Узел = СтрокаУ2.Узел+к3;
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;

    // Создание Реквизита формы типа ДанныеФормыДерево
    МассивДобавляемыхРеквизитов = Новый Массив;
    МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Дерево",
        Новый ОписаниеТипов("ДеревоЗначений")));
    Для Каждого Колонка Из ДеревоОбъект.Колонки Цикл
        МассивДобавляемыхРеквизитов.Добавить(
           Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "Дерево"));
    КонецЦикла;
    ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);

    // Преобразование объекта прикладного типа ДеревоЗначений
    // в реквизит управляемой формы (данные формы)
    ЗначениеВРеквизитФормы(ДеревоОбъект, "Дерево");

    // Создание элемента формы типа ТаблицаФормы для отображения дерева
    ЭлементДерево = Элементы.Добавить("Дерево", Тип("ТаблицаФормы"));
    ЭлементДерево.ПутьКДанным = "Дерево";
    ЭлементДерево.Отображение = ОтображениеТаблицы.Дерево;

    Для Каждого Колонка Из ДеревоОбъект.Колонки Цикл
        НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"),
            ЭлементДерево);
        НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
        НовыйЭлемент.ПутьКДанным = "Дерево." + Колонка.Имя;
    КонецЦикла;
КонецПроцедуры
4 vde69
 
27.06.16
14:03
либо статические данные и дерево, либо динамические и список...
5 vde69
 
27.06.16
14:03
(3) это статическое дерево...
6 zerat
 
27.06.16
14:04
(3) только если его динамически обновлять...
7 Chameleon1980
 
27.06.16
14:04
(5) ну да - пардон. Смысл темы немного упустил.
8 vde69
 
27.06.16
14:05
(6) вот и будут тормоза...
9 Chameleon1980
 
27.06.16
14:12
отчет с группировками с выбором периода с кнопкой обновить
10 zerat
 
27.06.16
14:12
(8) емаё
11 Chameleon1980
 
27.06.16
14:14
(10) ну вообще пробуйте.
нарисуйте свою форму с ДС (со своим запросом). покрутите - может вас и устроит скорость.
12 zerat
 
27.06.16
14:15
(11) пример есть запроса для отображения ДС в виде дерева?
13 zerat
 
27.06.16
14:15
напримере допустим документа реализация товаров и услуг
14 vde69
 
27.06.16
14:19
сколько всего элементов в дереве? если 100 - можно делать штатным вариантом, а если более 500 - будут тормоза...
15 Chameleon1980
 
27.06.16
14:20
(14) штатным по номенклатуре нет жеж
16 Посмотрим
 
27.06.16
14:22
Зачем дерево, когда можно в два списка - один документы, второй состав документа
17 Посмотрим
 
27.06.16
14:24
Так и удобнее, иначе для документов в 100 строк или более навигация будет неудобной, а так две таблицы + разделитель для регулировки площади отображения той или иной таблицы
18 Chameleon1980
 
27.06.16
14:27
(16) +++
19 zerat
 
27.06.16
15:27
(16) так и решил делать, заказчику объясню, что будут лаги