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

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки данных форм спам-ботами.
Смайлики
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:
BBCode ВКЛЮЧЕН
[img] ВКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВКЛЮЧЕНЫ
Обзор темы
   

Развернуть Обзор темы: Работа с ДеревомЗначений

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

Сообщение Sveta » 13 июл 2017, 00:20

Спасибо большое! Раобралась.

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

Сообщение admin » 09 июл 2017, 23:03

Добрый день! Вот вам пример.
Вложения
ДеревоПометки.epf
(7.14 KiB) Скачиваний: 224

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

Сообщение Sveta » 09 июл 2017, 00:38

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

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

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

Вернуться наверх

cron