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