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

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

Как восстановить удалённую ссылку в 1С

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

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

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

Как понять, что ссылка удалена, и оценить масштаб проблемы

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

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

«Объект не найден» в одном документеЛокальная проблема

Проверить только этот реквизит и связанные документы

Битые ссылки в отчётах и регистрахУдалён элемент справочника массового использования

Найти GUID и проверить наличие объекта в резервной копии

Ошибка при обмене даннымиОбъект удалён в одной из баз обмена

Проверить узлы обмена и повторную регистрацию объекта

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

Искать объект только в архивной копии до операции

Подготовка: что сделать до начала восстановления

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

Зафиксируйте GUID битой ссылки. Его можно получить, открыв запись с «Объект не найден» и скопировав текст ссылки, либо запросом через консоль запросов, выбрав значение реквизита и преобразовав его в строку. Этот идентификатор — ключ ко всем дальнейшим способам восстановления.

Проверьте журнал регистрации (Администрирование → Обслуживание → Журнал регистрации) с отбором по событию «Данные. Удаление». Если журнал вёлся, вы увидите, кто и когда удалил объект, какого он был типа и какие данные содержал в представлении. Это помогает понять, что именно нужно восстанавливать.

Способ 1. Восстановление из резервной копии

Самый надёжный вариант — если есть копия базы, сделанная до удаления объекта. Разверните копию в отдельной папке или на отдельном сервере, найдите в ней нужный объект по GUID или по наименованию и перенесите данные в рабочую базу.

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

Восстановление из копии
  1. 1
    Разверните резервную копию как отдельную базу
  2. 2
    Найдите объект по GUID или наименованию
  3. 3
    Выгрузите объект обработкой «Выгрузка и загрузка данных XML»
  4. 4
    Загрузите его в рабочую базу той же обработкой
  5. 5
    Откройте документ с битой ссылкой и проверьте, что реквизит заполнен
  6. 6
    Перепроведите затронутые документы

Если копии нет, но база клиент-серверная

Уточните у администратора СУБД, настроены ли регулярные бэкапы средствами SQL Server или PostgreSQL. Часто они есть, даже если пользователи о них не знают. Восстановить можно копию базы на момент времени (point-in-time recovery), если включена соответствующая модель восстановления.

Способ 2. Восстановление через обмен данными

Если база участвует в обмене (РИБ, синхронизация с другой конфигурацией, обмен с сайтом), удалённый объект часто продолжает существовать в другой базе. Удаление в одном узле не всегда распространяется на второй, особенно если объект уже был выгружен ранее.

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

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

Способ 3. Пересоздание объекта с тем же GUID

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

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

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

Если восстановить нельзя: очистка битых ссылок

Иногда объект восстановить нечем или незачем — например, удалён устаревший элемент, а ссылки остались в неактуальных документах. Тогда правильнее очистить битые ссылки, чтобы они не мешали отчётам и обменам.

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

Сравнение вариантов

Восстановление из копии

Полное восстановление данных. Требует наличия свежей копии и времени на развёртывание

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

Быстро и без остановки работы. Подходит только при настроенной синхронизации

Пересоздание с GUID

Оживляет ссылки, но данные заполняются вручную. Нужны навыки разработки

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

Убирает ошибки, но данные теряются безвозвратно. Последний вариант

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

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

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

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

Реквизит в документе
Норма

Отображается наименование объекта, он открывается по клику

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

Осталась надпись «Объект не найден»

Проведение документа
Норма

Проводится без ошибок

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

Ошибка ссылочной целостности

Отчёт по регистру
Норма

Данные заполнены, суммы сходятся

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

Пустые строки или расхождения с прежними данными

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

Сеанс завершается без предупреждений

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

Ошибка загрузки объекта или конфликт ссылок

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

Типичные ошибки
01
Создание объекта вручную с тем же наименованием — новый GUID не восстановит старые ссылки
02
Запуск «Тестирования и исправления» до попытки восстановления — ссылки очищаются безвозвратно
03
Восстановление объекта без перепроведения документов — движения по регистрам остаются пустыми
04
Работа без резервной копии — любая ошибка становится необратимой

Часто задаваемые вопросы

Можно ли отменить удаление объекта в 1С кнопкой «Отменить»?

Нет, в 1С нет функции отката удаления, как в текстовом редакторе. После подтверждения удаления объект стирается из базы физически. Восстановление возможно только из резервной копии, через обмен данными или пересозданием объекта с исходным GUID.

Чем пометка на удаление отличается от непосредственного удаления?

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

Откуда берётся GUID битой ссылки, если объект уже удалён?

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

Опасно ли запускать «Тестирование и исправление» на рабочей базе?

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

Восстановился объект, но отчёт всё равно пустой. Что не так?

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

Итог

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

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