Страница 1 из 1

Работа с ДеревомЗначений

СообщениеДобавлено: 09 июл 2017, 00:38
Sveta
Здравствуйте! У меня есть ДеревоЗначений, в котором при установки/снятии флажка у подчиненных элементов, проставляется/снимается флажок у родительского элемента. У подчиненного ставится только один флаг.
&НаКлиенте
Процедура ДеревоРазделыПометкаПриИзменении(Элемент)
ИДТекущейСтроки = Элементы["ДеревоРазделы"].ТекущаяСтрока;
Если ИДТекущейСтроки <> Неопределено Тогда
ЭлементКоллекции = ЭтаФорма["ДеревоРазделы"].НайтиПоИдентификатору(ИДТекущейСтроки);
Если ЭлементКоллекции.Пометка = 2 Тогда
ЭлементКоллекции.Пометка = 0;
КонецЕсли;
//вот этом месте я, если подчиненные элементы есть, т.е. не родитель, снимаю все флажки
Если ЭлементКоллекции.ПолучитьЭлементы().Количество() = 0 Тогда
Для Каждого ТекЭлемент Из ЭлементКоллекции.ПолучитьРодителя().ПолучитьЭлементы() Цикл
Если ТекЭлемент <> ЭлементКоллекции Тогда
ТекЭлемент.Пометка = Ложь;
КонецЕсли;
КонецЦикла;
КонецЕсли;
//а теперь ставлю нужный флажок
Родитель = ЭлементКоллекции.ПолучитьРодителя();
Пока Родитель <> Неопределено Цикл
Родитель.Пометка = ?(УстановленноДляВсех(ЭлементКоллекции), ЭлементКоллекции.Пометка, 2);
ЭлементКоллекции = Родитель;
Родитель = ЭлементКоллекции.ПолучитьРодителя();
КонецЦикла;
КонецЕсли;
КонецПроцедуры

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

Не могу понять что сделать, чтобы при снятии флага с подчиненного, он снимался с родителя.

Re: Работа с ДеревомЗначений

СообщениеДобавлено: 09 июл 2017, 23:03
admin
Добрый день! Вот вам пример.

Re: Работа с ДеревомЗначений

СообщениеДобавлено: 13 июл 2017, 00:20
Sveta
Спасибо большое! Раобралась.