Имя: Пароль:
1C
1С v8
Заполнение дерева
0 Neznayka_5
 
01.08.12
06:35
Подскажите, можно ли заполнить дерево значений из табличной части?
1 Wobland
 
01.08.12
06:35
разрешаю
2 Neznayka_5
 
01.08.12
06:37
вопрос. как?) пробовала примерно так:

ДеревоМетаданных = Новый ДеревоЗначений;
   Для Каждого Колонка Из ДеревоМетаданных.Колонки Цикл
       НовКолонка = мДеревоМетаданных.Колонки.Добавить(Колонка.Имя,Колонка.ТипЗначения,Колонка.Заголовок,Колонка.Ширина);
   КонецЦикла;
   
   Для Каждого Строка Из ДеревоМетаданных.Строки Цикл
       СтрМетаданных = ТабличнаяЧасть.Строки.Добавить()); //но у табличной части нельзя обращаться к строкам!!
       ЗаполнитьЗначенияСвойств(СтрПечФормы,Строка);
       СтрПечФормы.Имя = Строка.Текст;
       СтрПечФормы.Текст = Строка.Имя;
   КонецЦикла;
3 Рэйв
 
01.08.12
06:39
(0)Если не знаешь как -  помотри в СП. Если СП украли - скачай ЕСИС

//-------------
   Дерево.Колонки.Очистить();
   Дерево.Колонки.Добавить("ИмяКолонки");

   // Создать первую строку. Правильнее сказать создать элемент
   // коллекции. Он помещается в переменную "СтрокаВерхнегоУровня".
   СтрокаВерхнегоУровня = Дерево.Строки.Добавить();

   // В колонку "ИмяКолонки" записать значение "Старшая".
   СтрокаВерхнегоУровня.ИмяКолонки = "Старшая";

   // Создать строку подчиненную "Старшей".
   ПодчиненнаяСтрока =СтрокаВерхнегоУровня.Строки.Добавить();
   ПодчиненнаяСтрока.ИмяКолонки = "Первая подчиненная";

   ПодчиненнаяВторогоУровня = ПодчиненнаяСтрока.Строки.Добавить();
   ПодчиненнаяВторогоУровня.ИмяКолонки = "Первая нижняя";

   ПодчиненнаяВторогоУровня = ПодчиненнаяСтрока.Строки.Добавить();
   ПодчиненнаяВторогоУровня.ИмяКолонки = "Вторая нижняя";

   ПодчиненнаяСтрока = СтрокаВерхнегоУровня.Строки.Добавить();
   ПодчиненнаяСтрока.ИмяКолонки = "Вторая подчиненная";

   // Использование метода позволит увидеть результат работы
   // с деревом значений в табличном поле.
   ЭлементыФормы.Дерево.СоздатьКолонки();

(С)Габец
4 Neznayka_5
 
01.08.12
06:44
(3) это понятно. уже колонки сделала. как заполнить теперь дерево?
5 Рэйв
 
01.08.12
06:46
(4)Перебирай и заполняй.
Посмотри в типовых- там наверняка полно примеров
6 Wobland
 
01.08.12
06:47
(4)
   ДеревоУчетнойПолитики = Новый ДеревоЗначений;
   ДеревоУчетнойПолитики.Колонки.Добавить("Организация");
   ДеревоУчетнойПолитики.Колонки.Добавить("Период");
   ДеревоУчетнойПолитики.Колонки.Добавить("УчетнаяПолитика");
   
   Для каждого Строка Из Результат Цикл
       УчетнаяПолитикаОрганизации = ДеревоУчетнойПолитики.Строки.Найти(Строка.Организация, "Организация");
       Если УчетнаяПолитикаОрганизации = Неопределено Тогда
           УчетнаяПолитикаОрганизации = ДеревоУчетнойПолитики.Строки.Добавить();
           УчетнаяПолитикаОрганизации.Организация = Строка.Организация;
       КонецЕсли;
       ПоПериоду = УчетнаяПолитикаОрганизации.Строки.Добавить();
       ПоПериоду.Период = Строка.Период;
       
       СтруктураУчетнойПолитики = Новый Структура;
       Для Каждого Колонка Из Результат.Колонки Цикл
           СтруктураУчетнойПолитики.Вставить(Колонка.Имя, Строка[Колонка.Имя]);
       КонецЦикла;
       СтруктураУчетнойПолитики.Вставить("УСН",
           СтруктураУчетнойПолитики.СистемаНалогообложения = Перечисления.СистемыНалогообложения.Упрощенная);
           
       ПоПериоду.УчетнаяПолитика = СтруктураУчетнойПолитики;    
       
   КонецЦикла;
7 Neznayka_5
 
01.08.12
07:02
(6) вот снова! У вас написано: Для Каждого Колонка Из Результат.Колонки Цикл.
Если Результат, это таблица значений, то у него выскочит ошибка!
8 Рэйв
 
01.08.12
07:03
(7)С чего бы это?  У тз есть колонки и они именно так перебираются.
9 Рэйв
 
01.08.12
07:04
+(8)Или тогда у тебя не ТЗ, а что то другое.
10 Neznayka_5
 
01.08.12
07:04
табличная часть отчета у меня
11 Neznayka_5
 
01.08.12
07:05
или нужно ее перетащить в тз сначала?
12 Рэйв
 
01.08.12
07:05
(10)Выгрузи ее в ТЗ если тебе так будет морально легче :)
13 Wobland
 
01.08.12
07:13
а ведь нету колонков у ТЧ
14 Рэйв
 
01.08.12
07:14
(13)Ну. у нее реквизиты.  Колонки у Таб поля.
15 Рэйв
 
01.08.12
07:18
(13)Можно и вот так

Для Каждого Кол Из ЭтотОбъект.Метаданные().ТабличныеЧасти.ИмяТЧ.Реквизиты Цикл
   Сообщить("Колонкка "+Кол.Имя);
КонецЦикла;
16 Рэйв
 
01.08.12
07:19
но проще выгрузить в ТЗ