Поиск и удаление неиспользуемых элементов справочников

05.02.13

База данных - Чистка данных

Обработка для поиска и удаления неиспользуемых элементов справочников. Позволяет интерактивно искать и помечать на удаление неиспользуемые элементы справочников. Универсальная, работает в любой конфигурации

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ПоискНеиспользуемых82.epf
.epf 17,26Kb
709
709 Скачать (1 SM) Купить за 1 850 руб.

Обработка для поиска и удаления неиспользуемых элементов справочников. Позволяет интерактивно искать и помечать на удаление неиспользуемые элементы справочников. Для локализации поиска можно выбирать определенную группу справочника.

Неиспользуемыми считаются элементы на которые есть ссылки в регистрах сведений в ведущем измерении, в подчиненных справочниках и документах помеченных на удаление.

Внимание! При очистке большого справочника со множеством ссылок (например Номенклатура и Контрагенты) возможна нехватка памяти и свертка приложения 1С. Такие справочники лучше чистить медленно и с удовольствием - выбирая по одной группе.

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    13083    100    46    

104

Чистка данных Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 10 1С:Управление торговлей 11 Платные (руб)

Данные обработки помогут Вам легко и, главное быстро, выполнить удаление любых данных в Ваших базах 1С на платформах 8.1-8.3. Обработки помогут легко просмотреть связи ссылок в виде дерева, выбрать что удалять, а что нет, используя любые отборы. Это позволит уменьшить объем лишней и не нужной информации в справочниках и документах, планах видов характеристик и др. объектах и облегчит работу с данными пользователям и Вам. Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. (Обновление от 29.06.2023, версия 4.2)

9600 руб.

22.02.2013    139024    263    144    

434

Чистка данных Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Позволяет удалить организации из любых из информационных баз 1С на управляемых формах (БП 3.0, УТ 11, КА 2, ERP 2, ЗУП 3.0, УНФ, Розница 2.0 и пр.). Главное требование - программа должна содержать справочник "Организации". Реализован самый быстрый алгоритм непосредственного удаления объектов. Работает даже на базах большого размера. Для ускорения работы алгоритма не запускается проверка контроля ссылочной целостности. Проверку учета можно запустить отдельно с помощью дополнительной обработки. Необходимо перед удалением самостоятельно проверить базу на наличие перекрестных ссылок разных организаций в одном документе. Эту дополнительную обработку проверки перекрестных ссылок по запросу предоставляем бесплатно нашим покупателям.

3582 руб.

16.03.2015    195641    215    82    

250

Чистка данных Программист Пользователь Платформа 1С v8.3 Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Обработка позволяет удобно и выборочно удалить данные из базы 1С на управляемых формах например БП 3.0, УТ 11, КА 2, ERP, УНФ, ЗУП 3, Розница и др. Это могут быть как неиспользуемые элементы справочников, так и неактуальные организации. При этом есть возможность провести анализ пересечений документов с другими организациями и таким образом уберечься от того, что при удалении обороты по другой организации изменятся.

3350 руб.

28.11.2019    26321    62    16    

77

Чистка данных Системный администратор Программист Бухгалтер Пользователь Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Решение по удалению дублей позволяет определить связанные элементы в двух синхронизированных базах в качестве оригиналов и избежать необходимости ручного сравнения объектов в базах перед синхронизацией.

3960 руб.

27.06.2018    19285    11    3    

16

Оптовая торговля Логистика, склад и ТМЦ Чистка данных Программист Бухгалтер Пользователь Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Если вы начали работать в программном продукте Управление Торговлей, редакция 11 или Комплексная Автоматизация редакция 2 и включили механизм учёта серий, то перейти обратно в учёт без серий будет не так-то просто. Сложность заключается в том, что нужно очистить серии в табличной части документа, например, Реализация Товаров и услуг. Предлагаем алгоритм перехода на учет без серий для программного продукта УТ11. (Очистка серий.)

2400 руб.

09.04.2019    29279    43    14    

45

Чистка данных Инструментарий разработчика Системный администратор Программист Платформа 1С v8.3 Абонемент ($m)

Очередная вариативная очистка кэша 1С с помощью Исполнителя 3.0.2.2.

1 стартмани

25.10.2023    5563    5    SerVer1C    26    

23

Чистка данных Программист Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Бесплатно (free)

ВАЖНО!!! Очистку регистров накопления и регистров сведений рекомендуется делать пользователям со знанием дела и с осознанием последствий! Обработка поможет быстро очистить выбранный регистр. Делаю данную обработку в первую очередь для себя, т.к. были случаи, когда нужно было очищать регистры, а делать красиво и удобно времени не было.

06.02.2023    21021    1414    Neiron_1C    22    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. sbv2005 348 25.10.10 11:49 Сейчас в теме
2. grGogy 27.10.10 16:25 Сейчас в теме
Про подчинённые справочники автор слукавил.
Ссылка из подчинённого справочника определяет элемент в Используемые.
4. defender 360 28.10.10 09:26 Сейчас в теме
(2) Нужно снять галочку "неиспользуемые без ссылок"
5. grGogy 28.10.10 11:01 Сейчас в теме
(4) Именно со снятой галочкой.
8. defender 360 28.10.10 15:44 Сейчас в теме
(5) (7) Сорри, была ошибка, исправил, перезалил.
Спасибо
3. Lyekka 26 27.10.10 16:43 Сейчас в теме
6. Tarlich 118 28.10.10 11:55 Сейчас в теме
Однозначно + (Только надо еще проверить в действии)
7. Tarlich 118 28.10.10 12:06 Сейчас в теме
Что ставлю , что не ставлю "Неиспользуемые без ссылок" - номенклатуру у которой есть ссылка только на ед.изм всеравно ставит как используемые -((
9. rasswet 82 03.11.10 14:27 Сейчас в теме
если в регистре сведений есть измерение справочник1, заполнено элементом этого справочника. и более нигде этот элемент не встречается в базе. эта обработка покажет его как неиспользуемый?
10. defender 360 03.11.10 15:17 Сейчас в теме
(9) Покажет если это ведущее измерение
11. Abadonna 3969 03.11.10 16:02 Сейчас в теме
Берешь справочник, помечаешь ВСЕ элементы на удаление.
Делаешь стандартную "Удаление помеченных объектов"
С оставшихся в живых пометки снимаешь.
Вот и вся обработка, зато гарантия 100%, что ничего случайно не грохнешь
nicknick23; Sartr; Altair777; Alraune; +4 3 Ответить
12. defender 360 03.11.10 16:42 Сейчас в теме
(11) 1. Этой обработкой тоже 100% ничего случайно не грохнешь.
2. Элементы которые были помечены на удаление, после отмены пометки таковыми быть перестанут.
37. CaSH_2004 373 23.05.12 03:54 Сейчас в теме
(11)
Берешь справочник, помечаешь ВСЕ элементы на удаление.
Делаешь стандартную "Удаление помеченных объектов"
С оставшихся в живых пометки снимаешь.
Вот и вся обработка, зато гарантия 100%, что ничего случайно не грохнешь

Категорически не согласен - пробовал много раз, кажеться что все просто однако, мне очень странно слышать такое от уважаемого гуру 1С, т.к. есть множество подводных камней, например:
1. Предположим что в базе ОЧЕНЬ много элементов, пометка на удаление это получение объекта со всеми вытекающими, т.е. запись, а это соответственно ОЧЕНЬ долго, уверен что дольше чем просто сравнить какие ссылки и на что
2. Далее даже если 1 не верно, то после пометки нужно делать тот же самый поиск ссылок и контроль уникальности - а это таже куча времени которое мы вроде должны съэкономить, потом удаление, а потом только опять снятие пометки удаления со ВСЕХ элементов. т.е. если у нас 100 тыс. из них скажем 10 тыс. неиспользуемых, то мы гоняем запись просто так 90 тыс элементов (с подчиненными!!!) аж 2 раза!!! только ради удаления 10% - за это просто уволить нужно человека
3. Особый нюанс с подчиненными - они тоже удаляются и это арифметиеская прогрессия количества объектов
4. А что делать если базу нельзя монопольно взять? Или будем удалять, а пользователи пусть работают как могут? Вот только они не смогут.
5. Что интересно делать если в базе версионизация настроена? Куча дополнительных пустых записей что мы гоняли 90 тыс. объектов в состояния?
6. Что делать если настроено хитрое реагирование на пометку удаления объекта, а мы не в курсе т.к. база не наша или просто забыли? А действия необротимые или сложно-обратимые
7. Что делать если база РБД? Все объекты помеченные пойдут в обмен даже если их снять с пометки файл распухнет и все это будет грузиться, т.е. надо и это учитывать а если не учли? а филиалов несколько?

Это основные проблемы РЕАЛЬНО с которыми я столкнулся, и на такой вариант проблемы я бы пошел только четко зная сколько примерный % неиспользуемых, как работает база, и что: нет РБД, версионизирования, она типовая
Конечно это во многом решается ОбменДанными.Загрузка = Истина, однако запись то все равно идет, и не везде этот отсев отработает, только там где он проверяется.
Вобщем я за ювелирный подход, не надо "отрезать палец по самое горло" :) а то пациента это не обрадует
criptid; nicknick23; ketr; izofen; Istur; pahmutov; SuperSpade; defender; +8 Ответить
39. defender 360 23.05.12 10:14 Сейчас в теме
(37) CaSH_2004,
мощно задвинул, зачот :)
13. Abadonna 3969 03.11.10 16:54 Сейчас в теме
Элементы которые были помечены на удаление, после отмены пометки таковыми быть перестанут.

А и не фиг им быть помеченными, раз ссылки есть ;)
14. defender 360 03.11.10 17:00 Сейчас в теме
(13) Юзеры иногда помечают для каких-то там своих хитрых целей (как-то видел как девушка рабочие документы хранила в "корзине"). И не нужно трогать то, что не нами помечалось.
38. CaSH_2004 373 23.05.12 04:09 Сейчас в теме
(13)
А и не фиг им быть помеченными, раз ссылки есть

Чтобы разобраться зачем и где используется этот объект, и возможно заменить его на другой или просто убить в ссылке, а просто так снимать пометку я бы не советовал где не попадя без разбору
15. Abadonna 3969 03.11.10 17:34 Сейчас в теме
Разбаловал ты своих юзверей ;)
А у меня шаг влево - шаг вправо: уже на экзекуцию нарвался
16. johnrex 02.01.11 11:51 Сейчас в теме
Прекрасная разработка. Сам хотел уже писать, а тут уже всё оказывается написано до нас!

Есть один серьезный изъян, но его исправить можно одной строчкой кода.
Для подчиненных справочников это работать не будет:
строкаТипа = Строка(ТипЗнч(Стр.Данные));
Потому что для ссылки справочника строкаТипа станет, например "ЕдиницаИзмерения", а дальше по коду:
ИначеЕсли Найти(строкаТипа, "Справочник") > 0
Разумеется ничего найдено не будет и подчиненный справочник будет пропущен. Соответственно переменная должна принять значение вроде "СправочникСсылка.ЕдиницыИзменения"
Можно сделать вот так:
строкаТипа = Стр.Метаданные.ПолноеИмя();
17. xavi 352 21.01.11 15:05 Сейчас в теме
(16) Если применить это исправление, тогда в строке

ИначеЕсли Найти(строкаТипа, "Регистр сведений") > 0 Тогда

нужно убрать пробел:

ИначеЕсли Найти(строкаТипа, "РегистрСведений") > 0 Тогда
19. provnick 29.09.11 21:27 Сейчас в теме
Интересно, в бухгалтерии заработало, а в УТ, по контрагентам работает, а по номенклатуре сработало только после изменений замеченных в (16) и (17), и не удаляет найденное, а только помечает, и так же в 8.2, соответственно после конвертации так же работает. И если возможно, желательно, не только наименование, но код, чтобы отображался.Плюс.
20. defender 360 30.09.11 17:04 Сейчас в теме
(16)(17)(19) Доработал поиск, сконвертировал под 8.2. Спасибо
18. kauksi 217 01.07.11 08:52 Сейчас в теме
РАБОТАЕТ! в отличие от многих других обработок!
21. kozai05 14.10.11 17:07 Сейчас в теме
Отлично, а а то у соседнего аналога почему-то не было в списке справочника "Контрагенты".
22. kozai05 14.10.11 17:30 Сейчас в теме
Проверил, выбрал справочник контрагентов. Убрал галочку "Неиспользуемые без ссылок". Обработка вывела мне все в используемые. Что-то не пойму, может это не то что мне нужно? У меня стоит цель очистить справочник от контрагентов, которые не участвую ни в каких остатках или оборотах. Но ведь у них хоть как будет ссылка с договора или регистра контактной информации, это в обработке предусмотрено? По какому принципу работает этот крыжик?
23. defender 360 14.10.11 17:40 Сейчас в теме
Если крыжик установлен - в неиспользуемые выбираются те у которых нет вообще никаких ссылок.
Крыжик снят - признаком "используемости" считается только участие в документах и пр. кроме подчиненных справочников и регистров движений
задумывалось именно так.
24. kozai05 14.10.11 17:53 Сейчас в теме
Понятно, значит выходит что с контрагентами поработать правильно не получится? У всех ведь есть, хоть даже пустые, но записи в регистре сведений контактной информации.
Выходит примерно такая картина:
http://s017.radikal.ru/i409/1110/b0/2a5b6914daad.jpg
53. fokin 16.10.14 08:38 Сейчас в теме
скажите, а как решается вопрос в (24), у меня просто такая же проблема - ищу решение, зазря качать не хочется
25. yushmakovmv 25.10.11 10:24 Сейчас в теме
26. Najly 61 14.11.11 11:51 Сейчас в теме
Ваша обработка очень помогла, спасибо большое. Но пришлось поправить три строчки:
1) На условие Найти(строкаТипа, "РегистрСведений") > 0 РегистрыСведений не отлавливались, предполагаю, что там опечатка в какой-то из букв р,е,с,т,н. Переписала заново в русской раскладке, все заработало.
2) Когда вы ищете по наименованию метаданных, тип на которой ссылается объект, рекомендую поставить в поисковой строке ".". То есть, например, Найти(строкаТипа, "Документ.") > 0, иначе под это условие подходит регистр сведений ОбъектыДоступаДокументов.
3) Не используемых контрагентов найти не получилось, т.к. они ссылаются сами на себя. Добавила в ваш блок небольшое условие и все заработало.
ИначеЕсли Найти(строкаТипа, "Справочник.") > 0 Тогда
Если Стр.Данные <> мО И НЕ Стр.Данные.ПометкаУдаления Тогда
Istur; NtS; lootinn; +3 Ответить
30. lootinn 14.03.12 08:58 Сейчас в теме
Полезная обработка, после внесения изменений из (26) с контрагентами работает как надо.
27. Genneral 04.01.12 23:03 Сейчас в теме
Спасибо, Номенклатуру в УТ 10.3 после свертки почистила на ура.
28. yalo 23.01.12 11:49 Сейчас в теме
В справочнике Контрагентов был полный караууу. Спасибо все почистила, очень пригодилась!!!!!
29. izz 20.02.12 16:14 Сейчас в теме
Спасибо! Пользуюсь этой обработкой
31. NtS 29.03.12 00:13 Сейчас в теме
а у меня контрагентов все равно не чистит(((как будьто ссылка на самого контрагента
32. NtS 29.03.12 00:27 Сейчас в теме
(31) заработало!!! комментарии как следует нужно читать )) огромное спасибо (26)
33. defender 360 30.03.12 15:14 Сейчас в теме
(32) По многочисленным просьбам трудящихся :) сделал доработки из (26)
34. OLga_gab 30.03.12 23:13 Сейчас в теме
Спасибо!!! Классно работает!
35. lees 16.05.12 11:12 Сейчас в теме
Мне интересна была реализация, пригодится потом. Спасибо!
36. infotrade 16.05.12 11:41 Сейчас в теме
Обработка полезна, после внесения некторых изменений все работает... Спасибо автору...
40. CaSH_2004 373 24.05.12 04:43 Сейчас в теме
Интересно как это у всех работает, а у меня нет? Скачал последнее - все описанные выше поправки имеются - ни фига не работает!
У меня Контрагент + Банк. счет + Договор, ссылок на подчиненные нет, провериил лично
В коде нигде не нашел чтобы подчиненные проверялись на наличие на них ссылок! Однако прочитав внимательно описание:
Неиспользуемыми считаются элементы на которые есть ссылки в регистрах сведений в ведущем измерении, в подчиненных справочниках и документах помеченных на удаление.

понял что принял желаемое за действитеьное.
Итак что же делать уважаемый defender? Как это может оказаться что есть помеченные на удаление подчиненные элементы, а сам Владелец нет? Это однако нонсенс если не говорить о выборочной пометки вручную.
Все обычно как раз наоборот - все непомечены на удаление, и надо найти и пометить их.
Итак предлагаю это исправить на первый раз так, находим:
ИначеЕсли Найти(строкаТипа, "Справочник.") > 0 Тогда
    Если Стр.Данные <> мО И НЕ Стр.Данные.ПометкаУдаления Тогда

меняем на
ИначеЕсли Найти(строкаТипа, "Справочник.") > 0 Тогда
    Если Стр.Данные.Владелец <> мО И Стр.Данные <> мО И НЕ Стр.Данные.ПометкаУдаления Тогда


Это конечно половинное решение, т.к. даже если Владелец не присутствует например в документах, то например банк.счет может, но если исходить из следующих моментов:
1. В типовых конфах всегда используется одновременно и Владелец и Подчиенный, заодно рекомендую и другим разработчикам придерживаться этого правила
2. Удалять все равно желательно через монопольно или спец. обработкой с ИТС и проблем не будет т.к. я доверяю только таким методам
3. Банально нет времени все сделать правильно, однако если автор не против можно чуток доработать и выложить, вообще стоит наверно когда выкладываете свои доработки сразу оговаривать возможность доработки другими разработчиками, а то устаеш всех спрашивать "можно?", а без спроса как-то неудобно
Прикрепленные файлы:
poiskneispolzuemykh82 (red.CaSH).epf
41. clab 8 20.06.12 08:20 Сейчас в теме
На больших объемах виснет и вылетает.
42. defender 360 20.06.12 10:35 Сейчас в теме
Падает платформа из-за нехватки памяти. Из-за этого и сделана возможность проверять определенную папку, а не только справочник целиком.
43. пользователь 20.06.12 11:08
Сообщение было скрыто модератором.
...
44. AnryMc 849 19.02.13 16:33 Сейчас в теме
Попроще, но раньше...
http://infostart.ru/public/65132/

Пока не висла ни не вылетала
45. leks88 26 09.06.13 21:12 Сейчас в теме
Работает великолепно! Очень быстро, в отличии от других аналогичных, на БП 2.0.48.7 Автору плюс и большое спасибо
46. kvp 30.09.13 15:16 Сейчас в теме
47. Рамзес 30 27.02.14 15:25 Сейчас в теме
Спасибо, хорошая обработка! Но не хватает отборов!
48. defender 360 27.02.14 15:48 Сейчас в теме
(47) Рамзес,
не могли бы мысль несколько развернуть? Что отбирать, как и зачем?
49. Рамзес 30 19.03.14 16:29 Сейчас в теме
50. CaSH_2004 373 10.06.14 15:56 Сейчас в теме
(49)Уважаю за доработку и публикацию, побольше бы таких адекватных
51. CaSH_2004 373 10.06.14 15:58 Сейчас в теме
(48)Забавно слышать от 1С-ника что такое отбор и для чего он. Представьте справочник в 1 млн. записей и в базе порядка сотни пользователей работают - как будете чистить справочник?
52. Istur 1475 04.07.14 10:43 Сейчас в теме
В строке 224 ошибочный код. Есть:
строкаТипа = Строка(ТипЗнч(Данные));
он не работает, надо:
строкаТипа = Строка(стрМета.ПолноеИмя());
54. zhuravlev_as 453 24.12.18 20:17 Сейчас в теме
Что обозначает настройка "Ограничивать количество ссылок"?
55. defender 360 25.12.18 16:19 Сейчас в теме
(54) В списке ссылок на выбранный объект показывает первые 100 ссылок, а не все. Полезно когда ссылок много
56. TABEZI1234 01.02.19 07:45 Сейчас в теме
(55) Здравствуйте.Например , я хочу удалять элементы справочников до 2018года; в какой функции вашей обработки нужно делать изменения?
57. пользователь 01.02.19 08:23
Сообщение было скрыто модератором.
...
Оставьте свое сообщение