Поиск и удаление объектов без ссылок

22.06.23

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

Обработка предназначена для быстрого поиска объектов, на которые нет ссылок в других таблицах базы данных, и последующего удаления найденных объектов.

Файлы

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

Наименование Скачано Купить файл
Поиск и удаление объектов без ссылок:
.epf 50,78Kb
57 1 850 руб. Купить

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

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

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

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

При поиске ссылок на объекты вместо использования платформенной функции НайтиПоСсылкам() реализован альтернативный механизм поиска ссылок запросом к таблицам базы данных. Это дает существенный выигрыш в производительности на больших базах данных, поскольку функция НайтиПоСсылкам() формирует неоптимальные, тяжелые запросы к базе данных, приводящие к высокой избыточной нагрузке на сервер СУБД и длительному выполнению таких запросов. 

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

  1. Обход объектов метаданных и поиск в них ссылок на проверяемый объект (справочник или документ). Проверяются типы значений полей объектов.
  2. По найденным объектам производится проверка наличия ссылок на проверяемый объект в таблицах базы данных. Сформированный список таблиц базы данных, содержащих ссылки на проверяемую таблицу, сохраняется и при повторном запуске обработки автоматически восстанавливается, что позволяет в дальнейшем ускорить повторный поиск ссылок.
  3. По найденным на предыдущем шаге объектам метаданных формируется запрос, возвращающий таблицу ссылок на проверяемую таблицу.
  4. Формируется таблица ссылок, отсутствующих в полученной на предыдущем шаге таблице (то есть объекты без ссылок, которые можно затем пометить на удаление/удалить).

Порядок работы с обработкой.

  1. Выбор проверяемого объекта (справочника или документа).


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


     
  3. Находим ссылки на объект метаданных по кнопке "Найти ссылки на объект метаданных" (выполнение пунктов 1-2 алгоритма поиска ссылок)



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


     
  5. Нажимаем кнопку Пометить объекты на удаление / Удалить. Запускается процесс удаления объектов с выводом прогресса выполнения операции.

    Важно! В отличие от команды "Пометить объекты на удаление", команда "Удалить" производит непосредственное удаление элемента без возможности восстановления и без проверки ссылочной целостности. Использовать данный метод нужно крайне осмотрительно.

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

Для выполнения операций обработки в фоновом режиме рекомендуется встроить обработку в конфигурацию или в расширение конфигурации.

Дополнительная информация

Тестирование подсистемы проводилось на версии платформы 8.3.21.1302 (режим совместимости конфигурации 8.3.14). При разработке использовалась Библиотека стандартных подсистем версии 3.1.7.

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

НайтиПоСсылкам удаление

См. также

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

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

8400 руб.

20.08.2024    38815    215    112    

204

Чистка данных Системный администратор Программист 1С v8.3 Управляемые формы 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. Обработки помогут легко просмотреть связи ссылок в виде дерева, выбрать что удалять, а что нет, используя любые отборы. Это позволит уменьшить объем лишней и не нужной информации в справочниках и документах, планах видов характеристик и др. объектах и облегчит работу с данными пользователям и Вам. Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. (Обновление от 27.08.2025, версия 4.4)

10800 руб.

22.02.2013    141851    277    147    

447

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

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

12000 руб.

14.05.2012    163049    348    253    

580

Чистка данных Системный администратор Программист 1С v8.3 Управляемые формы 1C:Бухгалтерия 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    247443    231    83    

266

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

Данные обработки помогут Вам быстро и просто выполнить перезапись любых ссылочных объектов, а также провести/снять с проведения документы с возможностью выбора регистров и произвольными отборами, в Ваших базах 1С на платформах 8.1-8.3. Обработка позволят найти документы с движениями или без них. Все это дает Вам мощный инструмент для работы. Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А также обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! Данные обработки входят в ТОП-100 продаж, что является залогом популярности, надежности в работе, и признанием других покупателей.

7200 руб.

17.09.2013    806142    58    51    

94

Чистка данных Программист Пользователь 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    28135    75    19    

90

Поиск данных ЭДО и ОФД Подбор и обработка объектов 1С v8.3 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Поиск номенклатуры при сопоставлении в ЭДО не интуитивный, не настраиваемый и просто неудобный. Данное решение - это альтернативный вариант расширенного поиска и сопоставления номенклатуры для 1С, который подключается в качестве расширения и решает эту проблему.

10000 руб.

10.04.2025    913    1    1    

1

Чистка данных Программист 1С v8.3 1C:Бухгалтерия Платные (руб)

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

2400 руб.

23.08.2021    10904    22    3    

