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

05.02.13

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

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

Файлы

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

Наименование Скачано Купить файл
ПоискНеиспользуемых82.epf
.epf 17,26Kb
709 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

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

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

24900 руб.

20.08.2024    57859    310    154    

283

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

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

6100 руб.

16.03.2015    279674    246    83    

281

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

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

12200 руб.

22.02.2013    144568    287    147    

454

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

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

5084 руб.

09.04.2019    31186    48    15    

51

Чистка данных Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Если в вашей информационной базе крутится очень много данных, или база должна быть доступна 24/7 (как в моем случае), или же вы боитесь запускать тестирование и исправление, НО существует потребность удалить битые ссылки, тогда эта обработка сможет Вам помочь. Обработка выявляет битые ссылки как в самих объектах метаданных, так и в их табличных частях(!), а так же может их удалить.

5084 руб.

23.08.2021    11966    25    3    

31

Чистка данных Программист Пользователь 1С:Предприятие 8 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, Розница и др. Это могут быть неактуальные организации или другие перечни объектов. При этом есть возможность провести анализ пересечений документов с другими организациями и таким образом уберечься от того, что при удалении обороты по другой организации изменятся. Объекты нужно выбирать вручную и после этого запускать команду удаления. Будут удалены все ссылки на них.

5000 руб.

28.11.2019    29806    79    21    

94

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

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

1 стартмани

25.12.2023    13055    287    WeterSoft    7    

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

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

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

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

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

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

ИначеЕсли Найти(строкаТипа, "РегистрСведений") > 0 Тогда
19. provnick 29.09.11 21:27 Сейчас в теме
Интересно, в бухгалтерии заработало, а в УТ, по контрагентам работает, а по номенклатуре сработало только после изменений замеченных в (16) и (17), и не удаляет найденное, а только помечает, и так же в 8.2, соответственно после конвертации так же работает. И если возможно, желательно, не только наименование, но код, чтобы отображался.Плюс.
20. defender 361 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 361 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 361 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 375 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 361 20.06.12 10:35 Сейчас в теме
Падает платформа из-за нехватки памяти. Из-за этого и сделана возможность проверять определенную папку, а не только справочник целиком.
43. пользователь 20.06.12 11:08
Сообщение было скрыто модератором.
...
44. AnryMc 850 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 361 27.02.14 15:48 Сейчас в теме
(47) Рамзес,
не могли бы мысль несколько развернуть? Что отбирать, как и зачем?
49. Рамзес 30 19.03.14 16:29 Сейчас в теме
50. CaSH_2004 375 10.06.14 15:56 Сейчас в теме
(49)Уважаю за доработку и публикацию, побольше бы таких адекватных
51. CaSH_2004 375 10.06.14 15:58 Сейчас в теме
(48)Забавно слышать от 1С-ника что такое отбор и для чего он. Представьте справочник в 1 млн. записей и в базе порядка сотни пользователей работают - как будете чистить справочник?
52. Istur 1475 04.07.14 10:43 Сейчас в теме
В строке 224 ошибочный код. Есть:
строкаТипа = Строка(ТипЗнч(Данные));
он не работает, надо:
строкаТипа = Строка(стрМета.ПолноеИмя());
54. zhuravlev_as 586 24.12.18 20:17 Сейчас в теме
Что обозначает настройка "Ограничивать количество ссылок"?
55. defender 361 25.12.18 16:19 Сейчас в теме
(54) В списке ссылок на выбранный объект показывает первые 100 ссылок, а не все. Полезно когда ссылок много
56. TABEZI1234 01.02.19 07:45 Сейчас в теме
(55) Здравствуйте.Например , я хочу удалять элементы справочников до 2018года; в какой функции вашей обработки нужно делать изменения?
57. пользователь 01.02.19 08:23
Сообщение было скрыто модератором.
...
Для отправки сообщения требуется регистрация/авторизация