1с раскрыть все уровни дерева значений

Как развернуть (свернуть) строки дерева значений?

Иерархические данные, размещаемые в табличном поле на обычных формах или в таблице формы на управляемых формах, могут иметь множество строк и уровней вложенности. Порой бывает очень неудобно сворачивать и разворачивать строки дерева значений вручную. К счастью, встроенный язык располагает методами манипулирования такими объектами

По умолчанию, при помещении на форму табличного поля или таблицы формы, связанных с деревом значений, оно показывается в свернутом виде. Если нужно, чтобы при открытии формы дерево значений показывалось в раскрытом виде, проще всего воспользоваться свойством НачальноеОтображениеДерева таблицы (табличного поля). Оно может принимать одно из следующих значений:

НеРаскрывать
(NoExpand)
отображать строки дерева в свернутом виде (по умолчанию)
РаскрыватьВерхнийУровень
(ExpandTopLevel)
отображать развернутыми строки дерева значений первого уровня
РаскрыватьВсеУровни
(ExpandAllLevels)
отображать развернутыми все строки дерева значений

Внимание! Программная установка свойства НачальноеОтображениеДерева на клиенте в режиме управляемого приложения неизбежно ведет к вызову сервера

Теперь рассмотрим варианты программного сворачивания\разворачивания строк дерева значений. Реализация этих методов может отличаться для обычных и управляемых форм.

Дерево значений на управляемых формах

Пример для сворачивания всех строк дерева значений:

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

Пример для разворачивания всех строк дерева значений верхнего уровня:

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

Если нужно сворачивать и разворачивать вложенные строки, потребуется доработать данный код, добавив рекурсию

Дерево значений на обычных формах

С обычными формами дела обстоят проще: обращение к серверу для обычных форм не так критично, как для управляемых, поэтому раскрыть все строки дерева можно так:

ЭлементыФормы.ДеревоДокументов.НачальноеОтображениеДерева = НачальноеОтображениеДерева.РаскрыватьВсеУровни; 

Но в большинстве случаев лучше использовать следующий код, который гарантированно работает

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

Источник

Читайте также:  Дерево решений для оценки

Как Свернуть, Развернуть узлы Дерева значений на форме?

Распечатать

— НЕ РАБОТАЮТ.
Для СправочникСписок (ДокументСписок) итератора нет. Это не коллекция значений, перебрать не сможете. Дерево здесь ни при чем.
Можно работать со строками либо через ПриПолученииДанных (предпочтительнее по скорости), либо ПриВыводеСтроки.

Распечатать

Похожие FAQ

17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 6
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 — получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р, НомСтроки, НомЯче COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=» D:ВашаБаза1с77″ ; Пользователь= Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Посмотреть все результаты поиска похожих

Еще в этой же категории

