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

1. talych 17 18.09.13 10:52 Сейчас в теме
Дано:
Самописная конфигурация на 1С 7, похожая на ТиС. База срезана(данные за 5лет) и оставлены данные за один год.
Нужно:
Удалить все элементы справочника, которые не используются. Т.е. висят в воздухе.
Нужна обработка. Операция стандартная, наверняка есть уже готовая. Не ткнете мордой в ссылку? Заранее спасибо!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Roman100 18.09.13 10:59 Сейчас в теме
Пометь все элементы на удаление.
Штатный механизм - удалить помеченные с проверкой ссылочной целостности.
Снять пометку на удаление с оставшихся.
Радоваться жизни
3. talych 17 18.09.13 11:19 Сейчас в теме
метод классный и простой! Но как-то подозрительно простой )))
Это будет очень долго на реальной большой базе. Например, в 60 ГБ.
4. Roman100 18.09.13 11:27 Сейчас в теме
Тогда вот так надо писать.
Держи лопату!
Копай в этом направлении. =>

Находит ссылки на объекты, переданные в списке значений.
Синтаксис:
НайтиСсылки(<Объекты>,<Ссылки>)
Англоязычныйсиноним:
FindReferences
Параметры:
<Объекты> Конкретное значение объекта илиобъект типа СписокЗначений, в котором данной процедуре передаются объекты, по которым надо найти ссылки.
<Ссылки> Идентификатор объекта типа ТаблицаЗначений, в который данная процедура помещает найденные ссылки на объекты. Таблица значений состоит из 3 колонок: 1. Объект — объект, на который ссылаются; 2. Ссылка — объект, который содержит ссылку; 3. Комментарий — комментарий кссылке.
Описание:
Процедура НайтиСсылки находит ссылки на переданные в списке объекты, и помещает их в таблицу значений.
Код 1C v 7.x
СсылкиТЗ=СоздатьОбъект("ТаблицаЗначений");
НайтиСсылки(СсылкаНаТовар,СсылкиТЗ);
//В результате мы получаем ТЗ с ссылками на данный элемент
5. Roman100 18.09.13 11:28 Сейчас в теме
Где ТЗ пустая там надо удалять
6. talych 17 18.09.13 13:45 Сейчас в теме
Вот накидал на скорую руку. Мне нужно почистить справочник "Товары". Не учитывать подчиненный справочник "Цены".
Можно выставлять фильтр по папке и чистить каждый день понемножку в свободное время :)
Может быть, кому-то тоже понадобится. Если найдете ошибки, просьба написать сюда.
Прикрепленные файлы:
чистка_справ_Товары.ert
7. Lik2707 19.09.13 09:44 Сейчас в теме
(6)Т.е., нужно, если даже есть цены у товара удалить этот товар? Как-то странно это, получается, будут "висеть" цены без владельца? Зачем это?
8. tdr1225 37 19.09.13 09:59 Сейчас в теме
(7)
Цены без владельца "висеть" не будут.
При удалении элемента его подчиненные удаляются автоматом.
9. Lik2707 19.09.13 10:16 Сейчас в теме
Ну и хорошо, если так! Просто, как-то приходилось сталкиваться с ситуацией (детали помню смутно, может и путаю чего), когда штатной обработкой удаления помеченных объектов удалялись элементы справочника, и какие-то то подчимненные элементы удалялись, а какие-то оставались, в итоге пустые ссылки... Поэтому предпочитаю перестраховываться в подобных случаях :)
10. talych 17 19.09.13 10:35 Сейчас в теме
Почти невозможная ситуация. Вначале удаляются подчиненные элементы и только после этого владелец. Но 1С ещё тот удивительный продукт ))
11. deniseek77 86 19.09.13 10:49 Сейчас в теме
(10) talych, Почему же невозможная? ) Удалять сразу, не контролируя ссылочной целостности, глупо, но кое-кто еще практикует...
15. Lik2707 20.09.13 06:38 Сейчас в теме
(10)Сейчас попробовали. Типовая комплексная 928, ДЕМО. Помечаем на удаление номенклатуру. Естественно, помечаются все подчиненные справочники. Штатно удаляем. В итоге, конкретно у этого элемента удаляются цены (т.к. на них нет ссылок), а остальные справочники (ед. изм., партии) не удаляются, остаются помеченными на удаление (т.к. на них есть ссылки). В итоге получается как-бы не полная картина - цены были и их не стало :). В моём прежнем сообщении неточность, что остаются пустые ссылки (прошу извинить). Ссылки пустых нет, просто подчиненные элементы, на которые нет ссылок, удаляются.
12. talych 17 19.09.13 11:08 Сейчас в теме
Лика пишет "когда штатной обработкой удаления помеченных объектов" ))) Я про этот случай
13. panda-34 38 19.09.13 11:24 Сейчас в теме
Ну есть же стандартная 1с-овская обработка "Установка пометки на удаление у неиспользуемых объектов", objdel.ert
14. talych 17 19.09.13 13:26 Сейчас в теме
Спасибо. Я даже не знал, что есть такая :( Она учитывает подчиненности?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот