Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@a-sitnikov
Last active November 1, 2019 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save a-sitnikov/21ab83da94e9a3f04793177823b9f430 to your computer and use it in GitHub Desktop.
Save a-sitnikov/21ab83da94e9a3f04793177823b9f430 to your computer and use it in GitHub Desktop.
Пометки в дереве
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПометкуГруппы(Строка)
ИтогоПометка = 0;
Колво = 0;
Строки = Строка.ПолучитьЭлементы();
Для каждого Строка1 из Строки Цикл
Если Строка1.Пометка = 1 Тогда
ИтогоПометка = ИтогоПометка + 1;
КонецЕсли;
Колво = Колво + 1;
КонецЦикла;
Если ИтогоПометка = 0 Тогда
Строка.Пометка = 0;
ИначеЕсли ИтогоПометка = Колво Тогда
Строка.Пометка = 1;
Иначе
Строка.Пометка = 2;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПометкуПодчиненных(Строка, Пометка)
Строки = Строка.ПолучитьЭлементы();
Для каждого Строка1 из Строки Цикл
Строка1.Пометка = Пометка;
УстановитьПометкуПодчиненных(Строка1, Пометка);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ДеревоПометкаПриИзменении(Элемент)
ТекСтрока = Элементы.Дерево.ТекущиеДанные;
Если ТекСтрока.Пометка = 2 Тогда
ТекСтрока.Пометка = 0;
КонецЕсли;
УстановитьПометкуПодчиненных(ТекСтрока, ТекСтрока.Пометка);
Родитель = ТекСтрока.ПолучитьРодителя();
Пока Родитель <> Неопределено Цикл
УстановитьПометкуГруппы(Родитель);
Родитель = Родитель.ПолучитьРодителя();
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ВклВсе(Команда)
Для каждого Строка1 из Дерево.ПолучитьЭлементы() Цикл
Строка1.Пометка = 1;
УстановитьПометкуПодчиненных(Строка1, Строка1.Пометка)
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ВыклВсе(Команда)
Для каждого Строка1 из Дерево.ПолучитьЭлементы() Цикл
Строка1.Пометка = 0;
УстановитьПометкуПодчиненных(Строка1, Строка1.Пометка)
КонецЦикла;
КонецПроцедуры
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment