Для этого воспользуемся механизмом выполнения произвольного кода.
1. Выбираем тип объекта для удаления, задаем отбор (можно сразу установить отбор ПометкаУдаления Равно Да).
2. Получаем объекты по отбору.
3. Создаем новый произвольный алгоритм. Вставляем туда нижеописанный код. Фишка в проверке на имеющиеся ссылки при помощи встроенной функции НайтиПоСсылкам.
СписокСсылок = Новый Массив;
СписокСсылок.Добавить(Объект.Ссылка);
МассивСсылок = НайтиПоСсылкам(СписокСсылок);
Если МассивСсылок.Количество() = 0 Тогда
Сообщить(Строка(ТекущаяДата()) + ": удаляется " + Строка(Объект));
Объект.ОбменДанными.Загрузка = Истина;
Объект.Удалить();
Иначе
Сообщить(Строка(Объект) + "Есть ссылки, пропущен.");
КонецЕсли;
Преимущество подобного подхода: объекты удаляются последовательно; те, которые не могут быть удалены, пропускаются с сообщением, и код двигается дальше. Кроме того, обошлись без доработок.
Может быть это несколько медленнее, чем стандартное удаление объектов, но нет необходимости сидеть перед удалением и долбить как дятлу, проставляя галочки на нужных объектах, руководствуясь исключительно внутренним чутьем и надеждой на то, что лишнего не захватишь. Поберегите свои пальцы)
ВНИМАНИЕ!!! Важное дополнение кода в комментарии, спасибо V.Nikonov (//infostart.ru/profile/54105/)
P.S. Еще один интересный, но уже программный пример: //infostart.ru/public/414206/
P.P.S. И еще несколько простых и полезных приемов: //infostart.ru/public/399922/