Имя: Пароль:
1C
 
Удаление помеченных объектов
0 osa1C
 
06.10.21
12:10
Нарвался на базу самописку, на основе УПП 1.2 и в ней куча мусора аж с 2011 года. Хотелось бы хоть постепенно, хоть помесячно очищать этот мусор. Кто сталкивался с подобным, подскажите варианты решения. Вариант обрезания базы по годам не подходит. Надо вычистить помеченные на удаление объекты.
1 mistеr
 
06.10.21
12:13
(0) Обработка из ИР весьма неплоха. Может обрабатывать порциями.
2 Галахад
 
гуру
06.10.21
12:14
Регламент. Пусть чистит порциями. Можно по ночам.
3 Базис
 
naïve
06.10.21
12:14
(0) Сам увидишь, что очень много ссылок на служебные объекты.
Как-то раз очистил УПП до состояния "Всё лишнее удалено", ушло тьма времени. Максимум возможного - замена на служебный элемент "Старое и ненужное" в каждом очищаемом справочнике.

(1) Она упрётся в сотни ссылок, которые надо разгребать руками.
4 osa1C
 
06.10.21
12:19
(3) упрется в том и дело, но хоть бы записала ссылки и при следующем запуске либо подставляла выбранные вручную значения, или убивала ненужные
5 TormozIT
 
гуру
12.10.21
00:14
(4) Если нужно заменить ссылки, то логичнее использовать инструмент "Поиск дублей и замена ссылок (ИР)". Там на странице "Правила замены ссылок" можно для каждого объекта указать замену.
6 TormozIT
 
гуру
12.10.21
00:16
(5) Ну а если для всех ссылок одного типа нужно одна общая замена, то на странице "Группы дублей" логичнее создать одну группу дублей и назначить элемент-замену правильным.
7 TormozIT
 
гуру
12.10.21
00:18
(4) Если же ты имел ввиду что то другое, то я не смог понять куда записывать какие ссылки и куда их подставлять при следующем запуске. Поясни подробнее.
8 ДенисЧ
 
12.10.21
05:04
(7) Я так понял - он хочет простое. Найти все помеченные, запомнить найденное. Удалить 1000. Закрыть 1с. Завтра вернуться, загрузить список, удалить ещё 1000...
9 TormozIT
 
гуру
12.10.21
07:26
(8) Такое уже есть там. Поэтому то и непонятно.
10 Василий Алибабаевич
 
12.10.21
08:03
(0)
1. НайтиПомеченныеНаУдаление - вернет массив помеченных на удаление. Возможно с отбором по каким-то, нужным вам, критериям.
2. Из массива взять столько сколько нужно объектов и скормить их в УдалитьОбъекты.
3. Все.
11 lodger
 
12.10.21
08:44
(10) 4. останется 500 неразрешимых ссылок.
5. НайтиПомеченныеНаУдаление - вернет массив из 1000 помеченных на удаление.
6. УдалитьОбъекты снесет 250 и останется 750 неразрешимых ссылок.
7. НайтиПомеченныеНаУдаление - вернет массив из 1000 помеченных на удаление.
8. УдалитьОбъекты снесет 125 и останется 875 неразрешимых ссылок.
9. НайтиПомеченныеНаУдаление - вернет массив из 1000 помеченных на удаление.
10. УдалитьОбъекты снесет 63 и останется 937 неразрешимых ссылок.
11.
n+1. УдалитьОбъекты снесет 0 и останется 1000 неразрешимых ссылок.
12 Обработка
 
12.10.21
08:49
Если свернуть нельзя то только порционное удаление.
Еще могу посоветовать выбирать приоритеты отбора так что сначала удаляется объекты на которые меньше всех ссылаются.
13 osa1C
 
12.10.21
08:59
(12) ну меньше всего ссылок на удаленные договоры абонентов. И их конечно куча.
14 Василий Алибабаевич
 
12.10.21
09:00
(11) "останется 750 неразрешимых ссылок." На следующей итерации их можно исключить из массива удаляемых.
ЗЫ. Если дурака заставить богу молться то он и лоб расшибит не остановится.
15 Dmitrii
 
гуру
12.10.21
10:46
(0) >> Надо вычистить помеченные на удаление объекты.

Зачем вам это нужно? Какие цели вы при этом ставите? Что хотите получить?
На 90% это бесполезная трата огромного количества времени.

Если задача тупо в том, чтобы типовое удаление помеченных объектов отрабатывало, а сейчас оно не успевает отрабатывать из-за слишком большого количества помеченных объектов, то просто снимите пометки на удаление со старых объектов.

Например, по личному опыту, пользователи очень часто помечают на удаление элементы справочников, которые не используются ими в текущей работе, но раньше использовались. Удалены такие объекты быть не могут (они реально использовались ранее и на них имеется куча рабочих ссылок). У таких точно должна быть снята пометка удаления и попутно можно впихнуть префикс в наименования типа "(не используется)".

Можно определиться с несколькими видами объектов, имеющих самое большое количество помеченных. Далее смотреть - почему не удаляются и выбирать конкретную стратегию - как чистить. Какие служебные регистры и справочники нужно для этого очистить и можно ли это сделать безболезненно. Можно ли где-то выполнить поиск и замену значений с очисткой ссылок или заменой на ссылки на служебные элементы. Короче стратегия будет каждый раз индивидуальная. Где-то для этого лучше буде привлечь кого-то из ответственных пользователей. Геморрой неимоверный при весьма неочевидных преимуществах.
16 УдавВПопугаях
 
12.10.21
10:54
быстрее перенести остатки в чистую базу или если совсем быстро - shift+del
17 Обработка
 
12.10.21
11:21
(16) В теме же написано что свертка не предполагается никак.

Цитата "Вариант обрезания базы по годам не подходит."
18 УдавВПопугаях
 
12.10.21
11:28
(17) это ерунда. движения оставить, а мусор вычистить - ну и вычищайте, процентов 10 от помеченных может и удалите. вполне рабочая встроенная обработка "Удаление помеченных объектов"