|
Флажки в дереве значений УФ |
☑ |
0
Альбатрос
06.07.18
✎
07:10
|
Вопрос возможно и тривиальный, но я понять не могу как правильно сделать.
Итак, имеется обработка, в обработке есть дерево значений, у ДЗ есть поле "Отм" с типом булево, которое является флажком. Хочу по кнопке Отметить все флажки, пишу вот такой г*внокод:
&НаКлиенте
Процедура ОтметитьВсе(Команда)
ОтметитьВсеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОтметитьВсеНаСервере()
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
Для каждого СтрокаДерева из ОбработкаОбъект.ТаблицаАнализа.Строки Цикл
СтрокаДерева.Отм = Истина;
ДЛя каждого СтрокаСтроки из СтрокаДерева.Строки Цикл
СтрокаСтроки.Отм = Истина;
КонецЦикла;
КонецЦикла;
ЗначениеВРеквизитФормы(ОбработкаОбъект,"Объект");
КонецПроцедуры
Ессесно после его исполнения флажки отмечаются, Но все уровни строк сворачиваются до верхнего родителя. Как оставить их развернутыми? Или как правильно оформить флажки в ДЗ?
|
|
1
Мимохожий Однако
06.07.18
✎
07:31
|
Это пробовал?
...ТаблицаФормы.Развернуть (FormTable.Expand)
ТаблицаФормы (FormTable)
Развернуть (Expand)
Синтаксис:
Развернуть(<ИдентификаторСтроки>, <СПодчиненными>)
Параметры:
<ИдентификаторСтроки> (обязательный)
Тип: Произвольный.
Идентификатор строки таблицы.
<СПодчиненными> (необязательный)
Тип: Булево.
Определяет необходимость раскрытия подчиненных узлов. Истина - раскрывать подчиненные узлы, Ложь - не раскрывать подчиненные узлы.
Значение по умолчанию: Ложь.
Описание:
Разворачивает узел в указанной строке дерева.
Доступность:
Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).
--------------------------------------------------------------------------------
Методическая информация
|
|
2
Альбатрос
06.07.18
✎
07:36
|
(1) А как изначально определить, какие строки у меня развернуты? То есть мне не надо разворачивать все строки, а только те, которые до этого были развернуты пользователем.
|
|
3
Альбатрос
06.07.18
✎
07:38
|
Вопрос снимается, есть свойство Развернут. Спасибо!
|
|
4
Альбатрос
06.07.18
✎
07:42
|
Хотя все равно повыпендриваться придется. Сначала нужно обойти все строки, запомнить идентификаторы развернутых, после отметки по идентификатором их опять развернуть.
|
|
5
тарам пам пам
06.07.18
✎
09:15
|
(0) а нахрена ты вообще идешь на сервер и затем еще и гоняешь ДанныеФормы в объект и обратно? Обойди дерево прямо на клиенте, тогда скорее всего и сворачиваться ничего не будет.
|
|
6
Тихий омут
06.07.18
✎
09:57
|
&НаКлиенте
Процедура Уст(Коллекция)
ВсеЭл=Коллекция.ПолучитьЭлементы();
Для Каждого Эл Из ВсеЭл Цикл
Эл.Фл=Истина;
Уст(Эл);
КонецЦикла; // Эл Из Коллекция
КонецПроцедуры // Уст(Коллекция)
&НаКлиенте
Процедура Команда1(Команда)
Уст(Реквизит1);
КонецПроцедуры
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший