Удаление помеченных объектов группами

Публикация № 76177

Администрирование - Чистка базы

10
Предлагаемая обработка поможет в тех случаях когда в базе накопилось много помеченных на удаление объектов и штатными средствами удалить их не получается.

1. Получаем массив помеченных на удаление (МПУ).
2. Берем первый элемент из МПУ, и будем формировать группу на удаление (ГНУ).
Т.е. помещаем элемент в ГНУ.
3. Ищем в базе ссылки на ГНУ. Если среди них есть не помеченные на удаление, то элемент заносим в пропущенные и удаляем из МПУ. Переходим к п.1
4. Если все найденные ссылки также помечены на удаление, то добавляем их в ГНУ.
5. Если в ГНУ появились новые сслыки, то переходим к п.3.
6. Если новых ссылок не появилось, т.е. ГНУ ссылается на себя и все эл-ты ГНУ помеч. на удаление, то можно непосредственно удалять из базы данных всю группу. Что и делается в транзакции. Далее удаляем обработанный элемент из МПУ и переходим к п.1.

Папка служебных файлов хранит лог сообщений и таблицу с пропущенными объектами.
По кнопке "Прочитать" можно увидеть в таблице пропущенные объекты и поработать с ними.
Обработка открыта. Ответственность за работу обработки в вашей базе вы берете на себя.

10

Скачать файлы

Наименование Файл Версия Размер
Удалятор.epf
.epf 10,00Kb
28.09.10
281
.epf 10,00Kb 281 Скачать бесплатно

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. aresstokrat 12.09.11 23:33 Сейчас в теме
Объясните пожалуйста, есть у меня неудаляемые объекты. Но обработке нужен лог файл, я не знаю где его взять и как он называется. Платформа 8.2 + КА 1.1
4. mrWatson 328 27.09.11 22:24 Сейчас в теме
(1) просто укажите пустой каталог, в нем программа сама создаст необходимые файлы, если их нет.
Если файлы есть, то программа их задействует.
(2) обработка открыта для изменения
(3) да, будет работать, обработка не зависит от конфигурации. но не забывайте делать бэкап.
2. mr.Kot 21.09.11 10:21 Сейчас в теме
Было бы хорошо, если бы в обработке помжно было бы задать период и его бы и удаляли
3. natik86 27.09.11 18:44 Сейчас в теме
Подскажите пожалуйста, а в УТ 10.3 (82) будет эта обработка работать или нет?
5. Old Daemon 30.09.11 09:48 Сейчас в теме
8.2 УПП Нажимаю запустить - получаю {Форма.Форма.Форма(138)}: Значение не является значением объектного типа (ПометкаУдаления)
Если СтрТабСсылок.Данные.ПометкаУдаления Тогда
6. mrWatson 328 30.09.11 10:38 Сейчас в теме
(5) ВОзьмите в попытку, и в исключении

Соообщить(ТипЗнч( СтрТабСсылок.Данные))

данный объект не удаляйте, пропустите.
8. serjpsv 15 23.12.11 16:45 Сейчас в теме
Не запускается под ЗУП 8.2
9. serjpsv 15 23.12.11 16:45 Сейчас в теме
А в конфигураторе открівается нормально
10. mrWatson 328 23.12.11 17:35 Сейчас в теме
(9) serjpsv, в ЗУПе не проверял, а что за ошибка-то?
11. vis_tmp 29 18.11.14 07:43 Сейчас в теме
Хорошая обработка, пригодилась в работе.
12. IsiKosta 713 03.09.15 10:42 Сейчас в теме
Комплексная автоматизация, редакция 1.1 (1.1.62.1)
Ситуация после нескольких запусков подряд:

{Форма.Форма.Форма(58)}: Индекс находится за границами массива
ПомечНаУдаление = МассивПомеченныхНаУдаление[0];
13. IsiKosta 713 03.09.15 10:59 Сейчас в теме
Для тех, кто не хочет выбирать файл, добавьте Попытку

Если (КолВоПомеченныхНаУдаление/100) = Цел(КолВоПомеченныхНаУдаление/100) Тогда
СообщитьЛог("******* сохраняем в файл ***********",ЛогТекстовыйДокумент);
ЗначениеВФайл(ИмяФайлаПропущенные,Пропущенные);

Попытка
ЛогТекстовыйДокумент.Записать(ИмяФайлаЛог);
Исключение
КонецПопытки;

КонецЕсли;
Оставьте свое сообщение