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

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    42038    230    117    

215

Чистка данных Системный администратор Программист 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    142437    280    147    

448

Поиск данных Системный администратор Программист 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    163711    350    253    

581

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

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

7200 руб.

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

5000 руб.

28.11.2019    28446    76    20    

91

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

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

5136 руб.

23.08.2021    11087    23    3    

29

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

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

2400 руб.

09.04.2019    30349    47    15    

50

Розничная торговля WEB-интеграция Поиск данных Пользователь 1С v8.3 Оперативный учет 1С:Розница 2 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Альтернатива сервису 1С Номенклатура, не требует подписки ИТС, ищет данные в открытых источниках. Для поиска товара по штрихкоду в сети интернет, полезно для первоначального заполнения базы.

1999 руб.

15.10.2020    20163    25    63    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. sandr13 35 23.06.23 16:03 Сейчас в теме
А если объект/реквизит использует хранилище значений, где данные хранятся в неявном виде, тогда как быть?
2. Sirruf 196 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) Пометил на удаление и штатной обработкой в типовой конфе "Удаление помеченных объектов" произвожу окончательное удаление с проверкой на ссылки. Мало ли.
Прикрепленные файлы:
Для отправки сообщения требуется регистрация/авторизация