свернуть определенный уровень в дереве значений 1с обычная форма

1. user876302 28.01.21 14:37 Сейчас в теме
Суть вопроса:
Есть обработка с деревом на форме. В дереве 4 уровня: менеджер, контрагент, заказ, номенклатура.
Нужно сделать так, что при загрузке данных в дерево, первые 3 уровня были развернуты, а четверт (уровень номенклатуры) свернутый.
Что то уже пару часов сижу над эти и не могу сдвинуться с места...

Подскажите, кто сталкивался с таким вопросом. Заранее спасибо
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. killitch 30 28.01.21 15:16 Сейчас в теме
(1)ТабличноеПоле (TableBox)
Развернуть (Expand)
Синтаксис:

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

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

Строка табличного поля. Тип значения строки табличного поля приведен в описаниях расширений табличного поля у соответствующих объектов.
<СПодчиненными> (необязательный)

Тип: Булево.
Определяет необходимость раскрытия подчиненных узлов. Истина - раскрывать подчиненные узлы, Ложь - не раскрывать подчиненные узлы.
Значение по умолчанию: Ложь.
Описание:

Разворачивает узел в указанной строке дерева.

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

Толстый клиент.
Примечание:

Используется в случае, если с табличным полем связано дерево значений или список справочника в виде дерева.
Пример:

// Разворот текущей строки в дереве:

Строка = ЭлементыФормы.ТабличноеПоле.ТекущаяСтрока;
ЭлементыФормы.ТабличноеПоле.Развернуть(Строка, Истина);


После создания строки дерева нужного уровня не разворачивать и все.
3. killitch 30 28.01.21 15:17 Сейчас в теме
(1)ТабличноеПоле (TableBox)
Свернуть (Collapse)
Синтаксис:

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

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

Строка табличного поля. Тип значения строки табличного поля приведен в описаниях расширений табличного поля у соответствующих объектов.
Описание:

Сворачивает узел в указанной строке дерева.

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

Толстый клиент.
Примечание:

Используется в случае, если с табличным полем связано дерево значений или список справочника в виде дерева.
Пример:

УзелРазвернут = ЭлементыФормы.ТабличноеПоле.Развернут(Строка);
Если УзелРазвернут Тогда
ЭлементыФормы.ТабличноеПоле.Свернуть(Строка);
КонецЕсли;


Или после заполнения дерева пройтись по нему и нужные свернуть.
4. Kovekh 28.01.21 15:37 Сейчас в теме
(3)Так иначе никак, там в параметрах строка нужна) Потому хоть как придётся циклом проходить
5. killitch 30 28.01.21 15:40 Сейчас в теме
(4)Это понятно. Просто можно в цикле заполнения дерева разворачивать нужные уровни, а не нужные не трогать. Или после заполнения делать дополнительный цикл, в котором и реализовать свернуть/развернуть для нужных уровней строк.
6. user876302 28.01.21 16:27 Сейчас в теме
(3) Я застопорился на том, как связать строку дерева со строкой табличного поля.

Мне нужно обойти дерево значений, я его обхожу, получаю нужные строки, но не получается связать строку дерева значений с строкой табличного поля...
7. FatPanzer 28.01.21 16:49 Сейчас в теме
(6) Идентификатор. ПолучитьИдентификатор(), НайтиПоИдентификатору()
8. user876302 28.01.21 17:00 Сейчас в теме
(7)... а к чему эти методы применить?
ПолучитьИдентификатор()
к дереву значений, к строке? не вижу в справке информацию...

ниже код

Процедура ОбходДерева(тДеревоЗначений)
ПодчиненныйЭлемент = тДеревоЗначений.Строки;
Для каждого Строка из ПодчиненныйЭлемент Цикл
индСтроки = Строка.Уровень();
Если индСтроки = 2 Тогда
//тут надо как-то превратить строку с дерева значения в строку в таб поле
ЭлементыФормы.тДеревоЗначений.Свернуть(Строка);
Продолжить;
Иначе
ОбходДерева(Строка);
КонецЕсли;
КонецЦикла;
КонецПроцедуры;
9. FatPanzer 28.01.21 17:14 Сейчас в теме
10. user876302 28.01.21 17:19 Сейчас в теме
(9) ага)) за шесть лет работы второй раз стыкаюсь с деревом в обычных формах и второй раз сплошная боль.....
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот