gifts2017

Удаление элементов справочников, не участвующих в движениях.

Опубликовал Виталий Злобин (igwb) в раздел Администрирование - Чистка базы

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

 

Часто есть необходимость очистить справочник, например КОНТРАГЕНТЫ или НОМЕНКЛАТУРА от ненужного мусора. Но проблема в том, что узнать, какие элементы участвуют в движениях, а какие нет - весьма проблематично.

 

Данная обработка решает эту проблему в три "этапа":

1. указывается тип справочника (или, при желании, конкретный элемент);

2. действия над ним (непосредственное удаление или пометка).

3. "Выполнить".

Enjoy...

 

Релизы:

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

2.1.0 - Введен автоматический и ручной режим обработки объектов. Изменен интерфейс. Исправлены мелкие баги.

2.2.1 - Добавлен механизм поиска движений в бухгалтерских регистрах. Исправлены, некоторые, баги в интерфейсе.

 

 

Надеюсь, многим эта обработка будет весьма полезна. 

"Да здравствует чистота и порядок!  - УРА, товарищи!" Wink

 

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

Наименование Файл Версия Размер Кол. Скачив.
Файл внешней обработки.
.epf 21,51Kb
27.08.14
315
.epf 21,51Kb 315 Скачать

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение

Комментарии

1. Lara.Builova 14.09.11 20:51
Хорошая штучка. Но мне в таких обычно не хватает еще одной опции - снять пометки на удаление.
2. Alex Misanets (Misanets) 14.09.11 23:15
Однозначно плюс. Как-то раз надо было почистить номенклатуру, пришлось помечать все на удаление, удалять, потом снимать с удаления. Писать тогда ничего не хотел, а вот если бы попалась Ваша обработка сэкономил бы себе время.
3. Владимир Денисов (den_vladimir) 15.09.11 14:11
Весьма полезная обработка. Щас глянем!
4. Владимир Денисов (den_vladimir) 15.09.11 14:58
Начал чистить статьи затрат

{Форма.Форма.Форма(209)}: Поле объекта не обнаружено (ВидыНоменклатуры)
ВидН = Справочники.ВидыНоменклатуры.НайтиПоКоду("000000001");
5. Владимир Денисов (den_vladimir) 15.09.11 15:02
Оговорюсь - делал в БП 2.0
6. Евгений Нестеров (Danilnk) 15.09.11 16:18
7. Алексей Ситников (SiAl) 15.09.11 18:12
(0) Плюс поставил авансом. Советую сделать выбор не одного справочника, а всех справочников конфигурации с помощью списка с пометками. Код не смотрел, потому вопросы.
Предопределенные игнорируются?
Как решена проблема при непосредственном удалении и существовании ссылки на элемент в реквизитах других объектов?
Как решен в вопрос с имеющемися RLS?
8. Виталий Злобин (igwb) 15.09.11 18:49
den_vladimir, Данную ошибку исправил. На днях обновлю, после тестирования.

SiAl, Отвечу поэтапно:

1. При непосредственном удалении, как и при пометке на удаление, проверяется ссылочная целостность объектов. Поэтому, никаких казусов с потерей объектов быть не может.
2. Если, посредством RLS, будут стоять запреты на какие-либо действия над объектом, то вы попросту не совершите этих действий. Будут выдаваться ошибки по запрету. Вот и все.
3. А стоит ли чистить все объекты по списку? Даже, чистка только одного вида справочника занимает колосальную кучу внутренней памяти и времени. А представьте, что будет, если выбор нескольких справочников вызовет, банально, просто закрытие программы?... Ну, если очень надо, то могу добавить эту возможность. но целесообразно ли??? Тем более, для каждого вида справочника у меня может быть выбрана отдельная группа элементов. А в списке это попросту будет невероятно сложно сделать. В общем, думаю, овчинка выделки не будет стоить из-за сложности такой обработки.

Misanets, Специально для Вас, включу возможность снятия с пометки удаления объектов, участвующих в движении. Сразу после тестирования, добавлю обновленную обработку. Следите за релизами. :D
9. Алексей Ситников (SiAl) 15.09.11 21:51
igwb пишет:
2. Если, посредством RLS, будут стоять запреты на какие-либо действия над объектом, то вы попросту не совершите этих действий. Будут выдаваться ошибки по запрету. Вот и все.

Нет, я про другое. Что если ссылка на объект в реквизите элемента, который не доступен пользователю. То есть объект удалится, а ссылка будет битая? Значит надо использовать полные права?
10. Ксения Яценко (Holly-khv) 16.09.11 10:41
Хорошая обработка. Как раз руки не доходили до справочников.
Ушла чистить...
11. cbr900 (cbr900) 16.09.11 12:44
Еще неплохо было бы получить ТЧ с предварительным списком удаляемых элементов
12. Брест Беларусь (zhleonid8) 18.09.11 17:13
респект от бухгалтера!!!!!удивлен и обрадован
13. Виталий Злобин (igwb) 19.09.11 11:58
zhleonid8. - Благодарю.

Lara.Builova - Ваш заказ выполнен (теперь и убирает пометки на удаления с объектов, имеющих движения) :-)

cbr900 - Можно сделать, но часто список объектов настолько велик, что каждый рассматривать не будет нужны. Если очень - очень это нужно, то сигнальте - добавлю.

Misanets - спасибо за коммент.
14. cbr900 (cbr900) 19.09.11 12:01
Про ТЧ предварительных результатов.
Это понятно, что она может быть сильно большой и т.д. и т.д., НО можно ведь выводить ее по флажку)) Когда надо выводим, когда не надо - не выводим
15. Денис Стюров (pitbul) 21.09.11 20:11
Код
{Форма.Форма.Форма(127)}: Ошибка при вызове метода контекста (Выполнить)
         Результат = Запрос.Выполнить().Выбрать();
по причине:

по причине:
{(6, 32)}: Ожидается выражение ")"
И ЦеныАТТ.Период > ДАТАВРЕМЯ(2 <<?>>011, 01, 01, 0, 0, 0)
Показать полностью

При нажатии кнопки выполнить вылетает эта ошибка :( как её исправить?
17. Алексей Ситников (SiAl) 22.09.11 15:16
(15) pitbul, пробел надо убрать.
18. Виталий Злобин (igwb) 23.09.11 11:21
pitbul. Пробел? ... Где?

e.kogan. Хорошо, когда есть выбор. - Правда? :-)

pitbul. Сразу, после очередного обновления, эту ошибку уберу.

cbr900. На данный момент реализую эту возможность. Сразу после обновления будет доступно два механизма обработки: автоматический и ручной (Ваш вариант).

Спасибо за комментарии!
19. Денис Стюров (pitbul) 23.09.11 18:24
SiAl пишет:
пробел надо убрать.

а где именно убрать пробел?
20. Алексей Ситников (SiAl) 23.09.11 23:24
(19) pitbul, вместо
И ЦеныАТТ.Период > ДАТАВРЕМЯ(2 011, 01, 01, 0, 0, 0)

надо
И ЦеныАТТ.Период > ДАТАВРЕМЯ(2011, 01, 01, 0, 0, 0)
21. Иван (Sairys) 26.09.11 23:49
Спасибо, чистка базы не повредит
22. Олег Крапивный (powerpc) 27.09.11 10:15
ИБ 1С КОРП 2.0. Данной обработкой пометил неиспользуемые элементы Контрагентов на удаление. Снял с используемых пометки на удаление. Поискал ссылки на одного из помеченных. Расстроился. Выложил скриншот. Имхо, стандартный способ - пометить, удалить, снять пометки - надежен как танк.
Прикрепленные файлы:
23. Виталий Злобин (igwb) 27.09.11 11:05
powerpc. Обработка выполняет проверку на движение по регистрам, а не на наличие объекта в документе. Об этом свидетельствует и название самой обработки. Если Вам нужна такая, дополнительная, функция, то можно дописать. Или я Вас неправильно понял: существовали именно движения по регистрам? На скрин-шоте этого не видно.
24. Михаил Кишенков (mihas1001) 27.09.11 19:09
Классная оброботочка, ждем от автора новых!
25. Олег Крапивный (powerpc) 27.09.11 23:55
(23) igwb, проверил. Есть движения. И в Дт-Кт. И в оборотно-сальдовой ведомости по счету 62.01 есть обороты. Могу скриншоты выложить. Надо ?
26. Любовь (alex_fursov) 28.09.11 09:15
Полезная обработка! Спасибо.
27. Виталий Злобин (igwb) 29.09.11 12:19
powerpc. Добавил проверку движений в бухгалтерских регистрах. Как раз для документов, которые двигают исключительно эти регистры: Операция, Корректировка, движения по бух. регистрам.

Спасибо, за тестирование.
28. Эльвира Смирнова (la1512) 29.09.11 12:35
29. Олег Крапивный (powerpc) 29.09.11 16:43
(27) igwb, спасибо Вам большое.
30. Ян Войцик (Yan-1986@mail.ru) 05.10.11 18:54
Полезно, спасибо огромное!
31. Олег Шалимов (CaSH_2004) 06.10.11 02:53
(18)
igwb пишет:
e.kogan. Хорошо, когда есть выбор. - Правда? :-)

Да если новое улучшает результат предыдущих, а если оно явно слабее (я про список нескольких видов и элементов у каждого вида - это явно уже реализовано судя по скриншотам) то это удручает. Получается что все должны наступить на одни и те же грабли - пройти одну дорогу, не пользуясь наработками других, не изучая накопленный опыт. Работа ради работы называется "в холостую".
Чувствуется гордость автора за то что он смог создать аналог! Интересный подход :)
Такие ресурсы как Инфостарт специально созданы чтобы делится, учится, не работать "в холостую" каждый сам по себе - а вы копипастите. Даже если сами написали, то какой смысл выкладывать? Чтобы показать что вы тоже так можете? Поверим без подтверждений! И так уже по 6-7 однотипных обработок качаеш и изучаеш все чтобы понять какая-же лучше. И приходиш к мнению что нужно самому все дописывать т.к. всем лишь бы сделать что-то да выложить. А как насчет улучшить, если это "что-то" уже имеется, но там чего-то на ваш взгляд нехватает? При таком подходе не пришлось бы вздыхать глядя на свежие обработки: "ну вот изобритен уже 10-й вариант велосипеда - тепрь в сиреневый горошек", а радостно говорил - "наконец они новую фишку прикрутили - мне как раз ее не хватало!"
SuperSpade; +1 Ответить
32. Виталий Злобин (igwb) 06.10.11 10:25
CaSH_2004. Чего воду льём?.. Не нравится - не пользуйтесь. А, если чего-то не хватает, то конкретно, по пунктикам... И обоснуйте необходимость каждого. Если читали внимательно, то я дорабатываю свою обработку в соответствии с пожеланиями.

И большая просьба:
Комментарии типа: "копипастите"... - не кидайте без обоснований. Ок?!
33. Олег Шалимов (CaSH_2004) 06.10.11 12:04
igwb пишет:

CaSH_2004. Чего воду льём?.. Не нравится - не пользуйтесь. А, если чего-то не хватает, то конкретно, по пунктикам... И обоснуйте необходимость каждого. Если читали внимательно, то я дорабатываю свою обработку в соответствии с пожеланиями.

И большая просьба:
Комментарии типа: "копипастите"... - не кидайте без обоснований. Ок?!

А чего уточнять - все равно не поймете. ТО что дорабатываеш - молодец. "Копипасте" можно заменить на "изобретать вилосипед" если это звучит приятнее. А вообще все изложено, но явно не понято, засим давайте не ругаться а предположим что чужое мнение нас не касается, т.к. у нас на все свое мнение, и оно естественно самое правильное. Ок?!
34. Виталий Злобин (igwb) 06.10.11 14:07
(33) CaSH_2004,
А вообще все изложено, но явно не понято, засим давайте не ругаться а предположим что чужое мнение нас не касается, т.к. у нас на все свое мнение, и оно естественно самое правильное. Ок?!
- это Вы о себе, видимо.

Мужик, рейтинг комментами зарабатываешь?...
35. Олег Шалимов (CaSH_2004) 06.10.11 14:59
Кстати вопрос рейтинга очень интересный. Из чего складывается можно увидеть из профиля по ссылке, так что вопрос явно риторический. Мой понятно из чего сложился: 69+70+16=155 так написано в моем профиле
А вот почему у тебя при сумме разработок 11+53+19=83 - так должно быть, а по факту 19. Странно как-то
Я не меряюсь рейтингами, но интересно почему у меня не сходится? Есть какие мысли?
Может тут пояснение: http://forum.infostart.ru/forum17/topic41628/, недавно нашел буду читать.
36. Igor Nishev (redkiller3) 07.10.11 08:38
Довольно удобная обработка, немного переписал аналогию для переноса элементов в другую группу.
37. Сергей C (a31) 07.10.11 19:33
Misanets пишет:
Однозначно плюс. Как-то раз надо было почистить номенклатуру, пришлось помечать все на удаление, удалять, потом снимать с удаления. Писать тогда ничего не хотел, а вот если бы попалась Ваша обработка сэкономил бы себе время.

Не понял предназначения. У меня все справочники в по папкам разложены, когда нужно подобное, пометил на удаление, удалил, то, что без движения удалилось, снял пометку удаления на остальном. Все. Зачем еще что-то? Может я что-то упустил? Но все равно спасибо за труд.
38. Сергей C (a31) 07.10.11 19:39
redkiller3 пишет:
Довольно удобная обработка, немного переписал аналогию для переноса элементов в другую группу.

Я никак не уловлю, а чем штатные переносы не устраивают? Или я что-то упускаю из вида? Или имеется ввиду групповой перенос или что еще может быть?
Взял челую группу или отдельный элемент и перенес, хотя как-то было, что групповой перенос делал, но там групповая обработка, даже встроенная справляется, что упускаю?
39. tvv (pmtvv) 07.10.11 23:58
40. Виталий Злобин (igwb) 10.10.11 09:20
a31.
Я никак не уловлю, а чем штатные переносы не устраивают? Или я что-то упускаю из вида? Или имеется ввиду групповой перенос или что еще может быть?
Взял челую группу или отдельный элемент и перенес, хотя как-то было, что групповой перенос делал, но там групповая обработка, даже встроенная справляется, что упускаю?


Читайте внимательно... Автор имел ввиду поиск неиспользуемых элементов и перенос в другую группы. Например, "УДАЛЕННЫЕ". Не плохая идея.

a31.
Не понял предназначения. У меня все справочники в по папкам разложены, когда нужно подобное, пометил на удаление, удалил, то, что без движения удалилось, снял пометку удаления на остальном. Все. Зачем еще что-то? Может я что-то упустил? Но все равно спасибо за труд.


Все дело в том, что у Вас все разложено, а во многих компаниях, в результате множественных переносов или большого количества номенклатуры, с которой работает огромное количество людей, не все разложено. И, в результате, появляется "мусор", который легко определить с помощью данной обработки.
41. olga pt (pt_olga) 10.10.11 13:31
у нас в конфигурации Договора контрагентов это документы.
В этой связи нужно дополнительное средство для очистки неиспользуемых документов. :(
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа