1. ness 13.02.14 12:49 Сейчас в теме

Свернуть / Развернуть дерево значений

Долго бегал в поисковик мучался искал как свернуть / развернуть дерево значений программно, безрезультатно. В итоге в который раз убедился, что Отладчик + Синтаксис-помощник рулят. Результаты моих поисков:

//Свернуть все выделенные строки дерева
Для каждого Строка Из ЭлеменетыФормы.ТабличноеПоле.ВыделенныеСтроки Цикл
ЭлементыФормы.ДеревоЗначений.Развернуть(Строка);
КонецЦикла;

//Развернуть все строки дерева
Для каждого Строка Из ЭлеменетыФормы.ДеревоЗначений.Значение.Строки Цикл
ЭлементыФормы.ДеревоЗначений.Свернуть(Строка);
КонецЦикла;
sapervodichka; Pe3HuK_AJIeKc; mailrum2004; wokituk; matveev.andrey.v; FeliceYa; monkbest; marku; rokhin; +9 Ответить
Ответы
Избранное Подписка Сортировка: Древо
2. Rothschild 13.02.14 16:04 Сейчас в теме
(1) ness, ну молодец!!!
а вопрос то в чем, где это в мануале лежит ???
3. Rothschild 13.02.14 16:08 Сейчас в теме
(2)
пути в синтакс помошнике:

для 8.1: Интерфейсные объекты \ Элементы управления \ Табличное поле \ ТабличноеПоле \ Методы
для 8.2: Интерфейс (обычный) \ Элементы управления \ Табличное поле \ ТабличноеПоле \ Методы


ТабличноеПоле (TableBox)
Развернуть (Expand)
Синтаксис:
Развернуть(<Строка>, <С подчиненными>)

Параметры:
<Строка> (обязательный)
Строка табличного поля. Тип значения строки табличного поля приведен в описаниях расширений табличного поля у соответствующих объектов.
<С подчиненными> (необязательный)
Тип: Булево. Определяет необходимость раскрытия подчиненных узлов. Истина - раскрывать подчиненные узлы, Ложь - не раскрывать подчиненные узлы.
Значение по умолчанию: Ложь
Описание:
Разворачивает узел в указанной строке дерева.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Примечание:
Используется в случае, если с табличным полем связано дерево значений или список справочника в виде дерева.
Показать


ТабличноеПоле (TableBox)
Свернуть (Collapse)
Синтаксис:
Свернуть(<Строка>)

Параметры:
<Строка> (обязательный)
Строка табличного поля. Тип значения строки табличного поля приведен в описаниях расширений табличного поля у соответствующих объектов.
Описание:
Сворачивает узел в указанной строке дерева.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Примечание:
Используется в случае, если с табличным полем связано дерево значений или список справочника в виде дерева.
Показать
4. Rothschild 13.02.14 16:16 Сейчас в теме
(3)
ну еще есть аналогичный путь для управляемых форм:
для 8.2: Интерфейс (управляемый) \ Таблица формы \ ТаблицаФормы \ Методы

ЗЫ:
еще один полезный метод из той же серии:

ТаблицаФормы (FormTable)
Развернут (Expanded)

Синтаксис:

Развернут(<Строка>)
Параметры:

<Строка> (обязательный)

Тип: Произвольный.
Идентификатор строки таблицы.
Возвращаемое значение:

Тип: Булево.

Описание:

Определяет, развернут ли узел дерева в указанной строке.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.
Показать
6. nporrep 46 29.12.14 11:33 Сейчас в теме
(1) ness, не Элеменеты, а Элементы, нуб
17. romankoav 24.10.18 13:06 Сейчас в теме
комментарии то поменяйте местами
5. ness 13.02.14 18:34 Сейчас в теме
А это не вопрос, это чтобы поисковик проиндексировал и какой нибудь нуб если столкнется с той же проблемой, мог без проблем ее решить.

З.Ы. Спасибо что дополнил пост.
Daynestro07; Olenevod; pm74; Sanz; +4 Ответить
7. hexus 3 29.12.14 12:01 Сейчас в теме
Вообще-то у элеменат формы с деревом есть свойство как его отображать.
Не проще ли было написать
ЭлементыФормы.Дерево.НачальноеОтображениеДерева = НачальноеОтображениеДерева.РаскрыватьВсеУровни;
German_Tagil; config; EMelihoff; ya.Avoronov; psa247; pbahushevich; kivals; UniversaLL; colci; rokhin; +10 Ответить
12. pbahushevich 30.04.16 22:47 Сейчас в теме
(7) hexus, О спасибо тебе мудрый человек!!!!
13. German_Tagil 6 21.12.16 13:49 Сейчас в теме
(7) hexus, Работает на обычных формах
8. renmy 83 09.02.15 16:59 Сейчас в теме
НачальноеОтображениеДерева не сработало.

