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