Удаление помеченных объектов с отображением иерархии ссылок (с возможностью немонопольного удаления и быстрой очистки регистров сведений)


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

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

Обработка является универсальной и работает во всех конфигурациях на платформе 8.1, а также в конфигурациях на платформе 8.2 в режиме толстого клиента.

Имеется реальный опыт применения обработки в масштабах промышленного предприятия, где за два рабочих дня было удалено  ~10000 объектов (~70 различных справочников и документов), анализ возможности удаления которых стандартными средствами потребовал бы неопределенного времени (+ написание обработок для зачистки регистров сведений).

P.S. Старый скриншот оставил, так как в комментариях имеется ссылка на его содержание.

Преимущества и отличия данной обработки от встроенной:

  1. Отображение иерархии ссылок объектов (см. скриншот).
  2. Возможность удалять объекты не монопольно.
  3. Возможность отбора по метаданным.
  4. Возможность отбора по дате документов.
  5. Возможность очистки неподчиненных регистров сведений.
  6. Возможность пометки «зависимых» объектов на удаление.
  7. Возможность просмотреть иерархию ссылок на непомеченные на удаление объекты (например, удаляемый объект ссылается на непомеченную на удаление номенклатуру. В иерархии ссылок будут отображены все документы, в которых встречается данная номенклатура. Таким образом, можно быстро оценить, к чему приведет пометка на удаление номенклатуры).

Я крайне не рекомендую удалять объекты не монопольно, если есть реальная возможность удалить объекты штатными средствами.

В первую очередь данная обработка полезна при анализе возможности удаления объектов и подготовке базы к удалению помеченных объектов в монопольном режиме (удаление записей регистров сведений, пометка на удаление подчиненных объектов).

Причины скачать:

  1. Быстрый и наглядный анализ возможности удаления объектов (что подтверждено опытом многих пользователей).
  2. Возможность отбора по метаданным и датам документов для анализа возможности удаления только тех объектов, которые Вас интересуют в данный момент.
  3. Простейшая очистка неподчиненных регистров сведений в один клик (например, версий объектов).
  4. Возможность групповой пометки на удаление объектов, из-за которых невозможно удаление объекта.
  5. Возможность открытия любого объекта из дерева, в том числе и записей неподчиненных регистров сведений (открывается форма списка по умолчанию, отфильтрованная по соответствующей записи).
  6. Возможность сформировать дерево объектов с анализом ссылок не только на помеченные на удаление объекты.
  7. Опыт эксплуатации более 400 пользователей бесплатной версии и ни единого комментария о найденных ошибках, только положительные отзывы.
  8. Успешный опыт применения данной обработки в масштабах крупного промышленного предприятия (4200+ работников)  для обслуживания нескольких информационных баз (ЗиК, УПП, Документооборот).
  9. Открытый код.
  10. Возможность использования обработки для регламентной очистки информационных баз от помеченных на удаление объектов (требуется доработка конфигурации клиента).

С 18.08.2024 публикация переведена из платных в условно бесплатные (покупка за $m), поэтому счетчик скачиваний обнулился.

50 Comments

  1. iov

    (0) Полезно

    Reply
  2. Jetoo

    Каково количество уровней вложенности?

    Reply
  3. TheGrr

    (2) jetoo, уровень вложенности не ограничен. Существует лишь условие, что один объект должен присутствовать в ветке один раз (иначе зациклится).

    Но обработка формирует дерево в двух режимах:

    1. Анализируются ссылки только на помеченные на удаление объекты.

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

    Reply
  4. TheGrr

    удалено.

    Reply
  5. front11

    Особенности и отличия данной обработки от встроенной:

    Отображение иерархии ссылок объектов.

    Возможность удалять объекты не монопольно.

    Возможность отбора по метаданным.

    Возможность очистки неподчиненных регистров сведений.

    Возможность пометки объектов на удаление.

    Возможность просмотреть иерархию ссылок на непомеченные на удаление объекты (например, удаляемый объект ссылается на непомеченную на удаление номенклатуру. В иерархии ссылок будут отображены все документы, в которых встречается данная номенклатура. Таким образом, можно быстро оценить, к чему приведет пометка на удаление номенклатуры).

    Столько информативности, спасибо!

    Reply
  6. ryabov_d

    Осталось только объединить эту обработку с обработкой по поиску дублей и замене значений)

    Reply
  7. TheGrr

    (6) ryabov_d, вы правы. Поиском и заменой значений много дублей пришлось заменить 🙂 Но для этого в стандартный поиск и замену значений добавил подбор. Если интересно, можете глянуть: Ссылка

    Reply
  8. ryabov_d

    (7)

    Да, полезное добавление. Но я имел ввиду удаление второго значения после объединения дублей.

    Reply
  9. latrium

    Вот это полезная вещь. Спасибо огромное

    Reply
  10. romansun

    вот чем мне всегда импонируют такие вещи — просто, наглядно и со вкусом. Без миллиона разных кнопок, закладок и режимов.

    ссылку на такую работу не стыдно кинуть грамотному заказчику и не потребуется еще писать ему толстенное «руководство по эксплуатации»

    пасибо )

    Reply
  11. TheGrr

    (10) romansun, спасибо за спасибо 🙂 Приятно видеть лестные отзывы и отсутствие сообщений об обнаруженных багах 😀

    Reply
  12. Kamikadze

    не пробовал, но судя по описанию затраты времени приличные. за это и плюс

    Reply
  13. inga75

    Очень необходимо, особенно когда много пользователей

    Reply
  14. yuraos

    (3)

    Респект и уважение автору и единомышленнику!

    У меня есть аналогичная разработка, но для 1С-77.

    Замечание насчет уровня вложенности — наверное следует его опционально ограничивать,

    иначе на построение дерева ссылок может уйти много времени.

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

    Если ограничения превышены — рекурсивный поиск прекращается.

    Соответствующие строки выделяются в дереве ссылок красным цветом и не могут быть удалены.

    Пара вопросов:

    1) При построении дерева ссылок реально используется защита от зацикливания или

    при наличии рефлексивных ссылок придется прерывать обработку насильственно?

    2) Можно ли открывать объекты при клике в дереве (и выполнять прочие действия, например, пометить объект на удаление)?

    В том числе при клике по строке сответствующей записи регистра?

    В последнем случае было бы полезно открывать список записей регистра с активизацией нужной строки?

    Reply
  15. TheGrr

    (15) yuraos,

    1) Защита от зацикливания присутствует, в предыдущих комментариях я об этом писал.

    2) Открывать объекты можно. Если это запись РС, то будет открыта дефолтная форма списка, отфильтрованная по соответствующей записи.

    Пометить на удаление отмеченные объекты или же удалить записи неподчиненных РС также можно (это в подменю «Дополнительно»).

    По поводу ограничения уровня вложенности объектов. Для ускорения построения дерева поиск ссылок выполняется один раз в самом начале, при этом есть два режима поиска ссылок (в предыдущих комментариях они описаны). Соответственно ограничить уровень вложенности на этапе поиска ссылок не представляется возможным (без ущерба для быстродействия), так как неизвестно где в дереве окажется тот или иной объект.

    Reply
  16. balgarin

    классная вещь, удобнее чем штатная

    Reply
  17. zavyzka

    Штатная тоже не особо напрягает.

    Reply
  18. TheGrr

    (18) zavyzka, отличия от штатной очевидны в плане удобства. И когда речь идет о сотнях и тысячах помеченных на удаление объектов, то анализировать возможность удаления данной обработкой на порядок удобнее, чем скакать по списку объектов штатной обработки.

    Reply
  19. arjuna

    Да, таких нужных мелочей не хватало в стандартной обработке.

    Reply
  20. Lena_Rich

    Спасибо за обработку — чудная штучка! НАГЛЯДНО. Изящная работа. Автору респект.

    Reply
  21. KliMich

    Спасибо! Намного лучше, чем стантартная

    Reply
  22. Гость

    посмотрим, проверим..

    Reply
  23. dtitov

    Очень достойно. Автору респект. С удовольствием плюсую!!!

    Reply
  24. dandrontiy

    А с чем связано ограничение, что если объект встретится два раза, то обработка зациклится ?

    это написано тут: (3) ?

    Вообще тема очень полезная и реализация судя по скриншоту достойная.

    Спасибо большое!

    Reply
  25. TheGrr

    (25) dandrontiy, приведу пример. Есть номенклатура, у которой задана единица хранения остатков. У единицы хранения остатков в свою очередь владельцем будет эта номенклатура. В дереве это будет выглядеть следующим образом:

    Справочники

    Номенклатура

    Аптечка медицинская

    шт

    Если же не вводить ограничение, то получится зацикливание ветки дерева (из-за того, что единица измерения также ссылается на номенклатуру-владельца):

    Справочники

    Номенклатура

    Аптечка медицинская

    шт

    Аптечка медицинская

    шт

    Аптечка медицинская

    ……

    Reply
  26. _LEV_

    Поддерживаю — «Осталось только объединить эту обработку с обработкой по поиску дублей и замене значений) »

    Разработка несомненно полезная. Спасибо.

    Reply
  27. AB3012

    вот чем мне всегда импонируют такие вещи — просто, наглядно и со вкусом. Без миллиона разных кнопок, закладок и режимов.

    ссылку на такую работу не стыдно кинуть грамотному заказчику и не потребуется еще писать ему толстенное «руководство по эксплуатации» ПРИСОЕДЕНЯЮСЬ КО ВСЕМ ПОЛОЖИТЕЛЬНЫМ ОТЗЫВАМ ОЧЕНЬ ПОЛЕЗНАЯ ШТУКА…

    Reply
  28. Старый

    Очень полезная штука

    Reply
  29. ulili

    Спасибо очень удобный инструмент!

    Reply
  30. GreenFox

    Спасибо попробую применить в своих разработках.

    Reply
  31. graphbuh

    Интересно, а почему вы не сделали данную обработку платной? На текущий момент вполне оригинальный продукт.

    Reply
  32. TheGrr

    (32) graphbuh, да была мысль сделать какой-то премиум функционал. Но не придумал какой XD А в виде «as is» Вы бы заплатили? 🙂

    Reply
  33. TheGrr

    (32) graphbuh, да и к тому же плюсы не многие ставят, куда уж платить. А хочется, чтобы обработкой пользовались. Как вариант, можно оставить электронные кошельки и посмотреть на добровольную финансовую благодарность.

    Reply
  34. graphbuh

    Я да. У меня была проблема — быстро поудалять объекты в 1С документооборот. А там как раз засада с регистрами.

    И я наклепал подобную вашей штуку где то часов за шесть, увидел что не успеваю убрать все баги и поступил как все — тупой запрос и удаление всего и вся. Перед этим как раз искал на инфостарте и в принципе 1000-1500 руб готов был выложить за удобный инструмент. Т.е. как раз принадлежу к числу внедренцев которые покупают чужие разработки если это экономически выгодно. А вы убили прогресс на корню — т.к. если я сейчас просто выложу более убогий велосипед будут пинать. А если доработаю и выложу платный — запинают 🙂 Поэтому будет лучше если вы учтете все замечания и сделаете в итоге продукт платным. И в принципе это честно. Т.к. те кто плюсовал скачали его бесплатно. Было бы неплохо для всех нас, если бы это превратилось в тенденцию.

    Reply
  35. graphbuh

    Мне кажется добровольная финансовая благодарность это из области фантастики (сужу по себе). С одной стороны разработчик, в момент когда он творит, не должен думать о бабках и о времени. И часто хороший программист, не очень хороший менеджер и продавец. Плюс зачастую разработчик не может объективно оценить работу, это же его творение. Мне кажется для продвижения и полноценной обратной связи (не все же скажут разработчику, что они думают о продукте) нужен на сайте менедежер, который будет отбирать разработки, связываться с автором и , с его согласия , продвигать их. Вообще монетизация убила не один сайт, поэтому необходимо чтобы изменилась какая то критическая масса людей, которая поставляет разработки. Т.е. какой то свод правил, в котором будет пункт, что возможность делать свою работу качественно в рыночных условиях предполагает адекватную оплату. Если ты продал по демпинговой цене работу, ты подрываешь возможности качественного оказания услуг другими участниками.

    Reply
  36. TheGrr

    (36) graphbuh, огромное спасибо за ценные мысли и рассуждения на тему 🙂 Думаю, платной обработке быть. Главное, задать пинка в нужном направлении, что Вам, несомненно, удалось.

    Reply
  37. _LEV_

    Мне кажется добровольная финансовая благодарность это из области фантастики (сужу по себе). С одной стороны разработчик, в момент когда он творит, не должен думать о бабках и о времени. И часто хороший программист, не очень хороший менеджер и продавец. Плюс зачастую разработчик не может объективно оценить работу, это же его творение. Мне кажется для продвижения и полноценной обратной связи (не все же скажут разработчику, что они думают о продукте) нужен на сайте менедежер, который будет отбирать разработки, связываться с автором и , с его согласия , продвигать их. Вообще монетизация убила не один сайт, поэтому необходимо чтобы изменилась какая то критическая масса людей, которая поставляет разработки. Т.е. какой то свод правил, в котором будет пункт, что возможность делать свою работу качественно в рыночных условиях предполагает адекватную оплату. Если ты продал по демпинговой цене работу, ты подрываешь возможности качественного оказания услуг другими участниками.

    Полностью согласен — за хорошую работу нужно брать деньги.

    Reply
  38. EmpireSer

    (39) _LEV_, добровольная финансовая благодарность существует, но не в России, а в США и в Европе.

    Например создатель протокола torrent и первого bittorrent клиента — не работает и его семья хорошо живёт на добровольные «благодарности» за его работу!

    Reply
  39. yuraos

    (15)

    ЗЫ

    это когда коллега платно стало?

    я то еще бесплатно скачал (за 1SM).

    Что с тех времен что-то кардинально улутшилось в обработке ?



    «портировать» штоли на 8.х свою аналогичную разработку под 7.7

    в качестве альтернативы

    😉

    Reply
  40. TheGrr

    (42) yuraos, добавился отбор по дате документов, немного поправлено оформление 🙂 В принципе, обработка получилась удобная и стоящая, поэтому прошу за нее денег. Ну и, что немаловажно, их платят. Поэтому делать бесплатной ближайшее время не планирую.

    По поводу портирования — я только «За». Приветствую здоровую конкуренцию 😉

    Reply
  41. sip

    Для 8.3 сделаете?

    Reply
  42. xten

    (Заказ № 53340 от 04.02.2014 22:18) Вроде бы дату обновили. Если есть обновление вышлете на мыло? Спасибо.

    Reply
  43. xten

    ой , сори, перепутал-с

    Reply
  44. CaptainMorgan

    Классная обработка. Возможно даже кому-то нужная.

    Но мне не понятно почему надо взять существующую типовую обработку, приделать бантик и сразу бежать на базар.

    Reply
  45. TheGrr

    (47) CaptainMorgan, видать вы не сталкивались с необходимостью удаления десятков тысяч объектов и необходимостью быстрого анализа возможности удаления данных объектов. Плюс возможности быстрой очистки неподчиненных РС и пометки на удаление зависимых объектов.

    Обработка экономит время, а соответственно и деньги. Если считаете, что с помощью данного инструмента Вы не сэкономите больше 1500 руб. (в чем я лично сомневаюсь, если стоит задача регулярного удаления объектов), то пользуйтесь стандартными средствами удаления объектов.

    Reply
  46. TheGrr

    (44) sip, так по идее должна работать в толстом клиенте 8.3. Извините, что долго отвечал, не увидел комментарий. Т.е. данную обработку можно запустить даже на базах, которые полностью написаны на управляемых формах. Достаточно запустить базу в режиме толстого клиента. Переделку под управляемые формы посчитал нецелесообразной 🙂 Сорри.

    Reply
  47. katenok86

    Здравствуйте! Можно ли вывести на печать дерево удаляемых объектов с ссылками а объекты, препятствующими удалению (например, прав. кнопкой — вывести список)?

    Reply
  48. TheGrr

    (50) katenok86, это обычное табличное поле. Все стандартные функции доступны. В том числе и вывод в табличный документ

    Reply
  49. katenok86

    Здравствуйте. Нашла у себя на сервере Вашу обработку. Качала вроде в 2012 году. Только она выдает ошибку на объекты, если имя объекта имеет более 1 первой заглавной буквы. Ошибка, к примеру:

    {ПланОбмена.ФИБОбменБухгалтерскимиСправками.МодульМенеджера(777,32)}: Переменная не определена (ФИБОбменБухгалтерскимиСправками)

    ВерсииФормата.Вставить(«1.0», <<?>>ФИБОбменБухгалтерскимиСправками);

    Подскажите, в текущей версии обработки ошибка исправлена?

    Reply
  50. TheGrr

    (52) katenok86, так это ошибка не в обработке же. У вас в коде ошибка. Выполните синтаксический контроль модулей, он укажет на проблемное место (хотя его и так видно: в модуле менеджера плана обмена ФИБОбменБухгалтерскимиСправками перейдите к 777 строке, там используется ранее не объявленная переменная).

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *