Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Удаление помеченных

Удаление помеченных
Я
   MonteCarlo
 
17.08.18 - 11:38
Уважаемое сообщество. Помогите принять решение. У нас есть проблема, ночью выполняется регламент по физическому удалению объектов, помеченных на удаление. База большая, помеченных очень много и они не удаляются из-за того, что есть ссылки в регистрах или документах. Утром перед началом рабочего дня регламент завершается принудительно. Таким образом новые помеченные на удаление объекты не могут удалиться из-за того, что до них просто не доходит очередь. Встала задача фильтровать поиск ссылок на объект по тем объектам, которые были уже проверены в прошлый раз и по ним есть ссылки. Какие у меня есть идеи. Нужно обязательно вести где-то список объектов, которые имеют ссылки и их не проверять. Т.е. в типовую обработку проверку внести изменения. Но вот где этот список вести? Файл мне не очень нравится. Регистр сведений можно или внешних источник данных. В регистром работа будет быстрее, а внешний источник не будет создавать сам по себе ссылку на этот же объект. Но в любом случае нужно предусмотреть вариант, когда пользователь избавляется от ссылки, тогда нужно оперативно вносить изменения в эту таблицу и удалять из нее этот объект. Через подписку конечно можно все это сделать, но вот вопрос как быть с регистрами. Допустим на документы и справочники я могу подписку сделать, а вот как отработать вариант, когда из независимого регистра сведений удаляется запись и в ней была ссылка на удаляемый объект, как отследить и удалить во внешнем источнике это событие? И не нагрузит ли это сильно систему, постоянно обращаться во внешний источник в процессе оперативной работы?
В общем если у кого-то были подобные задачи или есть у кого мысли, делитесь, буду признателен.
 
 
   butterbean
 
1 - 17.08.18 - 11:41
делаешь в регистре измерение ведущим и все, записи сами удалятся при удалении объекта-измерения
   s03
 
2 - 17.08.18 - 11:41
А если элементы справочников, которые нельзя удалить переместить в для этого созданную папку "Удаленные" и снять пометку удаления?
   MonteCarlo
 
3 - 17.08.18 - 11:42
(1) А если уже есть регистры (много) где это измерение не ведущее и менять не особо хочется? По сути это все измерения надо делать ведущими.
   MonteCarlo
 
4 - 17.08.18 - 11:42
(2) Не понял. Зачем?
   MonteCarlo
 
5 - 17.08.18 - 11:43
(2) Смысл то в том, чтобы физически удалить их из базы.
   butterbean
 
6 - 17.08.18 - 11:44
(3) это я про новый регистр, в который будешь писать неудаляемые объекты? те которые система даже не будет пытаться удалить
   butterbean
 
7 - 17.08.18 - 11:44
(6+) ?=,
   s03
 
8 - 17.08.18 - 11:44
(4) "Встала задача фильтровать поиск ссылок на объект по тем объектам, которые были уже проверены в прошлый раз и по ним есть ссылки" - вот и отфильтруете их. и в следующий раз они проверяться уже и не будут.

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

Но лучше Вам разобраться почему у вас база тормозит на больших объёмах. Я знаю почему, но лучше Вам самим разобраться.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует