На форме есть табличное поле с типом данных ДеревоЗначений.
Хочу прикрутить кнопки "РазвернутьВсе", "СвернутьВсе". Вот код для "РазвернутьВсе":
Процедура КоманднаяПанельДеревоРазвернутьВсе(Кнопка)
ЭлементыФормы.Дерево.НачальноеОтображениеДерева = НачальноеОтображениеДерева.РаскрыватьВсеУровни;
Обновить();
КонецПроцедуры
Все работает отлично. А вот для "СвернутьВсе" такое уже не получается:
ЭлементыФормы.Дерево.НачальноеОтображениеДерева = НачальноеОтображениеДерева.НеРаскрывать;
Обновить();
Оставляет дерево развернутым. Приходится вместо Обновить() заново перезаполнять дерево, тогда все работает, но это дольше.
ТабличноеПоле (TableBox) Развернуть (Expand) Синтаксис: Развернуть(<Строка>, <С подчиненными>) Параметры: <Строка> (обязательный) Строка табличного поля. Тип значения строки табличного поля приведен в описаниях расширений табличного поля у соответствующих объектов. <С подчиненными> (необязательный) Тип: Булево. Определяет необходимость раскрытия подчиненных узлов. Истина - раскрывать подчиненные узлы, Ложь - не раскрывать подчиненные узлы. Значение по умолчанию: Ложь Описание: Разворачивает узел в указанной строке дерева. Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения. Примечание: Используется в случае, если с табличным полем связано дерево значений или список справочника в виде дерева. Пример: // Разворот текущей строки в дереве:
ТабличноеПоле (TableBox) Свернуть (Collapse) Синтаксис: Свернуть(<Строка>) Параметры: <Строка> (обязательный) Строка табличного поля. Тип значения строки табличного поля приведен в описаниях расширений табличного поля у соответствующих объектов. Описание: Сворачивает узел в указанной строке дерева. Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения. Примечание: Используется в случае, если с табличным полем связано дерево значений или список справочника в виде дерева. Пример: УзелРазвернут = ЭлементыФормы.ТабличноеПоле.Развернут(Строка); Если УзелРазвернут Тогда ЭлементыФормы.ТабличноеПоле.Свернуть(Строка); КонецЕсли;
(2) Дерево достаточно большое и пробегать по всем строкам, как и получать данные заново, довольно долго.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший