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

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

Битые ссылки в 1С: как найти и исправить

Что такое битые ссылки в 1С, как их найти тестированием и исправлением, способами восстановить объект или удалить ссылку. Пошаговые инструкции и меры безопасности.

Битая ссылка в 1С — это ссылка на объект, которого больше нет в информационной базе. Она выглядит как строка вида «Объект не найден» с длинным кодом в угловых скобках и появляется в справочниках, документах, регистрах и отчётах. Чаще всего причина — прямое удаление объекта без проверки ссылочной целостности, обмен данными, при котором объект не дошёл до одной из баз, или сбой при записи.

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

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

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

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

Типовые причины появления битых ссылок:

  • удаление объектов напрямую, минуя штатное пометочное удаление с контролем ссылок;
  • обмен данными между базами, когда объект выгружен в одну базу, но по какой-то причине не загружен в другую;
  • аварийное завершение работы или сбой сервера в момент записи объекта;
  • сторонние обработки и прямые запросы к базе, изменяющие данные в обход логики 1С;
  • восстановление базы из устаревшей копии, когда часть объектов была создана позже.

Как подготовиться: резервная копия и режим работы

Любое исправление ссылочной целостности меняет данные необратимо. Перед началом сделайте выгрузку информационной базы через конфигуратор (Администрирование → Выгрузить информационную базу) или полную копию средствами СУБД, если база клиент-серверная. Проверьте, что файл копии открывается и восстанавливается, — копия, которую нельзя развернуть, не является страховкой.

Тестирование и исправление в монопольном режиме требует, чтобы с базой не работали пользователи. Завершите сеансы, отключите регламентные задания и обмены на время работ. В файловой базе достаточно, чтобы все вышли из программы; в клиент-серверной — завершите сеансы через консоль кластера.

Как найти битые ссылки через тестирование и исправление

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

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

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

Способы исправления: восстановить объект или очистить ссылку

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

Если объект был удалён сознательно и не нужен, ссылку очищают. В режиме «Тестирование и исправление» при выборе варианта «Исправлять» платформа предлагает варианты обработки битых ссылок: создавать объекты-заглушки, очищать ссылки или удалять объекты, содержащие битые ссылки. Выбирайте вариант осознанно: очистка ссылки в проведённом документе может изменить его проводки и итоги.

Восстановление объекта по GUID

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

bsl
// Восстановление элемента справочника по GUID
Ид = Новый УникальныйИдентификатор("a1b2c3d4-...");
СсылкаНаОбъект = Справочники.Номенклатура.ПолучитьСсылку(Ид);
НовыйОбъект = Справочники.Номенклатура.СоздатьЭлемент();
НовыйОбъект.УстановитьСсылкуНового(СсылкаНаОбъект);
НовыйОбъект.Наименование = "Восстановленный элемент";
НовыйОбъект.Записать();

Очистка ссылок вручную и обработками

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

Сравнение вариантов исправления

Восстановление объекта по GUID

Подходит, когда объект реально нужен (контрагент, товар в проведённых документах). Сохраняет историю, но требует ручного заполнения реквизитов.

Очистка ссылки

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

Создание объекта-заглушки при тестировании

Подходит для массового случая, когда важно убрать ошибки обмена и отчётов. Заглушки потом нужно разобрать и либо заполнить, либо удалить.

Битые ссылки после обмена данными

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

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

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

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

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

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

Повторная проверка ссылочной целостности
Норма

Нарушений не обнаружено

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

Список ошибок не уменьшился или появились новые

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

Поля заполнены реальными объектами или осознанно пусты

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

Всё ещё отображается «Объект не найден»

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

Итоги совпадают с ожидаемыми, изменения объяснимы

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

Суммы изменились без причины

Обмен данными (если есть)
Норма

Обмен завершается без ошибок по объектам

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

Ошибки выгрузки объектов повторяются

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

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

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

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

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

Откуда берётся длинный код в строке «Объект не найден»?

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

Опасны ли битые ссылки для отчётности?

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

Что делать, если битых ссылок тысячи?

Сначала скопируйте базу и проанализируйте масштаб на копии: какие типы объектов затронуты и откуда возникла проблема. Часто массовые битые ссылки — следствие одного сбойного обмена или обработки, и после устранения причины основная масса решается восстановлением объектов или повторной синхронизацией, а не ручной чисткой.

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

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

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

Если период закрыт и отчётность сдана, вмешательство требует осторожности: очистка ссылок изменит документы прошлых периодов. Обычно в таких случаях объекты восстанавливают, а не очищают ссылки, либо оставляют как есть, если ссылки не влияют на текущую работу и обмены.

Итог

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

Битые ссылки исправляются штатным «Тестированием и исправлением» после создания резервной копии. Нужные объекты восстанавливают по GUID, ненужные ссылки очищают. В базах с обменом сначала устраняют причину в синхронизации. Профилактика — запрет прямого удаления и регулярная проверка целостности.