Тема: Удаление выборок из состава объекта

Вопрос: как правильно удалить выборки из состава объекта? Ведь там могут быть как выборки, созданные непосредственно в составе, так и ссылки на общесистемные выборки. К первым нужно применять метод Erase, ко вторым - Remove. А как отличить первые от вторых? А если к первым применить Remove, они удалятся или только "отлипнут" от объекта и навсегда зависнут в недрах базы? И такой вариант: А что происходит с выборками при удалении всего объекта - они тоже удаляются или "зависают"?

(изменено: Anatoly, 8 августа 2007г. 09:18:12)

Re: Удаление выборок из состава объекта

faulenzer пишет:

Вопрос: как правильно удалить выборки из состава объекта? Ведь там могут быть как выборки, созданные непосредственно в составе, так и ссылки на общесистемные выборки. К первым нужно применять метод Erase, ко вторым - Remove. А как отличить первые от вторых?

Если выборка добалена, как ссылка (глобальная), то удалить её нельзя - не через UI, не через скрипт.(под обычным пользователем) Через UI  пункт "удалить из системы" будет недоступен, а через скрипт выдаст ошибку "Отсутствуют права". ;) Так что переживать по-поводу удаления не стоит.
Если всё-же необходимо удалить "локальные" выборки скриптом, то их можно отличить от глобальных:

If ThisApplication.Queries.Has(Query) Then "это глобальная выборка."

  - т.е. просто смотрим есть такая выборка в глобальных или нет  ;)

И такой вариант: А что происходит с выборками при удалении всего объекта - они тоже удаляются или "зависают"?

Удаляются;)

А если к первым применить Remove, они удалятся или только "отлипнут" от объекта и навсегда зависнут в недрах базы?

Повиснут. Но их можно легко выловить "сборщиком мусора". - Элементарная проверка - удалите, а потом запустите сборщик мусора  ;)