Примеры работы с Деревом значений в УП 11
Так как работа с ДеревомЗначений и ТаблицейЗначений в данном контексте практически не отличается, в примере будет использоваться ДеревоЗначений, все тоже самое за исключением иерархии применимо и к ТаблицеЗначений. Как известно, в платформе 1С 8.1 н Дерево значений в таблицу значений или в табличную часть и обратно 9
Для одной организации надо было реализовать документы, где вместо табличной части надо использовать дерево и все это на управляемых формах. Но дерево нельзя сохранить в базе в текущем виде. Пришлось использовать табличную часть документа для хранени Преобразование дерева значений в таблицу значений и обратно 6
Хочу поделиться с посетителями сайта своим подходом к преобразованию таблицы значений в дерево значений и обратно. Вообще, при разработке отраслевой задачи, была необходимость почти во всех документах, выводить информацию в виде дерева и хранить ее Как в дереве значений строку перекинуть в другой родитель? 5
Процедура ПереместитьСтрокуДерева(Дерево, ПеремещаемаяСтрока, НовыйРодитель, Уровень = 0) Если Уровень = 0 Тогда НоваяСтрока = НовыйРодитель.Строки.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, ПеремещаемаяСтрока); ПереместитьСтрокуДерева(Де ДеревоЗначений в ТекстовыйДокумент 3
// Выводит данные ДереваЗначений в ТекстовыйДокумент, пригодный к рассмотрению в отладчике, окне сообщений и показу. // // Параметры: // рВетка — дерево значений, подлежащее выводу. Может иметь почти любую глубину иерархии, количество и тип ко Посмотреть все в категории Работа с Деревом Значений

Читайте также:  Эпоксидка для склейки дерева

Источник

1С 8.x : Как Свернуть, Развернуть узлы Дерева значений на форме?

Распечатать

— НЕ РАБОТАЮТ.
Для СправочникСписок (ДокументСписок) итератора нет. Это не коллекция значений, перебрать не сможете. Дерево здесь ни при чем.
Можно работать со строками либо через ПриПолученииДанных (предпочтительнее по скорости), либо ПриВыводеСтроки.

Распечатать

Похожие FAQ

17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=» D:ВашаБаза1с77″ ; Пользователь= Excel файл как Внешний источник данных 16
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа » Внешние источники данных» и назовем его просто » Excel» . https://helpf.pro/uploads/img Google maps : вывод точек на карту и режим панорамы 8
В отличие от яндекс карт в GMaps можно использовать панорамы — за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Посмотреть все результаты поиска похожих

Читайте также:  Особенности метода дерева решений

Еще в этой же категории

Примеры работы с Деревом значений в УП 11
Так как работа с ДеревомЗначений и ТаблицейЗначений в данном контексте практически не отличается, в примере будет использоваться ДеревоЗначений, все тоже самое за исключением иерархии применимо и к ТаблицеЗначений. Как известно, в платформе 1С 8.1 н Преобразование дерева значений в таблицу значений и обратно 6
Хочу поделиться с посетителями сайта своим подходом к преобразованию таблицы значений в дерево значений и обратно. Вообще, при разработке отраслевой задачи, была необходимость почти во всех документах, выводить информацию в виде дерева и хранить ее Как в дереве значений строку перекинуть в другой родитель? 5
Процедура ПереместитьСтрокуДерева(Дерево, ПеремещаемаяСтрока, НовыйРодитель, Уровень = 0) Если Уровень = 0 Тогда НоваяСтрока = НовыйРодитель.Строки.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, ПеремещаемаяСтрока); ПереместитьСтрокуДерева(Де ДеревоЗначений в ТекстовыйДокумент 3
// Выводит данные ДереваЗначений в ТекстовыйДокумент, пригодный к рассмотрению в отладчике, окне сообщений и показу. // // Параметры: // рВетка — дерево значений, подлежащее выводу. Может иметь почти любую глубину иерархии, количество и тип ко Как вывести в справочник в виде дерева значений 1
Дерево = Новый ДеревоЗначений; Запрос = Новый Запрос; Запрос.Текст=» ВЫБРАТЬ |Ном.Ссылка как ссылка |ИЗ | Справочник.Номенклатура КАК Ном |Упорядочить По |Ном.Ссылка Иерархия» ; // Или Запрос.Текст icon-exclamation-sign»> Посмотреть все в категории Работа с Деревом Значений

Источник

Как программно Свернуть / Развернуть дерево значений УФ 1С 8

Если нужно свернуть / развернуть дерево значений на управляемой форме программно тогда можно использовать одноименные методы на клиенте.

Методы имеют следующие параметры:

Идентификатор обрабатываемой строки

(необязательный, только для разворачивания) — Значение по умолчанию: Ложь.

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

Элементы.Дерево.Развернуть(ИдентификаторСтроки, Истина); Элементы.Дерево.Свернуть(ИдентификаторСтроки);
Элементы.Дерево.Развернуть(0, Истина);
&НаКлиенте Процедура ПриОткрытии(Отказ) СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), Истина); КонецПроцедуры &НаКлиенте Процедура РазвернутьВсе(Команда) СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), Истина); КонецПроцедуры &НаКлиенте Процедура Развернуть3(Команда) СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), Ложь); СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), Истина, 3); КонецПроцедуры &НаКлиенте Процедура Развернуть2(Команда) СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), ЛОжь); СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), Истина, 2); КонецПроцедуры &НаКлиенте Процедура СвернутьДерево(Команда) СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), Ложь); КонецПроцедуры &НаКлиенте Процедура СвернутьРазвернутьДерево(Дерево, Развернуть, Уровень = Неопределено) Экспорт Если НЕ Уровень = Неопределено Тогда Уровень = Уровень - 1; Если Уровень= 0 Тогда Возврат; КонецЕсли; КонецЕсли; Для Каждого ТекСтр Из Дерево Цикл Строки = ТекСтр.ПолучитьЭлементы(); Если Строки.Количество() > 0 Тогда СвернутьРазвернутьДерево(Строки, Развернуть, Уровень); Если Развернуть = Истина Тогда Элементы.Дерево.Развернуть(ТекСтр.ПолучитьИдентификатор()); Иначе Элементы.Дерево.Свернуть(ТекСтр.ПолучитьИдентификатор()); КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры

Функция СвернутьРазвернутьДерево(), позволяет свернуть или развернуть все дерево до определенного уровня или полностью

Источник

Оцените статью