Я сделал так:

&НаКлиенте
Процедура РазвернутьДерево(Команда)
	
	ЭлементыДерева = ДеревоТоваров.ПолучитьЭлементы();
	Для каждого ЭлементДерева Из ЭлементыДерева Цикл
		Элементы.ДеревоТоваров.Развернуть(ЭлементДерева.ПолучитьИдентификатор());
	КонецЦикла;
		
КонецПроцедуры

&НаКлиенте
Процедура СвернутьДерево(Команда)
	
	ЭлементыДерева = ДеревоТоваров.ПолучитьЭлементы();
	Для каждого ЭлементДерева Из ЭлементыДерева Цикл
		Элементы.ДеревоТоваров.Свернуть(ЭлементДерева.ПолучитьИдентификатор());
	КонецЦикла;
	
КонецПроцедуры
Показать
steelmorgan; Daynestro07; johny1987; Andreyyy; Uncore; BalalaykaJazz; Anchoret; pm74; director04; colci; AntonS; +11 Ответить
9. Nuuq 69 24.07.15 15:58 Сейчас в теме
УФ дерево Развернуть

&НаКлиенте
Процедура КомандаТаблицаДанныхРазвернутьВсе(Команда)
	
	РазвернутьВсеДерево(ТаблицаДанных.ПолучитьЭлементы());	
	
КонецПроцедуры

&НаКлиенте
Процедура РазвернутьВсеДерево(КоллекцияЭлементов) 
	
	Для каждого ЭлементКоллекции Из КоллекцияЭлементов Цикл
		Элементы.ТаблицаДанных.Развернуть(ЭлементКоллекции.ПолучитьИдентификатор());
		
		ВложенныеЭлементыКоллекции = ЭлементКоллекции.ПолучитьЭлементы();
		Если (ВложенныеЭлементыКоллекции.Количество() > 0) Тогда
			РазвернутьВсеДерево(ВложенныеЭлементыКоллекции);
		Иначе
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры
Показать


УФ дерево Свернуть

&НаКлиенте
Процедура КомандаТаблицаДанныхСвернутьВсе(Команда)
	
	СвернутьВсеДерево(ТаблицаДанных.ПолучитьЭлементы());	
	
КонецПроцедуры

&НаКлиенте
Процедура СвернутьВсеДерево(КоллекцияЭлементов) 
	
	Для каждого ЭлементКоллекции Из КоллекцияЭлементов Цикл
		ВложенныеЭлементыКоллекции = ЭлементКоллекции.ПолучитьЭлементы();
		Если (ВложенныеЭлементыКоллекции.Количество() > 0) Тогда
			СвернутьВсеДерево(ВложенныеЭлементыКоллекции);
		Иначе
			Прервать;
		КонецЕсли;
		
		Элементы.ТаблицаДанных.Свернуть(ЭлементКоллекции.ПолучитьИдентификатор());
	КонецЦикла;
	
КонецПроцедуры
Показать


Предлагаю как-то развивать тему еще XD
Daynestro07; e.a.afanasyev; myoker; IDija; +4 Ответить
10. monkbest 101 03.11.15 09:10 Сейчас в теме
Неть, рекурсия не нужнА. У метода развернуть второй параметр делаем = ИСТИНА, что означает развернуть с подчиненными.
kuzyara; IDija; +2 Ответить
11. dtripleh 15.01.16 08:32 Сейчас в теме
В новой платформе можно развернуть все уровни дерева, указав в свойстве таблицы НачальноеОтображениеДерева - раскрыть все уровни
kuzyara; suggestive; pbahushevich; +3 Ответить
14. Fil15 02.10.17 15:30 Сейчас в теме
А дня обычных форм есть как свернуть/развернуть дерево по заданному уровню?
15. user868076 23.11.17 15:41 Сейчас в теме
При входе на сервер с рабочего стола исчезает значок "свернуть". Как настроить?
16. vasilievil 57 12.05.18 22:42 Сейчас в теме
&НаКлиенте
Процедура РазвернутьВсеДерево(Команда)
   Элементы.Дерево.Развернуть(0,Истина);    
КонецПроцедуры
Annette-326523; +1 Ответить
18. tireal 72 28.02.19 14:55 Сейчас в теме
(16) код не рабочий
(11) это работает только при открытии, при заполнении дерева в форме то данное свойство не на что не влияет.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 110 000 руб. до 120 000 руб.
Полный день

Аналитик 1С
Санкт-Петербург
зарплата от 80 000 руб.
Полный день

Программист 1С
Самара
зарплата от 50 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 120 000 руб.
Полный день

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день