Администрирование · 13 мин
Как удалить битые ссылки в 1С
Как найти и удалить битые ссылки в 1С: типовые обработки, тестирование и исправление, монопольный режим, риски и проверка результата. Пошаговая инструкция.
Битая ссылка в 1С — это ссылка на объект, которого больше нет в базе: элемент справочника или документ удалили, а записи, где он использовался, остались. В интерфейсе такие ссылки выглядят как надпись вида «Объект не найден» с длинным кодом в скобках. Они мешают работе: отчёты показывают пустые значения, проведение документов может завершаться ошибкой, обмены данными останавливаются.
Битые ссылки появляются после прямого удаления объектов (без контроля ссылочной целостности), после сбоев при обмене, восстановления базы из некорректной копии или ручной правки данных через внешние обработки. Просто «удалить битые ссылки» одной кнопкой нельзя: сначала нужно понять, что делать с записями, которые на удалённый объект ссылаются, — очищать ссылку, удалять запись целиком или восстанавливать объект.
Ниже — практический порядок действий: от резервной копии до проверки результата. Инструкция подходит для типовых конфигураций на управляемых формах (Бухгалтерия, Управление торговлей, ERP, Зарплата и управление персоналом) и для самописных решений на платформе 8.3.
Что такое битая ссылка и как её распознать
Каждый объект в 1С имеет уникальный внутренний идентификатор. Когда в документе или регистре указывают контрагента, номенклатуру или договор, база хранит именно этот идентификатор. Если объект удалить физически — идентификатор останется в записях, но разыменовать его будет нечем. Такая «висячая» ссылка и называется битой.
Признаки битых ссылок в повседневной работе:
- в полях документов и списках отображается «<Объект не найден> (a1b2c3...)» вместо наименования;
- отчёты выводят строки с пустыми или «битыми» значениями измерений;
- при проведении документа возникает ошибка, связанная с невозможностью получить данные объекта;
- обмен данными прерывается с ошибкой чтения объекта по ссылке;
- запросы и отчёты СКД показывают значение NULL там, где раньше был объект.
Важно отличать битую ссылку от помеченного на удаление объекта. Помеченный объект физически существует, его видно в списках с красным крестиком, и ссылки на него работают. Битая ссылка — это след уже удалённого объекта, и восстановить его штатными средствами нельзя.
Подготовка: резервная копия и монопольный режим
Любые операции массовой очистки данных необратимы. Если обработка очистит ссылки, которые на самом деле нужны (например, объект «пропал» из-за временной ошибки чтения, а не из-за удаления), восстановить связи будет невозможно. Поэтому первый шаг — полная резервная копия базы.
Для файловой базы достаточно скопировать файл 1Cv8.1CD при закрытых сеансах или выполнить выгрузку в dt через конфигуратор («Администрирование» → «Выгрузить информационную базу»). Для клиент-серверной базы используйте средства СУБД (резервная копия SQL Server, PostgreSQL) или ту же выгрузку в dt.
Второе условие — монопольный доступ. Тестирование и исправление, а также удаление помеченных объектов требуют, чтобы в базе не было других активных сеансов. Завершите работу пользователей, отключите регламентные задания и фоновые процессы, иначе операция либо не запустится, либо завершится с ошибками блокировок.
Способ 1. Удаление помеченных объектов — профилактика битых ссылок
Главный источник битых ссылок — удаление объектов без контроля целостности. Штатный механизм «Удаление помеченных объектов» как раз предотвращает их появление: он проверяет, где используется объект, и не даёт удалить то, на что есть ссылки.
В типовых конфигурациях обработка находится в разделе «Администрирование» → «Обслуживание» → «Удаление помеченных объектов». Порядок работы:
- Отметьте ненужные объекты пометкой на удаление в списках.
- Откройте обработку и выберите режим — по всем объектам или выборочно.
- Нажмите «Удалить». Система покажет, какие объекты удалить нельзя и где они используются.
- Разберите препятствующие ссылки: переназначьте их на другие объекты или пометьте на удаление ссылающиеся документы.
- Повторите удаление, пока список не очистится.
Если в вашей базе битые ссылки появляются регулярно, проверьте, не удаляют ли пользователи или внешние обработки объекты напрямую, минуя пометку. Прямое удаление через код (Удалить() у объекта) не выполняет контроль ссылочной целостности — это частая причина проблемы в самописных доработках.
Способ 2. Тестирование и исправление информационной базы
Штатный инструмент конфигуратора — «Тестирование и исправление» — умеет находить битые ссылки и обрабатывать их одним из заданных способов. Откройте конфигуратор, перейдите в «Администрирование» → «Тестирование и исправление» и выберите нужные проверки.
Для работы с битыми ссылками ключевой пункт — «Проверка ссылочной целостности информационной базы». В нижней части окна задаётся поведение при обнаружении ссылок на несуществующие объекты:
Варианты обработки битых ссылок
Платформа создаёт пустые объекты-заглушки с теми же идентификаторами. Подходит, когда важно сохранить записи и разобрать их вручную позже. Минус: в справочниках появляются «пустышки», которые нужно дополнительно вычищать.
Битые ссылки заменяются на пустые значения, записи сохраняются. Подходит для реквизитов документов и регистров, где пустое значение допустимо.
Записи с битыми ссылками удаляются полностью. Самый радикальный вариант — применять только когда записи точно не нужны, например в технических регистрах сведений.
Платформа только выводит список найденных битых ссылок. Используйте для диагностики перед выбором стратегии.
Рекомендуемый порядок — сначала прогнать проверку в режиме «Не изменять» и оценить масштаб: сколько битых ссылок, в каких таблицах. Затем на копии базы выбрать режим обработки и проверить, как изменения повлияют на отчёты и документы. Только после этого повторять операцию на рабочей базе.
Тестирование и исправление работает долго на больших базах и полностью блокирует работу пользователей. Планируйте его на нерабочее время. Для клиент-серверных баз тот же инструмент доступен через конфигуратор, подключённый к серверной базе.
Способ 3. Поиск битых ссылок обработкой и запросом
Когда нужно точечно найти битые ссылки — например, только в одном справочнике или регистре — удобнее использовать запрос или специализированную обработку. Запрос с левым соединением показывает записи, где ссылка не разрешается:
ВЫБРАТЬ
Реализация.Ссылка КАК Документ,
Реализация.Контрагент КАК БитаяСсылка
ИЗ
Документ.РеализацияТоваровУслуг КАК Реализация
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
ПО Реализация.Контрагент = Контрагенты.Ссылка
ГДЕ
Контрагенты.Ссылка ЕСТЬ NULL
И НЕ Реализация.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)Такой запрос возвращает документы, где реквизит «Контрагент» заполнен, но контрагента в базе нет. По аналогии строятся проверки для любых таблиц и реквизитов. В консоли запросов результат можно выгрузить в таблицу и обработать вручную.
Для комплексной проверки всей конфигурации удобны внешние обработки «Поиск битых ссылок» — они перебирают все таблицы метаданных и формируют отчёт по каждому типу данных. Такие обработки распространяются свободно на профильных ресурсах; перед запуском убедитесь, что обработка открывается в вашем режиме совместимости, и запускайте её сначала на копии.
- 1Сделайте резервную копию и откройте базу монопольно
- 2Запросом или обработкой найдите записи с битыми ссылками и выгрузите список
- 3Определите для каждой группы записей действие: очистить ссылку, заменить на другой объект или удалить запись
- 4Выполните изменения пакетно через обработку или вручную для небольшого числа записей
- 5Перепроведите затронутые документы и пересчитайте итоги регистров при необходимости
- 6Сравните ключевые отчёты до и после очистки
Что делать с записями: очистить, заменить или удалить
Удаление самой битой ссылки — только половина задачи. Главный вопрос — что делать с записями, где она стоит. Универсального ответа нет, решение зависит от смысла данных.
Как выбрать действие
Особая осторожность нужна с регистрами бухгалтерии и накопления. Битая ссылка в измерении проводки влияет на сальдо. Простая очистка такой ссылки «обнулит» аналитику, и отчёты перестанут сходиться. В таких случаях безопаснее восстановить объект-заглушку либо скорректировать записи документом «Операция» (ручная корректировка) с понятным обоснованием.
Проверка результата и частые ошибки
После очистки убедитесь, что проблема решена и не появились новые. Повторно запустите поиск битых ссылок — список должен быть пустым или содержать только осознанно оставленные случаи. Сформируйте основные отчёты за последние закрытые периоды и сверьте итоги с данными до очистки.
Как проверить результат
Обработка и запросы не находят записей
Ссылки появляются снова — значит, их источник (обмен, обработка) продолжает работать
Итоги совпадают со значениями до очистки
Суммы изменились — вероятно, очищены ссылки в регистрах, нужен разбор отклонений
Документы проводятся без ошибок, обмены завершаются штатно
Ошибки чтения объектов сохраняются — остались необработанные таблицы
Нет «Объект не найден» и лишних пустых заглушек
Появились объекты без наименования после режима «Создавать объекты» — их нужно заполнить или удалить
Если битые ссылки появляются систематически, ищите причину, а не следствие. Проверьте настройки обменов (удаление объектов при выгрузке), права пользователей на прямое удаление, внешние обработки и регламентные задания, которые работают с данными. Устранение источника важнее разовой чистки.
Что важно запомнить
Битые ссылки удаляются через тестирование и исправление с выбранным режимом обработки либо точечно — запросами и обработками. Перед очисткой обязательны резервная копия и монопольный доступ. Записи с битыми ссылками нужно не просто чистить, а осознанно обрабатывать: очищать, заменять или удалять в зависимости от их роли в учёте. После работы — повторная проверка и сверка отчётов.
Частые вопросы
Можно ли удалить битые ссылки без конфигуратора?
Да. Поиск и очистку можно выполнить в режиме «Предприятие» с помощью внешней обработки поиска битых ссылок — она найдёт записи и позволит очистить или заменить ссылки. Однако штатная проверка ссылочной целостности с режимами «Создавать объекты» и «Удалять данные» доступна только в конфигураторе через «Тестирование и исправление».
Чем отличается пометка на удаление от битой ссылки?
Помеченный объект физически существует в базе, на него можно перейти, и ссылки на него работают. Битая ссылка — след объекта, который уже удалён физически: перейти по ней нельзя, в интерфейсе видна надпись «Объект не найден». Пометка снимается и контролируется штатным удалением, битую ссылку восстановить нельзя.
Почему битые ссылки появляются снова после очистки?
Значит, продолжает работать источник: обмен данными, который переносит ссылки без объектов, внешняя обработка или код, удаляющий объекты напрямую методом Удалить() без контроля целостности, либо восстановление из устаревших копий. Найдите и устраните источник, иначе чистка будет бесконечной.
Опасно ли очищать битые ссылки в проведённых документах?
Зависит от реквизита. Очистка неосновного поля (например, ответственного или проекта) обычно безопасна. Очистка ключевых реквизитов — контрагента, договора, организации — может нарушить отчётность и взаиморасчёты. В таких случаях лучше заменить ссылку на объект-заглушку, а не оставлять поле пустым.
Что выбрать в тестировании и исправлении: очищать ссылки или создавать объекты?
«Создавать объекты» подходит, когда записи важны и вы готовы вручную разобрать появившиеся заглушки. «Очищать ссылки» — когда пустое значение в реквизите допустимо и не ломает учёт. Если сомневаетесь, сначала запустите режим «Не изменять», выгрузите список найденного и примите решение по каждой таблице.
Нужен ли монопольный режим для поиска битых ссылок?
Для поиска — нет: запросы и обработки только читают данные и могут работать при активных пользователях. Монопольный доступ обязателен для тестирования и исправления и настоятельно рекомендуется для любой массовой очистки, чтобы избежать конфликтов блокировок и частично обработанных данных.