![]() |
v7: Как найти пустую папку (группу) справочника в 1С 7.7??? Нужно найти и грохнуть пустую папку(группу) справочника в 1с 7.7 |
какую-то конкретно? найди пометь на удаление и удали |
в том то и прелесть заморочки, априори конкретная папка мне неизвестна, они могут быть разбросаны по разным веткам на разном (уровне/колене) в рамках одного справочика. |
задача найти пустую папку и грохнуть ее......точнее папки/группы на каком бы уровне они бы не находились.. |
Обработку написать. |
(3) получи все элементы и группы , получи их родителей, получи все группы, те группы которых нет в родителях пустые |
рекурсия... |
Спр = СоздатьОбъект("Справочник.МойБестолковыйНабор"); Ссылки = СоздатьОбъект("ТаблицаЗначений"); Спр.ВыбратьЭлементв(1); Пока Спр.ПолучитьЭлемент(1)=1 Цикл Есди Спр.ЭтоГруппа()=1 Тогда Ссылки.Очистить(); УдалитьОбъекты(Спр.ТекущийЭлемент(),1,Ссылки); КонецЕсли; КонецЦикла; |
+7 Но лучше сначала собрать в список методом ПолучитьСсылки(), потом в цикле удалить. |
9.Спасибо тебе за пример....реально...новую планету открыл, но либо механизм для других задач заточен. Объясню: Справочник.Номенклатура в ТИС есть куча уже созданных папок, создаю 3 тестовые папки,в первых двух создаю элементы, 3ю оставляю намерено пустой,если механизм правильный он должен был ее удалить.Что в итоге произошло: он судя по строке состояния искал ссылки не только в рамках данного справочника, но лез в другие. в итоге после 5 минут ожидания выходит сообщение, что мол 1 такая то папка удалена.Смотрю что за папка, во первых она не удалилась, во вторых она была битком заполнена элементами......... Буду пробывать метод 5 сообщения. |
Спасибо VZ....предыдущее сообщение для VZ. |
Пометить все папки на удаление, потом удаление помеченных, кто остался - распометить обратно. |
Контрагенты = СоздатьОбъект("Справочник.Контрагенты"); Подчиненные = СоздатьОбъект("Справочник.Контрагенты"); Контрагенты.ВыбратьЭлементы(); Пока Контрагенты.ПолучитьЭлемент() = 1 Цикл Если Контрагенты.ЭтоГруппа() = 0 Тогда Продолжить; КонецЕсли; Подчиненные.ИспользоватьРодителя(Контрагенты.ТекущийЭлемент()); Если Подчиненные.ВыбратьЭлементы() = 0 Тогда Сообщить("Группа """+Контрагенты.Наименование+""" пустая"); КонецЕсли; КонецЦикла; |
запросом без групп с родителем - родителя в колонке - в ТЗ запросом только группы в ТЗ при сравнении одно из второго выкитывать и удалять можно даже перебором ТЗ только с конца ЗЫ писАть не буду ибо уж сами как нить |
не могу,объясню задача следующая: элементы справочника обладают какими то свойствами, мой механизм должен переместить все элементы из исходной папки, которые соответствуют заданным условиям поиска с ее внутренней иерархией в новую,представим,что если 2 элемента из 3х соответствуют отбору они ушли в новую папку, а есть элементы,которые уходят все сразу и на лету нужно грохнуть исходную папку так как в папке получателе уже создана папка с таким именем и чтобы множить тысячу папок с таким именем пустые нужно грохнуть. |
(12) ниале ибо если выбрать а там группа в группе и все пустые ;)) |
14 сообщение для 11 |
(14) афтар растабай ;))) |
что такое растабай ;))) |
(17) + я боюсь за людей кому ты ТЗ пишешь - они ж с ума сойдут ;))) |
покажи пример. а то разглогольствовать каждый может |
(18) в этом слови изначально две описки и одна буква пропущена ;)) |
ну и.....? ТЗ на сцену.в исполнении 101, ой а где же он убежал...... |
(20) - на лету нужно грохнуть исходную папку так как в папке получателе уже создана папка с таким именем ----- и ысячу папок с таким именем пустые нужно грохнуть. -- как минимум 2-е задачи с неявным алгоритмом ... ;) |
(22) Оо откуда я знаю чотенада четенада (с) :))) ЗЫ как минимум краткий алгоритм выполнения - пустые грохнуть в (13) написал кратенько |
ну 2 й |
ты уже сам приплел |
приянто. Апплодисменты зала!! |
(26) неее , нифига , родной , все таки грохнуть тысячи пустых папок и удалять на лету опустевшую папку это кардинально разные йайца ;)) даже в профиль |
28-101 > +1 |
и чтобы не множить тысячу папок с таким именем пустые нужно грохнуть. - ты хоть копируй почеловечески... |
ладно полемика это все...пустая. |
хмм пустая , но пустые нужно грохнуть и пустые нужно грохать ;)) все таки немного отличается ЗЫ еси те охота на лету - то либо парсить функцией сколько элементов осталось - и ей же грохать можно сопсно , либо изобретать лисапед - другого <на лету> не будет имхо |
"Пустые названия" не нужно уничтожать. "Пустые названия" надо не допускать. На этапе записи. И это принципиально. |
спасибо Uho немного переделал для себя получилось...респект и уважуха. |
мда..... имея такого «коллегу», я без работы точно не останусь. |
| Текущее время: 18:52. Часовой пояс GMT +3. |