К статье
Практический материал

Администрирование · 10 мин

Как найти битую ссылку в 1С и исправить её

Как найти битую ссылку в 1С: типовые инструменты поиска объектов «», проверка через запросы и обработки, способы восстановления и удаления ссылок.

Битая ссылка в 1С — это ссылка на объект, который был физически удалён из базы, но упоминания о нём остались в документах, регистрах или других справочниках. В интерфейсе такая ссылка выглядит как «<Объект не найден> (166:8b9a...)» — вместо привычного наименования отображается технический идентификатор. Пока битых ссылок мало, работа продолжается, но отчёты начинают показывать пустые строки, а обмены данными — завершаться с ошибками.

Причины появления битых ссылок почти всегда одинаковы: прямое удаление объектов без контроля ссылочной целостности, сбои во время обмена данными между базами, некорректная работа сторонних обработок по очистке базы. Понимание источника проблемы важно, потому что от него зависит способ исправления: иногда объект можно восстановить из копии, иногда ссылку проще очистить.

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

Что такое битая ссылка и как она выглядит

Каждый объект в 1С имеет уникальный внутренний идентификатор (GUID). Когда документ ссылается на контрагента, в поле документа хранится именно этот идентификатор. Если контрагента удалить напрямую, минуя контроль ссылочной целостности, идентификатор в документе останется, но объекта за ним уже не будет. При открытии документа платформа покажет «<Объект не найден>» с техническим кодом.

Важно отличать битую ссылку от помеченного на удаление объекта. Пометка удаления — штатное состояние: объект существует, ссылки на него корректны, просто он исключён из большинства отчётов. Битая ссылка — это уже нарушение целостности, и рано или поздно оно проявится ошибкой: при проведении документа, при выгрузке в другую базу, при формировании регламентированной отчётности.

Где искать битые ссылки в типовых конфигурациях

В типовых конфигурациях на базе БСП (Управление торговлей, ERP, Бухгалтерия предприятия, ЗУП) встроены средства, которые помогают выявить проблемные места. Первое, что стоит проверить, — раздел «Администрирование» → «Обслуживание» → «Корректировка данных». В зависимости от версии конфигурации там доступны обработки группового изменения реквизитов и поиска проблемных ссылок.

Если битая ссылка уже мешает конкретной операции — например, не проводится документ — начните с самого документа. Откройте его, найдите поле с надписью «<Объект не найден>» и скопируйте технический код. По коду иногда удаётся определить тип удалённого объекта: первые символы в скобках указывают на внутренний номер таблицы метаданных, по которому опытный администратор понимает, справочник это или документ.

Для обменов данными проверьте журнал регистрации: ошибки вида «Объект не найден» при загрузке часто указывают и на узел-источник, и на конкретный объект. Это самый быстрый способ локализовать проблему в распределённых базах.

Поиск битых ссылок запросом в консоли

Наиболее точный способ — запрос с проверкой соединения. Логика проста: берём таблицу, где хранится ссылка, присоединяем таблицу объекта и отбираем записи, где соединение вернуло NULL. Для этого нужна консоль запросов (в типовых конфигурациях она есть в инструментах разработчика, либо используется внешняя консоль) и права на просмотр данных.

bsl
ВЫБРАТЬ
	Реализация.Ссылка КАК Документ,
	Реализация.Контрагент КАК БитаяСсылка
ИЗ
	Документ.РеализацияТоваровУслуг КАК Реализация
	ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
	ПО Реализация.Контрагент = Контрагенты.Ссылка
ГДЕ
	Реализация.Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
	И Контрагенты.Ссылка ЕСТЬ NULL

Такой запрос нужно адаптировать под конкретные таблицы: проверять документы, табличные части, регистры сведений и накопления. Универсальный вариант — перебрать в цикле все объекты метаданных и для каждого ссылочного реквизита построить аналогичный запрос. Именно так работают универсальные обработки поиска битых ссылок.

Ограничение метода: запрос показывает ссылки в известных вам таблицах. Если конфигурация большая, вручную перебрать все места хранения трудоёмко — здесь эффективнее готовые обработки или тестирование и исправление.

Универсальные обработки для поиска битых ссылок

Для полного сканирования базы удобнее использовать обработку «Поиск и удаление битых ссылок» — такие решения есть в составе стандартных инструментов разработчика и на официальных ресурсах 1С. Обработка автоматически перебирает все объекты метаданных, строит запросы к каждому ссылочному реквизиту и выводит сводную таблицу: где найдена ссылка, какого она типа, сколько раз встречается.

Порядок действий при поиске обработкой
  1. 1
    Сделайте архивную копию базы или выгрузку в DT
  2. 2
    Запустите обработку поиска битых ссылок в режиме только чтения, без автоисправления
  3. 3
    Дождитесь завершения сканирования и сохраните отчёт о найденных ссылках
  4. 4
    Разберите каждую группу: определите тип удалённого объекта и место использования
  5. 5
    Только после анализа решайте — восстанавливать объект или очищать ссылку

Преимущество обработок — полнота: они видят все таблицы, включая регистры и табличные части. Недостаток — время: на большой базе полное сканирование может занять от нескольких минут до часов, поэтому на рабочей базе его лучше запускать в нерабочее время или на копии.

Тестирование и исправление как крайняя мера

Штатная утилита «Тестирование и исправление» (chdbfl для файловых баз или режим конфигуратора) умеет проверять ссылочную целостность информационной базы. В конфигураторе: «Администрирование» → «Тестирование и исправление», далее отметить пункт «Проверка ссылочной целостности информационной базы».

При обнаружении битых ссылок утилита предложит варианты: создать объекты-заглушки, очистить ссылки или не изменять данные. Создание объектов-заглушек восстанавливает целостность формально — документы открываются, отчёты строятся, но вместо реального контрагента вы получите пустой объект без данных. Очистка ссылок удаляет упоминание, что для ключевых реквизитов может сделать документ непроводимым.

Как исправить найденные битые ссылки

Есть три принципиальных подхода, и выбор зависит от ценности удалённого объекта. Первый — восстановление: если есть архивная копия или объект существует в другой базе обмена, его можно перенести обратно с сохранением GUID (например, через выгрузку-загрузку XML или обработку с принудительной установкой ссылки). После этого битая ссылка снова станет рабочей.

Второй — замена: если объект удалён осознанно, а ссылки должны указывать на другой элемент (например, контрагент-дубль удалён, и ссылки нужно перекинуть на основного), используется обработка группового изменения реквизитов или поиск и замена значений. Третий — очистка: если ссылка не нужна, поле очищается, а при невозможности очистки — документ помечается на удаление штатным способом.

Маршрут решения

Как выбрать действие

Объект удалён случайно и есть архивная копияВосстановите объект из копии с сохранением GUID
Объект — дубль, а ссылки должны вести на правильный элементВыполните поиск и замену значений на целевой объект
Ссылка не несёт смысла и объект не нуженОчистите ссылку или пометьте владельца на удаление штатно
Битых ссылок много и источник неясенСначала найдите причину (обмен, обработка удаления), иначе ссылки появятся снова

Профилактика: как не допустить повторения

Главное правило — удалять объекты только штатным способом: пометка на удаление, затем «Удаление помеченных объектов» с контролем ссылочной целостности. Платформа не даст удалить объект, пока на него есть ссылки, если не отключён контроль. Прямое удаление через обработки и код — только при полном понимании последствий.

Если битые ссылки приходят из обмена данными, проверьте настройки правил конвертации и очерёдность загрузки: часто объект-владелец грузится позже объекта, который на него ссылается, и при сбое одного из пакетов образуется разрыв. Полезно периодически запускать проверку битых ссылок регламентным заданием на копии базы, чтобы заметить проблему до жалоб пользователей.

Типичные ошибки
01
Удаление объектов напрямую через обработки без контроля ссылок — битые ссылки появляются пачками
02
Исправление на рабочей базе без копии — откатить изменения невозможно
03
Создание объектов-заглушек в тестировании и исправлении и забывание про них — в отчётах остаются пустые элементы
04
Очистка битой ссылки в ключевом реквизите документа — документ перестаёт проводиться
05
Исправление симптомов без поиска источника — после очередного обмена ссылки появляются снова

Частые вопросы

Можно ли найти битую ссылку без прав администратора?

Частично. Пользователь видит «<Объект не найден>» в открытых документах и может сообщить администратору код объекта. Но полноценный поиск по всей базе требует доступа к консоли запросов, обработкам или конфигуратору, то есть расширенных прав.

Откуда берётся код вроде «(166:8b9a...)» в тексте битой ссылки?

Это внутреннее представление ссылки: номер таблицы метаданных и уникальный идентификатор объекта. По нему администратор может определить тип удалённого объекта и попытаться восстановить его по GUID из архивной копии.

Опасно ли оставлять битые ссылки без исправления?

Да. Они вызывают ошибки при проведении документов, искажают отчёты пустыми строками, приводят к сбоям обменов и могут помешать обновлению конфигурации. Чем дольше откладывать, тем больше накапливается зависимых проблем.

Восстановится ли битая ссылка, если просто создать объект заново?

Нет. Новый объект получит новый GUID, а старые ссылки продолжат указывать на удалённый идентификатор. Нужно либо восстановить объект с прежним GUID, либо заменить ссылки на новый объект.

Чем отличается поиск битых ссылок в файловой и клиент-серверной базе?

Методы одинаковы: запросы, обработки, тестирование и исправление. Разница в инструментах проверки физической целостности: для файловых баз используется chdbfl, для клиент-серверных — режим тестирования в конфигураторе, а на больших объёмах проверку лучше выполнять на копии.

Можно ли автоматизировать регулярный поиск битых ссылок?

Да. Процедуру сканирования оформляют как регламентное задание, которое формирует отчёт и сохраняет его или отправляет администратору. Запускать его следует в нерабочее время, а исправление оставить ручным — после анализа результатов.

Итог

Что важно запомнить

Битая ссылка — след прямого удаления объекта или сбоя обмена. Находят её запросом с проверкой «ЕСТЬ NULL», универсальными обработками или тестированием и исправления. Исправлять нужно осознанно: восстановление объекта, замена ссылки или очистка — и всегда после резервной копии. Профилактика проста: удалять только штатно, через контроль ссылочной целостности.