|
v7: Как найти пустые папки спр-ка и удалить их??
| ☑ |
0
alexz55
23.05.13
✎
22:43
|
Как найти пустые папки спр-ка и удалить их??
|
|
1
noxxx
23.05.13
✎
22:46
|
1. Ищешь
2. Удаляешь
|
|
2
Lionee
23.05.13
✎
22:50
|
Сеня прям пятницо на ветки такие
|
|
3
Lionee
23.05.13
✎
22:51
|
(1) + 100
|
|
4
Волчара2010
23.05.13
✎
23:05
|
выбрать все элемены, не являющиеся группой и поместить их родителя в список значений. Дальше выбрать группы и если группа отсутствует в списке, значит она пустая.
|
|
5
Lionee
23.05.13
✎
23:12
|
(4) думаешь тс понял что ты написал?
|
|
6
Волчара2010
23.05.13
✎
23:14
|
не, фигню написал
|
|
7
Волчара2010
23.05.13
✎
23:20
|
имхо, на клюшках проще руками их находить и удалять. Рекурсию писать надо.
|
|
8
Волчара2010
23.05.13
✎
23:21
|
если в группе может быть иерархия других групп
|
|
9
Aleksey
24.05.13
✎
00:11
|
Спр=СоздатьОбъект("Справочник.ТвойСправочник");
СпрДляПроверки = СоздатьОбъект("Справочник.ТвойСправочник");
СписокПустыхГрупп=СоздатьОбъект("СписокЗначений");
Спр.ВыбратьЭлементы(0);
Пока Спр.ПолучитьЭлемент()=1 тогда
Если Спр.ЭтоГруппа()=1 тогда
СпрДляПроверки.ИспользоватьРодителя(Спр.ТекущийЭлемент())%
Если СпрДляПроверки.ВыратьЭлементы(0) = 0 тогда
СписокПустыхГрупп.ДобавитьЗначение(Спр.ТекущийЭлемент());
//или пометка на удаления, главное не удаляй, иначе выборка собъется
КонецЕсли;
КонецЕсли;
КонецЦикла;
Как то так
|
|
10
Torquader
24.05.13
✎
00:12
|
Просто перебираем справочник.
Если встречаем группу - заносим её в таблицу (проверив, нет ли её там) и указываем, что у неё ноль подчинённых элементов.
Также смотрим родителя - если пустой, то мимо, если есть в списке, увеличиваем количество подчинённых на единицу, если в таблице нету, то добавляем, установив количество подчинённых, равным единице.
Если элемент, то смотрим только родителя.
В итоге получам таблицу, где у пустых групп будет ноль.
|
|