28
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. sandr13 35 23.06.23 16:03 Сейчас в теме
А если объект/реквизит использует хранилище значений, где данные хранятся в неявном виде, тогда как быть?
2. Sirruf 195 24.06.23 18:37 Сейчас в теме
(1) я думаю, что и платформа не найдет такие ссылки, можете проверить - установить пометку удаления на объект присутствующий в хранилище и попробовать удалить такой объект через типовую обработку удаления помеченных.
DennyPhilord; +1 Ответить
3. sandr13 35 24.06.23 19:55 Сейчас в теме
(2) Смотря кто, и с какой целью будет искать эти ссылки. А ещё есть вариант зашифрованных, с которыми вообще непонятно что делать.
4. V.Nikonov 123 28.06.23 12:36 Сейчас в теме
А ещё есть связанные Таблицы: Контрагент-ДоговорКонтрагента; Номенклатура-ЕдиницыИзмерения...
Эти можно только Парно искать "Бесхозные".
У Контрагента есть ОсновнойДоговор, а у ДоговораКонтрагента - Владелец. Выкрутиться можно, отключая проверку отдельных связей... Но, какова должна быть квалификация пользователя Обработки? Может тогда ему подойдёт Универсальная Обработка Объектов?
P.S. Кажется лучше создать несколько Обработок, которые по Адекватному сценарию Зачищают "Ручной мусор" (под каждый вид "Мусора" свою обработку)?
5. sandr13 35 28.06.23 18:08 Сейчас в теме
6. OlesyaBelochka 39 06.03.25 14:41 Сейчас в теме
Скачала обработку, не запускается. Выходит ошибка:

Конфигурация Бухгалтерия предприятия 3.0, (3.0.166.17)
Платформа 1С:Предприятие 8.3 (8.3.24.1586)

Не удалость найти ссылки на объект метаданных по причине:
Для вызова процедуры внешнего отчета или внешней обработки
требуется заполнить параметр ВнешнийОтчетОбработка

Для вызова процедуры внешнего отчета или внешней обработки
требуется заполнить параметр ВнешнийОтчетОбработка
{ОбщийМодуль.ДлительныеОперации.Модуль(1869)}:ВызватьИсключение ТекстОшибки;
{ОбщийМодуль.ДлительныеОперации.Модуль(1847)}:ОбработкаОтчетОбъект = ВнешняяОбработкаОтчетОбъект(ЭтоВнешнийОтчет, ПараметрыВыполнения, ЧастиИмени[1]);
{ОбщийМодуль.ДлительныеОперации.Модуль(1792)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры, ПараметрыВыполнения);
{ОбщийМодуль.ДлительныеОперации.Модуль(1811)}:ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,, СтекЗапуска, ИнформацияОбОшибке);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка]
по причине:
Для вызова процедуры внешнего отчета или внешней обработки
требуется заполнить параметр ВнешнийОтчетОбработка
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка]
8. Гость 04.07.25 11:27
(6) У меня обработка при открытии как "Внешняя обработка" через Файл-открыть выдает такую-же ошибку. Поэтому необходимо последовать совету автора:
Для выполнения операций обработки в фоновом режиме рекомендуется встроить обработку в конфигурацию или в расширение конфигурации.

Мой пример использования описан в ответе комментарию ниже.
7. xelas12345 3 04.06.25 18:30 Сейчас в теме
Добрый день!
Не работает на БП 3.
При нажатии кнопки "Найти объекты без ссылок" выдает:
Не удалость найти объекты без ссылок по причине:
{(4, 20)}: Ожидается выражение "ВЫБРАТЬ"
ЛЕВОЕ СОЕДИНЕНИЕ (<<?>>) КАК ВложенныйЗапрос

{(4, 20)}: Ожидается выражение "ВЫБРАТЬ"
ЛЕВОЕ СОЕДИНЕНИЕ (<<?>>) КАК ВложенныйЗапрос
{РасширениеКофемания Обработка.ПоискИУдалениеОбъектовБезСсылок.МодульОбъекта(213)}:КомпоновщикНастроекКД.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКД));
{(1)}:Объект.ФоновыйПоискОбъектовБезСсылок(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(6065)}:Выполнить "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1840)}:ОбщегоНазначения.ВыполнитьМетодОбъекта(ОбработкаОтчетОбъект, ЧастиИмени[3], ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1792)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры, ПараметрыВыполнения);
{ОбщийМодуль.ДлительныеОперации.Модуль(1811)}:ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,, СтекЗапуска, ИнформацияОбОшибке);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка, ОшибкаКонфигурации]
по причине:
Ошибка при вызове конструктора (ИсточникДоступныхНастроекКомпоновкиДанных)
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
по причине:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(4, 20)}: Ожидается выражение "ВЫБРАТЬ"
ЛЕВОЕ СОЕДИНЕНИЕ (<<?>>) КАК ВложенныйЗапрос
9. Гость 04.07.25 11:48
(7) Эту проблему легко избежать, пройдя алгоритм по шагам 1-5 по описанию автора.

Как я делал:

1) Сформировал список ссылок на объект метаданных. (В моем случае объект метаданных: Справочник номенклатуры.)
2) Убрал из списка те ссылки объектов на Номенклатуру, которые присутствует у новой (т.е. нигде не задействованной номенклатуры), чтобы именно с этими объектами он не учитывал ссылки на номенклатуру.
Ссылающиеся объекты метаданных на новую номенклатуру посмотрел через обработку "поиск ссылок на объекты" в типовой конфе или любую другую.
3) Теперь на вкладке "Объекты без ссылок" нахожу номенклатуру, которая проверяется по списку из вкладки "Дерево ссылок".
4) Пометил на удаление и штатной обработкой в типовой конфе "Удаление помеченных объектов" произвожу окончательное удаление с проверкой на ссылки. Мало ли.
Прикрепленные файлы:
Для отправки сообщения требуется регистрация/авторизация