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

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

Что делать с битыми ссылками в 1С

Как найти и устранить битые ссылки в 1С: причины появления, тестирование и исправление, типовые обработки, восстановление данных и профилактика ошибок.

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

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

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

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

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

Опасность зависит от того, где находится ссылка. Битая ссылка в непроведённом документе — локальная неприятность. Битая ссылка в движениях регистра или в проведённом документе за закрытый период — уже угроза корректности учёта: отчёты могут не сходиться, а попытка перепроведения вызовет ошибки. В распределённых базах (РИБ) битые ссылки нередко блокируют загрузку пакетов обмена.

Откуда берутся битые ссылки: типичные причины

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

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

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

Единичные ссылки в старых документахЛокальная проблема

Проверьте историю изменений и журнал регистрации — вероятно, объект удалили вручную

Массовые «Объект не найден» после обменаПроблема синхронизации

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

Битые ссылки в регистрах после свёрткиОшибка обработки свёртки

Сверьтесь с архивной копией: данные могли быть утеряны безвозвратно

Ссылки появились после сбоя питанияВозможное повреждение базы

Выполните полное тестирование и исправление, проверьте физическую целостность

Как найти битые ссылки в базе

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

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

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

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

Устранение через тестирование и исправление

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

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

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

Восстановление вместо удаления: когда объект нужно вернуть

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

Из архивной копии объект можно перенести типовой обработкой «Выгрузка и загрузка данных XML» (она сохраняет идентификаторы, поэтому ссылки в рабочей базе «оживут» после загрузки). Важно: переносить нужно именно с сохранением уникальных идентификаторов, иначе загрузится новый объект с новым GUID, а старые ссылки так и останутся битыми.

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

Способы устранения битых ссылок

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

Быстро убирает ошибку; подходит для технических ссылок. Минус — пустые объекты в учёте

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

Уместна для необязательных реквизитов. Не подходит для ключевых полей документов

Восстановление из архива или обмена

Возвращает реальные данные; требует наличия копии или работающего обмена и больше времени

Удаление данных со ссылками

Только для заведомо мусорных объектов; самый рискованный вариант

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

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

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

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

Типичные ошибки
01
Запуск исправления без резервной копии — при ошибочных настройках данные теряются безвозвратно
02
Очистка всех битых ссылок подряд — документы лишаются контрагентов и номенклатуры, учёт разваливается
03
Создание заглушек вместо восстановления — пустые объекты попадают в отчёты и проводки
04
Игнорирование причины — ссылки появляются снова, потому что не устранён источник (обмен, обработка, права)
05
Перенос объекта из архива без сохранения GUID — загружается новый объект, а старые ссылки остаются битыми

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

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

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

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

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

Битые ссылки мешают обмену РИБ. Что делать в первую очередь?

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

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

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

Нужно ли монопольный режим для тестирования и исправления?

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

Что делать, если битая ссылка в закрытом отчётном периоде?

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

Итог

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

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