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

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

Как найти битые ссылки в 1С: пошаговая инструкция

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

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

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

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

Признаки битых ссылок и откуда они берутся

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

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

Способ 1. Поиск и удаление дублей — быстрая проверка без программирования

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

В обработке выберите область поиска «Удаление дублей» не нужно — переключитесь на поиск битых ссылок, если пункт доступен, либо воспользуйтесь обработкой «Групповое изменение реквизитов» для замены найденных значений. Альтернатива — отчет «Анализ прав доступа» не подходит, а вот типовая функция «Удаление помеченных объектов» в режиме «Выборочное удаление» покажет список объектов, которые нельзя удалить из-за ссылок, — это косвенно помогает найти проблемные места.

Способ 2. Тестирование и исправление информационной базы

Штатный инструмент конфигуратора проверяет ссылочную целостность всей базы. Закройте сеансы пользователей, откройте базу в конфигураторе и выберите «Администрирование» → «Тестирование и исправление». Отметьте проверку «Ссылочная целостность информационной базы» и при необходимости «Логическая целостность».

В нижней части окна выберите режим «Тестирование» (только поиск ошибок без изменений). Запустите и дождитесь окончания — на больших базах проверка может идти десятки минут. Результат выводится в окно служебных сообщений: там будут перечислены объекты с битыми ссылками.

Способ 3. Поиск запросом по представлению «Объект не найден»

Если нужно точечно проверить конкретный справочник или документ, удобно использовать консоль запросов. Идея проста: у битой ссылки функция представления возвращает строку вида «<Объект не найден> (…)», и ее можно отфильтровать через ПОДОБНО.

1c_query
ВЫБРАТЬ
	Док.Ссылка,
	Док.Контрагент
ИЗ
	Документ.РеализацияТоваровУслуг КАК Док
ГДЕ
	ПРЕДСТАВЛЕНИЕ(Док.Контрагент) ПОДОБНО "%Объект не найден%"

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

Более надежный программный способ — проверка через метод: у битой ссылки выражение Ссылка.ПолучитьОбъект() возвращает Неопределено. Это используют в обработках, когда нужно не только найти, но и автоматически заменить значение.

Способ 4. Универсальные внешние обработки

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

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

Порядок действий при массовой чистке
  1. 1
    Сделайте выгрузку базы в .dt через конфигуратор
  2. 2
    Найдите битые ссылки любым способом и зафиксируйте список
  3. 3
    Определите по GUID, что это были за объекты (по копии базы или журналу)
  4. 4
    Замените битые ссылки на корректные объекты или очистите их групповой обработкой
  5. 5
    Перепроведите затронутые документы и проверьте отчеты
  6. 6
    Повторно запустите поиск — битых ссылок быть не должно

Как восстановить или заменить найденные ссылки

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

Второй — замена: обработкой «Групповое изменение реквизитов» (Администрирование → Обслуживание) замените битую ссылку на правильный элемент справочника во всех найденных местах. Третий — очистка: если объект не нужен, ссылку просто очищают, а документ перепроводят или помечают на удаление по правилам.

Сравнение способов поиска

Тестирование и исправление

Проверяет всю базу сразу, штатно. Минус: требует монопольного доступа, долго работает, исправление рискованно.

Консоль запросов

Точечная проверка конкретных реквизитов, быстро. Минус: нужно знать, где искать, и уметь писать запросы.

Внешние обработки

Полное сканирование с удобной таблицей результата. Минус: нужно скачивать обработку и проверять ее безопасность.

Частые ошибки и ограничения

Типичные ошибки
01
Запуск «Тестирование и исправление» в режиме исправления без копии — объекты удаляются безвозвратно
02
Удаление документов с битыми ссылками вместо замены значения — теряется история и съезжают итоги
03
Поиск только в справочниках — битые ссылки чаще всего сидят в реквизитах документов и регистрах сведений
04
Игнорирование обменов: после чистки в одной базе битые ссылки прилетают обратно из узла РИБ
05
Очистка ссылки без перепроведения документа — движения остаются старыми, отчеты расходятся

Отдельное ограничение касается регистров: запросом по ПРЕДСТАВЛЕНИЕ() проверять большие таблицы регистров накопления долго, там лучше работать соединением с таблицей справочника — если соединение не дало результата, ссылка битая. Это быстрее и точнее, чем сравнение строк.

Контрольные точки

Как проверить результат

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

Список пуст

Тревожный признак

Остались записи — чистка не завершена

Открытие проблемных документов
Норма

Документ открывается, все поля заполнены корректно

Тревожный признак

Ошибка открытия или «<Объект не найден>» в полях

Оборотно-сальдовая ведомость / типовые отчеты
Норма

Итоги сходятся с данными до чистки (кроме осознанных изменений)

Тревожный признак

Итоги изменились без причины

Обмен данными
Норма

Синхронизация проходит без ошибок ссылочной целостности

Тревожный признак

В журнале ошибки «Объект не найден» при загрузке

FAQ

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

Да. В типовых конфигурациях на БСП используйте обработку «Поиск и удаление дублей» и «Групповое изменение реквизитов» из раздела «Администрирование». Также битые ссылки видно визуально в списках документов и отчетах по надписи «<Объект не найден>» — можно отсортировать список по колонке и собрать проблемные строки.

Что означает код в скобках после «Объект не найден»?

Это шестнадцатеричное представление уникального идентификатора (GUID) удаленного объекта. По нему можно найти объект в архивной копии базы и восстановить его с сохранением ссылки — тогда все битые ссылки в базе снова станут рабочими.

Опасно ли удалять объекты с битыми ссылками через тестирование и исправление?

Да, режим исправления удаляет объекты и очищает ссылки физически, без возможности отката. Запускайте его только в монопольном режиме и только после выгрузки базы в файл .dt. Сначала всегда делайте прогон в режиме «Тестирование», чтобы оценить масштаб.

Почему битые ссылки появляются снова после чистки?

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

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

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

Итог

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

Битые ссылки ищут через «Поиск и удаление дублей», тестирование и исправление, запросы по «Объект не найден» или универсальные обработки. Любое исправление делайте только после резервной копии. После чистки обязательно перепроведите документы, проверьте отчеты и повторите поиск.