Имя: Пароль:
1C
1C 7.7
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
Просто перебираем справочник.
Если встречаем группу - заносим её в таблицу (проверив, нет ли её там) и указываем, что у неё ноль подчинённых элементов.
Также смотрим родителя - если пустой, то мимо, если есть в списке, увеличиваем количество подчинённых на единицу, если в таблице нету, то добавляем, установив количество подчинённых, равным единице.
Если элемент, то смотрим только родителя.

В итоге получам таблицу, где у пустых групп будет ноль.
Программист всегда исправляет последнюю ошибку.