Администрирование · 10 мин
Поиск ссылок на объекты в 1С 8.3: где находится и как работать
Как найти все ссылки на объект в 1С 8.3: стандартная функция поиска ссылок, обработки, запросы. Удаление объектов без нарушения целостности базы.
Перед удалением документа, элемента справочника или любого другого объекта в 1С 8.3 важно понять, где этот объект используется. Если удалить контрагента, на который ссылаются десятки документов, в базе останутся «битые ссылки» — записи вида «Объект не найден», которые ломают отчёты, проведение и обмены данными. Функция поиска ссылок показывает все места использования объекта и позволяет принять безопасное решение.
В платформе 1С:Предприятие 8.3 есть встроенная команда поиска ссылок, доступная и в обычном, и в управляемом приложении. Дополнительно задачу решают типовые обработки из состава конфигураций (например, «Поиск и удаление дублей» или «Удаление помеченных объектов») и запросы в консоли. Ниже разобраны все способы: где находится каждый инструмент, как им пользоваться и в каких ситуациях какой вариант выбрать.
Где находится стандартная функция поиска ссылок
Самый быстрый способ — открыть нужный объект (элемент справочника, документ) и в меню «Ещё» выбрать команду поиска ссылок. В типовых конфигурациях на управляемых формах команда может называться «Найти ссылки» или находиться в подменю «Сервис». Платформа построит список всех объектов, где встречается ссылка на текущий элемент: документы, регистры сведений, другие справочники, планы обмена.
Второй путь — через главное меню. Откройте «Все функции» (если пункт не виден, включите его: Сервис → Параметры → флажок «Отображать команду "Все функции"»). В дереве найдите раздел «Стандартные» и там обработку «Поиск ссылок на объекты». В ней можно добавить сразу несколько объектов списком и выполнить поиск по всем сразу — это удобнее, чем открывать каждый объект по отдельности.
В конфигураторе аналогичная функция доступна через пункт меню «Правка» → «Найти ссылки на объект» при выделенном объекте метаданных, а также через контекстное меню объекта в дереве конфигурации. Этот вариант ищет ссылки в метаданных и модулях, а не в данных, и нужен разработчикам при рефакторинге.
Как работать с результатами поиска
Результат поиска выводится в виде таблицы: объект-источник ссылки, его представление и место использования. Из таблицы можно перейти в любой найденный объект двойным щелчком, открыть его на редактирование и заменить или очистить ссылку. Это основной сценарий «ручной чистки»: вы видите каждое место использования и осознанно решаете, что с ним делать.
Обратите внимание, что поиск находит ссылки не только в реквизитах документов, но и в табличных частях, регистрах сведений (в том числе независимых), движениях регистров накопления и бухгалтерии. Если объект используется в движениях проведённого документа, просто удалить его нельзя — сначала придётся распровести или перепровести документ с заменой значения.
- 1Откройте объект и вызовите «Ещё» → «Найти ссылки» (или обработку через «Все функции»)
- 2Изучите список: отделите актуальные документы от архивных и помеченных на удаление
- 3В актуальных объектах замените ссылку на корректное значение или очистите поле
- 4Распроведите документы, где ссылка участвует в движениях, измените и проведите заново
- 5Повторите поиск ссылок — список должен опустеть
- 6Только после этого помечайте объект на удаление и запускайте удаление помеченных
Поиск ссылок через обработку «Удаление помеченных объектов»
Когда объектов много, ручная проверка каждого нерациональна. Типовая обработка «Удаление помеченных объектов» (в типовых конфигурациях: Администрирование → Обслуживание → Удаление помеченных объектов) автоматически проверяет все помеченные элементы и показывает, какие из них используются и где именно.
Режим «Выборочное удаление» выводит дерево: помеченный объект и под ним — места использования. Можно прямо в этом окне снять пометку с нужных элементов, перейти в мешающие документы и исправить их, а затем повторить попытку удаления. Фактически это массовый поиск ссылок с возможностью немедленного исправления.
Поиск ссылок запросом и программно
Для нестандартных задач — например, найти ссылки только в определённом виде документов или выгрузить список использований в файл — удобна консоль запросов. Запрос вида «ВЫБРАТЬ Ссылка ИЗ Документ.РеализацияТоваровУслуг ГДЕ Контрагент = &Контрагент» покажет конкретные места использования с возможностью фильтрации по периоду, организации и другим условиям, чего стандартный поиск не умеет.
Во встроенном языке есть метод НайтиПоСсылкам(), который принимает массив ссылок и возвращает таблицу соответствий «ссылка — объект — метаданные». Он используется в собственных обработках, когда нужно автоматизировать проверку: например, перед заменой элементов в обработке поиска и замены дублей. Метод работает быстро, так как использует индексы платформы, но требует прав на чтение проверяемых таблиц.
МассивСсылок = Новый Массив;
МассивСсылок.Добавить(ПроверяемыйЭлемент);
ТаблицаСсылок = НайтиПоСсылкам(МассивСсылок);
Для Каждого Строка Из ТаблицаСсылок Цикл
Сообщить(Строка(Строка.Данные) + " — " + Строка(Строка.Метаданные));
КонецЦикла;Выбор способа под задачу
Разные инструменты решают похожие задачи с разной глубиной. Ориентируйтесь на объём работы и требования к фильтрации, а не на привычку.
| Инструмент | Когда подходит | Ограничения |
|---|---|---|
| «Ещё» → «Найти ссылки» в форме объекта | Разовая проверка одного объекта | Нет фильтров, по одному объекту за раз |
| «Все функции» → «Поиск ссылок на объекты» | Проверка списка объектов | Нужно включить «Все функции»; нет условий отбора |
| «Удаление помеченных объектов» | Массовая чистка базы | Работает только с помеченными на удаление |
| Консоль запросов | Выборка с условиями, выгрузка результатов | Требует навыка написания запросов |
| НайтиПоСсылкам() в коде | Автоматизация, собственные обработки | Нужны права разработчика/администратора |
Как выбрать действие
Типичные ошибки и ограничения
Частая ошибка — считать, что если поиск ссылок ничего не нашёл, объект точно нигде не используется. Стандартный поиск не заглядывает в хранилища значений, где ссылка может лежать внутри сериализованных данных, и не видит ссылки в других информационных базах, если настроен обмен. Перед удалением объектов, участвующих в обменах, проверьте смежные базы.
Вторая ошибка — недостаток прав. Если у пользователя нет прав на чтение какого-то регистра или документа, поиск молча пропустит эти таблицы, и результат будет неполным. Проверку перед удалением лучше выполнять под учётной записью с полными правами.
Третья ошибка — игнорирование производительности. На больших базах поиск ссылок по десяткам объектов может занять заметное время и создать нагрузку на сервер. Планируйте массовые проверки на нерабочие часы, а в файловых базах — при отсутствии других активных пользователей.
Как проверить результат и убедиться в чистоте базы
После замены ссылок и удаления объектов повторите поиск: список мест использования должен быть пустым. Затем полезно запустить тестирование и исправление информационной базы с включённой проверкой ссылочной целостности — она покажет оставшиеся «битые ссылки», если они появились раньше или в результате других операций.
Дополнительный контроль — открыть ключевые отчёты и журналы документов, где раньше использовался удалённый объект, и убедиться, что данные отображаются корректно, без пустых колонок и служебных надписей об отсутствующих объектах.
Как проверить результат
Список мест использования пуст
Остались документы или регистры со ссылкой
Ошибок нет
Сообщения об объектах с несуществующими ссылками
Данные отображаются полностью
Надписи «Объект не найден» в строках
Частые вопросы
Почему в меню «Ещё» нет команды «Найти ссылки»?
В некоторых конфигурациях команда скрыта настройками интерфейса или переименована разработчиками. Используйте обработку «Поиск ссылок на объекты» через «Все функции» — она доступна всегда, если включено отображение этого пункта меню.
Найдёт ли поиск ссылки в движениях проведённых документов?
Да, стандартный поиск проверяет таблицы движений регистров. Если ссылка есть в проведённом документе, объект нельзя будет удалить, пока документ не распроведён или не перепроведён с другим значением.
Можно ли найти ссылки сразу на группу объектов?
Да. В обработке «Поиск ссылок на объекты» (через «Все функции») добавьте несколько объектов в список и выполните поиск — результат будет сведён в общую таблицу. Программно то же делает метод НайтиПоСсылкам() с массивом ссылок.
Поиск ничего не нашёл, но объект не удаляется. Почему?
Возможны три причины: у вашей учётной записи не хватает прав на чтение части таблиц, ссылка находится в другой базе, участвующей в обмене, или объект используется в механизмах вроде хранилищ значений. Повторите проверку с полными правами и проверьте настройки обменов.
Чем опасно удаление с отключённым контролем целостности?
В базе останутся ссылки на несуществующий объект. Они отображаются как «Объект не найден», вызывают ошибки при проведении документов, искажают отчёты и приводят к сбоям обменов. Исправление таких последствий трудоёмко, поэтому контроль отключать не следует.
Что важно запомнить
Поиск ссылок в 1С 8.3 доступен из меню «Ещё» формы объекта, через «Все функции», обработкой удаления помеченных объектов и программно. Всегда проверяйте места использования перед удалением, работайте с полными правами и делайте резервную копию перед массовой чисткой.