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

В данном разделе можно задавать вопросы по программированию на платформе 1С:Предприятие 8.
(Раздел предназначен для тех, кто уже прошел обучение в нашем учебном центре)

p.s. Просьба задавать вопросы только по программированию. На вопросы по типовым конфигурациям обычно не отвечаю по двум причинам
1. В последнее время редко с ними работаю.
2. Чтобы ответить на вопрос требуется: установить соответствующую базу нужного релиза, смоделировать ситуацию, и только после этого возможно залезть в конфигуратор и разобраться что не так (к сожалению, у меня нет столько времени).

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

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

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

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

Не могу понять что сделать, чтобы при снятии флага с подчиненного, он снимался с родителя.
Sveta
 
Сообщений: 34
Зарегистрирован: 03 май 2012, 16:38

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

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

Добрый день! Вот вам пример.
Вложения
ДеревоПометки.epf
(7.14 KiB) Скачиваний: 113
admin
Администратор
 
Сообщений: 240
Зарегистрирован: 14 дек 2011, 11:11

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

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

Спасибо большое! Раобралась.
Sveta
 
Сообщений: 34
Зарегистрирован: 03 май 2012, 16:38


Вернуться в Вопросы по программированию

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron