|
Удаление помеченных | ☑ | ||
---|---|---|---|---|
0
MonteCarlo
17.08.18
✎
11:38
|
Уважаемое сообщество. Помогите принять решение. У нас есть проблема, ночью выполняется регламент по физическому удалению объектов, помеченных на удаление. База большая, помеченных очень много и они не удаляются из-за того, что есть ссылки в регистрах или документах. Утром перед началом рабочего дня регламент завершается принудительно. Таким образом новые помеченные на удаление объекты не могут удалиться из-за того, что до них просто не доходит очередь. Встала задача фильтровать поиск ссылок на объект по тем объектам, которые были уже проверены в прошлый раз и по ним есть ссылки. Какие у меня есть идеи. Нужно обязательно вести где-то список объектов, которые имеют ссылки и их не проверять. Т.е. в типовую обработку проверку внести изменения. Но вот где этот список вести? Файл мне не очень нравится. Регистр сведений можно или внешних источник данных. В регистром работа будет быстрее, а внешний источник не будет создавать сам по себе ссылку на этот же объект. Но в любом случае нужно предусмотреть вариант, когда пользователь избавляется от ссылки, тогда нужно оперативно вносить изменения в эту таблицу и удалять из нее этот объект. Через подписку конечно можно все это сделать, но вот вопрос как быть с регистрами. Допустим на документы и справочники я могу подписку сделать, а вот как отработать вариант, когда из независимого регистра сведений удаляется запись и в ней была ссылка на удаляемый объект, как отследить и удалить во внешнем источнике это событие? И не нагрузит ли это сильно систему, постоянно обращаться во внешний источник в процессе оперативной работы?
В общем если у кого-то были подобные задачи или есть у кого мысли, делитесь, буду признателен. |
|||
1
butterbean
17.08.18
✎
11:41
|
делаешь в регистре измерение ведущим и все, записи сами удалятся при удалении объекта-измерения
|
|||
2
s03
17.08.18
✎
11:41
|
А если элементы справочников, которые нельзя удалить переместить в для этого созданную папку "Удаленные" и снять пометку удаления?
|
|||
3
MonteCarlo
17.08.18
✎
11:42
|
(1) А если уже есть регистры (много) где это измерение не ведущее и менять не особо хочется? По сути это все измерения надо делать ведущими.
|
|||
4
MonteCarlo
17.08.18
✎
11:42
|
(2) Не понял. Зачем?
|
|||
5
MonteCarlo
17.08.18
✎
11:43
|
(2) Смысл то в том, чтобы физически удалить их из базы.
|
|||
6
butterbean
17.08.18
✎
11:44
|
(3) это я про новый регистр, в который будешь писать неудаляемые объекты? те которые система даже не будет пытаться удалить
|
|||
7
butterbean
17.08.18
✎
11:44
|
(6+) ?=,
|
|||
8
s03
17.08.18
✎
11:44
|
(4) "Встала задача фильтровать поиск ссылок на объект по тем объектам, которые были уже проверены в прошлый раз и по ним есть ссылки" - вот и отфильтруете их. и в следующий раз они проверяться уже и не будут.
(5) даже если на эти записи есть ссылки в документах/регистрах? |
|||
9
MonteCarlo
17.08.18
✎
11:45
|
(6) ааа понял, ну это не самая большая проблема. Тут согласен, так и думал сделать.
|
|||
10
MonteCarlo
17.08.18
✎
11:47
|
(8) Конечно если есть ссылки в документах/регистрах, то удалять физически не надо, но вся соль в том, что в дальнейшем же пользователи могут и удалить эти ссылки в документах и тогда уже этот объект надо будет убрать из фильтра и прогнать через обработку удаления помеченных.
|
|||
11
MonteCarlo
17.08.18
✎
11:48
|
(8) Перенос в папку не решает проблему, надо же оперативно вытаскивать из папки и помечать на удаление если вдруг пользователь очистил ссылку в стороннем документе
|
|||
12
MonteCarlo
17.08.18
✎
11:49
|
(11) +(8) тогда уж проще через регистр сделать.
|
|||
13
s03
17.08.18
✎
11:51
|
(10) Как вариант создай отдельное регламентное задание, которое шерстит папку "Удаленные" проверяя все непомеченные на удаление на наличие использование этих ссылок. И если ссылок не нашлось - спокойно помечать на удаление и удалять естественным образом
|
|||
14
catena
17.08.18
✎
11:52
|
Я практикую: после проверки ответственному пользователю отправляется письмо со ссылками, которые мешают удалению, пометка с объекта снимается. Если пользователь почистит ссылки, с него не убудет поставить объект на удаление заново.
|
|||
15
MonteCarlo
17.08.18
✎
12:07
|
(14) Да, как вариант, неплохо. Тем более я после доработки планировал создать отчет со ссылками на документы, чтобы пользователи периодически чистили. А если пользователь проигнорировал письмо или отложил и забыл про него? Объект мы сняли с пометки и открылась потенциальная возможность для ошибки (выбрать снова этот элемент).
|
|||
16
MonteCarlo
17.08.18
✎
12:08
|
(13) С папкой удаленные честно говоря не очень нравится. Это надо в каждом справочнике/документе создавать такую папку.
|
|||
17
Мимохожий Однако
17.08.18
✎
12:15
|
В последних типовых есть регламентное задание на эту тему. Может там подсмотреть?
|
|||
18
catena
17.08.18
✎
12:16
|
(15)Ну, у меня считается, что пока на объект существуют ссылки, он не числится ненужным. Если пользователь проигнорировал письмо - это зона ответственности пользователя. И потом, как ты программно определишь, действительно ли этот элемент надо удалять до упора или его жмакнули на удаление случайно?
|
|||
19
MonteCarlo
17.08.18
✎
12:27
|
(18) Ну снимать пометку удаления все равно плохо. Так мы визуально хотя бы видим, что он помечен и не выберем его, а вот если снять пометку, то пользователи будут ошибаться чаще.
|
|||
20
MonteCarlo
17.08.18
✎
12:28
|
(17) Можно поподробней? Что за регламентное задание? Если что у нас как раз почти типовая ERP 2.4.
|
|||
21
s03
17.08.18
✎
12:29
|
(19) подправьте ему наименование, добавьте что-то вроде "не использовать"
|
|||
22
catena
17.08.18
✎
12:30
|
(19)Ну, другой вариант - регистр сведений дата удаления, объект(ведущее), инициатор удаления. После проверки, если удалить не удалось, дату сдвигаем на текущую. Проверяем начиная с самых поздних.
|
|||
23
catena
17.08.18
✎
12:31
|
(21)Документу?
|
|||
24
MCh
17.08.18
✎
12:35
|
Можно завести новый регистр сведений, где накапливать список непроверяемых объектов. Но поддерживать его всегда в актуальном состоянии не надо, тк это ковыряние в типовых модулях + трата ресурсов во время работы. Обновлять его какой-то попыткой "полного" удаления всего и вся, раз в период например.
|
|||
25
MonteCarlo
17.08.18
✎
12:46
|
(24) Да, наверное это самый идеальный вариант. Я собственно уже и создал регистр, но стоял вопрос про актуальность. Действительно, лучше не поддерживать актуальность, а раз в неделю или месяц прогонять по ссылкам и чистить его. Спасибо. Наверное остановлюсь на этом варианте.
|
|||
26
Мимохожий Однако
17.08.18
✎
13:14
|
(20) Там где раздел Администрирование-Обслуживание-Регламентные операции - Удаление помеченных объектов
|
|||
27
мистер игрек
17.08.18
✎
14:01
|
(23) Катя, ты сможешь помочь в одном вопросе? Не стал заводить отдельную ветку
|
|||
28
MonteCarlo
17.08.18
✎
14:09
|
(26) Я так полагаю она у нас и работает. И что там можно отфильтровать по уже ранее проверяемым объектам?
|
|||
29
Мимохожий Однако
17.08.18
✎
14:13
|
(28) Я не знаю,не смотрел. Но раз есть велосипед, то можно его модернизировать
|
|||
30
MonteCarlo
17.08.18
✎
14:23
|
(29) Так я его и буду модернизировать. Вопрос был в том где хранить данные об объектах, которые не получается удалить, чтобы не тратить время обработки на них в следующем запуске, а так же как поддерживать актуальность этого списка. Спасибо за участие в обсуждении вопроса.
|
|||
31
Мимохожий Однако
17.08.18
✎
14:30
|
(30) Пожалуйста. Однозначно регистр сведений, в который размещаешь объекты, которые не удалены. Но надо периодически очищать этот регистр, если цикл удаления по остальным объектам пройден.
|
|||
32
echo77
17.08.18
✎
16:20
|
(0) Поиск ссылок на помеченные на удаление по частям пробовали делать?
|
|||
33
MonteCarlo
17.08.18
✎
16:40
|
(32) Ну тогда придется где-то фиксировать какую часть уже проверяли и где-то ее записывать, и начинать в следующий раз с другой части. Вопрос опять же сводится к тому, что где-то нужно хранить фильтр.
|
|||
34
Eiffil123
17.08.18
✎
16:49
|
делаешь копию базы, там удаляешь всё, что можно. Далее, в рабочей базе снимаешь пометку удаления с элементов, которые не удалились в копии (их можно в справочнике переместить в папку Архив - тут по каждому справочнику индивидуально).
|
|||
35
Eiffil123
17.08.18
✎
18:02
|
И в продолжение моего предложения - можно в рабочее время переместить в папку "Архив" помеченные на удаление объекты. И сделать обработку, которая проверяет ссылки на помеченные объекты - если ссылки в документах или справочниках (без пометки удаления) или в регистрах с регистратором, тогда снимет пометку удаления. Тогда для ночного задания будет гораздо меньше объектов для удаления.
|
|||
36
Serg_1960
17.08.18
✎
20:14
|
(0) Если Вам ночи мало (что само по себе крайне удивительно) - то можно прихватить и день - РИБ; отдельный узел, без юзверей, только для удаления помеченных и обмен до и после удаления.
Но лучше Вам разобраться почему у вас база тормозит на больших объёмах. Я знаю почему, но лучше Вам самим разобраться. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |