Администрирование · 9 мин
Как убрать битые ссылки в 1С
Что такое битые ссылки в 1С, как найти объекты с надписью «Объект не найден» и безопасно удалить их штатными средствами и обработками без потери данных.
Битая ссылка в 1С — это ссылка на объект, который был физически удалён из базы, а ссылки на него остались в документах, регистрах и справочниках. Вместо привычного наименования пользователь видит надпись вида «<Объект не найден> (75:8b9a...)». Такие «пустоты» мешают проведению документов, искажают отчёты и могут приводить к ошибкам при обмене данными и обновлении конфигурации.
Чаще всего битые ссылки появляются после прямого удаления объектов минуя пометку удаления, после неудачного обмена данными между базами, после отката базы из старой копии или после работы сторонних обработок, которые удаляют данные без контроля ссылочной целостности. Реже причина — повреждение файловой базы при аварийном завершении работы.
Убрать битые ссылки можно штатными средствами конфигуратора и типовыми обработками. Ниже разобраны способы поиска, варианты исправления, ограничения каждого метода и типичные ошибки, которые приводят к потере данных.
Что такое битая ссылка и как её распознать
Признак битой ссылки — текст «<Объект не найден>» с техническим идентификатором в поле ввода, в табличной части документа или в движениях по регистрам. В конфигураторе такая ссылка выглядит как значение с типом, но без данных: запрос к реквизитам возвращает NULL или ошибку.
Отличить битую ссылку от просто пустой ссылки просто: пустая ссылка отображается как пустое поле и является нормальным состоянием, а битая показывает системную надпись с кодом. В запросах битые ссылки выявляются соединением с таблицей объекта: если левое соединение вернуло NULL при заполненной ссылке — объект отсутствует.
Почему появляются битые ссылки
Основная причина — удаление объектов без контроля ссылочной целостности. Штатный механизм «Удаление помеченных объектов» перед удалением проверяет, где используется объект, и блокирует удаление при наличии ссылок. Но этот контроль обходится при прямом удалении через обработки, при ручной чистке таблиц SQL на клиент-серверных базах и при обмене, когда в одной базе объект удалили, а в другой на него ссылаются.
Вторая группа причин — восстановление базы из устаревшей копии: документы, введённые после создания копии, исчезают, а ссылки на них в регистрах остаются. Третья группа — технические сбои файловых баз: аварийное выключение, работа по сети с разрывами, повреждение файла 1Cv8.1CD.
Подготовка: резервная копия и оценка масштаба
Любая работа с удалением данных начинается с резервной копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD при закрытых сеансах или сделать выгрузку через конфигуратор (Администрирование → Выгрузить информационную базу). Для клиент-серверной базы копию делает администратор средствами СУБД.
Далее оцените масштаб проблемы: откройте несколько документов с надписью «Объект не найден», проверьте журналы обмена данными, выясните, когда появились первые случаи. Если битых ссылок единицы и они в некритичных справочниках — достаточно ручного исправления. Если их сотни и они в движениях документов — нужна массовая обработка и, возможно, восстановление данных из копии.
Проверить, где использовался объект, заменить ссылку вручную
Сверить с резервной копией, восстановить удалённые объекты
Тестирование и исправление базы, перепроведение документов
Откатить изменения из копии, запретить прямое удаление
Как найти битые ссылки в базе
Штатного универсального отчёта «все битые ссылки» в типовых конфигурациях нет, поэтому используют несколько подходов. Первый — визуальный: отбор в списках документов и справочников по полям, где видна надпись «Объект не найден». Второй — запрос в консоли запросов с левым соединением к таблице объекта и условием IS NULL.
Третий способ — типовые и сторонние обработки поиска битых ссылок, которые перебирают метаданные и выводят список реквизитов, содержащих ссылки на несуществующие объекты. Такие обработки запускают в тестовой копии базы, чтобы оценить объём работ без риска.
Поиск запросом
Для точечной проверки удобен запрос вида: выбрать документ, где ссылка на контрагента заполнена, но записи в справочнике нет. Условие формулируется через левое соединение: «Товары.Контрагент = Справочник.Контрагенты.Ссылка» и «Справочник.Контрагенты.Ссылка ЕСТЬ NULL» при заполненном реквизите. Результат — список документов, требующих исправления.
Способы убрать битые ссылки
Выбор способа зависит от того, нужен ли сам удалённый объект. Если объект нужен (например, номенклатура, по которой есть движения) — его восстанавливают из архивной копии или создают заново с тем же уникальным идентификатором. Если объект не нужен — ссылку заменяют на корректную или очищают.
Сравнение вариантов
Подходит для единичных случаев: открыть документ, выбрать корректный объект, перепровести. Медленно при массовой проблеме.
Подходит для массовой замены одной ссылки на другую в типовых конфигурациях. Требует монопольного доступа и копии базы.
Подходит, когда удалённые данные нужны. Объект переносится обработкой выгрузки/загрузки с сохранением GUID.
Допустимо только для необязательных реквизитов. В ключевых измерениях регистров очистка исказит учёт.
Замена через типовую обработку
В конфигурациях на БСП есть обработка «Поиск и замена дублей» и механизм замены ссылок. Порядок действий: открыть обработку в режиме предприятия, указать заменяемое значение (битую ссылку можно выбрать через её GUID) и значение-замену, выполнить поиск мест использования, затем замену. Обработка покажет все объекты, где встречается ссылка, и позволит выборочно отключить отдельные замены.
Восстановление объекта по GUID
Если объект удалён ошибочно, его можно восстановить с сохранением идентификатора: из архивной копии выгружают объект обработкой «Выгрузка и загрузка данных XML» (она переносит данные с сохранением GUID) и загружают в рабочую базу. После загрузки все битые ссылки на этот объект снова становятся рабочими автоматически — это ключевое преимущество метода перед созданием объекта «вручную» с новым идентификатором.
- 1Сделать резервную копию базы и убедиться, что она открывается
- 2Определить, нужен ли удалённый объект учёту
- 3Если нужен — восстановить его из копии с сохранением GUID
- 4Если не нужен — выполнить замену ссылки на корректное значение обработкой
- 5Перепровести затронутые документы и проверить отчёты
- 6Повторно проверить базу на оставшиеся битые ссылки
Проверка результата и профилактика
После исправлений откройте ранее проблемные документы: надпись «Объект не найден» должна исчезнуть, документы должны проводиться без ошибок. Сформируйте ключевые отчёты (оборотно-сальдовую ведомость, отчёты по складу) и сравните итоги с данными до чистки — цифры не должны измениться, если вы только заменяли ссылки.
Для файловых баз полезно запустить «Тестирование и исправление» информационной базы с проверкой ссылочной целостности — этот режим выявляет остаточные нарушения. Для профилактики запретите пользователям непосредственное удаление объектов (оставьте только пометку удаления), регламентируйте использование сторонних обработок и настройте регулярное резервное копирование.
Частые вопросы
Можно ли удалить битые ссылки автоматически по всей базе?
Универсальной безопасной кнопки нет: платформа не знает, нужен ли удалённый объект. Массовую замену выполняют обработками поиска и замены ссылок, но каждую группу замен проверяют вручную, особенно в регистрах и ключевых реквизитах документов.
Почему после восстановления объекта из копии ссылки остаются битыми?
Объект, скорее всего, создан заново с новым уникальным идентификатором, а ссылки хранят старый GUID. Нужно переносить объект обработкой «Выгрузка и загрузка данных XML», которая сохраняет идентификатор, либо заменить старые ссылки на новый объект.
Опасны ли битые ссылки для обмена данными?
Да. При обмене объект с битой ссылкой может не выгрузиться или выгрузиться с пустым реквизитом, что вызовет расхождения между базами и ошибки в протоколе обмена. Перед настройкой синхронизации базу стоит прочистить.
Поможет ли «Тестирование и исправление» убрать битые ссылки?
Этот инструмент проверяет физическую и ссылочную целостность и может исправить часть нарушений, но он не восстанавливает удалённые объекты и не подбирает осмысленную замену. Его используют как диагностику и финальную проверку, а не как основной способ исправления.
Как запретить появление новых битых ссылок?
Оставьте пользователям только пометку удаления, а физическое удаление выполняйте через штатное «Удаление помеченных объектов» с включённым контролем ссылочной целостности. Дополнительно ограничьте запуск сторонних обработок и проверяйте корректность настроек обмена.
Что важно запомнить
Битые ссылки убирают либо восстановлением удалённого объекта с сохранением GUID, либо заменой ссылки на корректное значение. Работа всегда начинается с резервной копии, а завершается перепроведением документов и сверкой отчётов. Профилактика — запрет прямого удаления и контроль обменов.