Удаляет все группы в справочнике "Номенклатура", у которых нет подчиненных элементов.
Удаляет все группы в справочнике «Номенклатура», у которых нет подчиненных элементов.
Обработка писалась по причине того, что у клиента в результате многолетней работы + кривых рук + неправильного обмена образовались тысячи пустых групп.
Идею запроса подсмотрел где-то здесь на сайте, но найти заново не смог.
Непосредственное удаление?
Если ничего не проверять перед удалением, то могут появиться «битые» ссылки, например, в ограничениях доступа по папкам номенклатуры, или в назначениях свойств объектов.
Также есть еще один момент:
— Если эти папки появились из-за кривых рук и неправильного обмена, то с большими шансами в справочнике Номенклатура имеются и элементы с инвалидным родителем (например, элемент перенесен при обмене, а его родитель — нет).
— Так что можно в этой же обработке или в другой проверять, существует ли родитель, и что-то делать, если инвалидная ссылка.
Элементы с инвалидным родителем не видны при иерархическом просмотре справочника.
Да, в этой версии непосредственное удаление. А по поводу «элемент перенесен при обмене, а его родитель — нет», то в группе все равно будет пусто. А если наоборот, родитель перенесен а элемент нет, то опять же группа пуста.
Но в целом конечно вы правы, и в обработке изначально была пометка на удаление. Строчка там до сих пор закоментирована — можно раскоментить. 🙂
ЗЫ сейчас часто пользуюсь обработкой для очистки справочника «номенклатура» от предустановленных групп в бухгалтерии перед первоначальным обменом или переносом. Поэтому непосредственное удаление — позволяет сэкономить немного времени.