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

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

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

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

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

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

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

См. также

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

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

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

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

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

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

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