Администрирование · 9 мин
Как найти битые ссылки в 1С: пошаговая инструкция
Как найти битые ссылки в 1С: штатная обработка «Поиск и удаление дублей», проверка ссылочной целостности, запросы по значению . Пошаговая инструкция.
Битая ссылка в 1С — это ссылка на объект, который был удален из базы физически, без контроля ссылочной целостности. В интерфейсе такие ссылки отображаются как «<Объект не найден> (123:abc...)» с длинным шестнадцатеричным кодом. Они появляются после прямого удаления объектов через обработки, после неудачного обмена данными, при откате базы из старой копии или после сбоев сервера.
Опасность битых ссылок в том, что они портят отчеты, ломают проведение документов, вызывают ошибки при обмене и обновлении конфигурации. Документ с битой ссылкой в табличной части может не открываться или показывать неверные итоги. Поэтому периодическая проверка базы на «битости» — обязательная часть регламентного обслуживания.
Ниже разобраны все рабочие способы поиска: от штатных инструментов, доступных бухгалтеру без программирования, до запросов и обработок для администратора. Выбирайте метод в зависимости от того, нужно ли просто найти проблемные места или сразу заменить их на корректные значения.
Признаки битых ссылок и откуда они берутся
Самый заметный признак — надпись «<Объект не найден>» в полях документов, справочников и в движениях по регистрам. В отчетах такие записи выводятся с пустым наименованием или с техническим идентификатором. При попытке открыть объект по такой ссылке 1С выдает ошибку.
Типовые причины появления: удаление объектов обработками «в обход» контроля ссылок, отключенный контроль ссылочной целостности при удалении помеченных, обрыв обмена данными между базами (объект пришел, а связанный элемент справочника — нет), восстановление базы из устаревшей копии после того, как в рабочей базе удалили данные.
Способ 1. Поиск и удаление дублей — быстрая проверка без программирования
В типовых конфигурациях на БСП (Бухгалтерия, Управление торговлей, ERP, ЗУП) есть встроенная обработка, которая умеет находить битые ссылки. Откройте раздел «Администрирование» → «Обслуживание» → «Корректировка данных» → «Поиск и удаление дублей». В некоторых версиях путь: «НСИ и администрирование» → «Поддержка и обслуживание».
В обработке выберите область поиска «Удаление дублей» не нужно — переключитесь на поиск битых ссылок, если пункт доступен, либо воспользуйтесь обработкой «Групповое изменение реквизитов» для замены найденных значений. Альтернатива — отчет «Анализ прав доступа» не подходит, а вот типовая функция «Удаление помеченных объектов» в режиме «Выборочное удаление» покажет список объектов, которые нельзя удалить из-за ссылок, — это косвенно помогает найти проблемные места.
Способ 2. Тестирование и исправление информационной базы
Штатный инструмент конфигуратора проверяет ссылочную целостность всей базы. Закройте сеансы пользователей, откройте базу в конфигураторе и выберите «Администрирование» → «Тестирование и исправление». Отметьте проверку «Ссылочная целостность информационной базы» и при необходимости «Логическая целостность».
В нижней части окна выберите режим «Тестирование» (только поиск ошибок без изменений). Запустите и дождитесь окончания — на больших базах проверка может идти десятки минут. Результат выводится в окно служебных сообщений: там будут перечислены объекты с битыми ссылками.
Способ 3. Поиск запросом по представлению «Объект не найден»
Если нужно точечно проверить конкретный справочник или документ, удобно использовать консоль запросов. Идея проста: у битой ссылки функция представления возвращает строку вида «<Объект не найден> (…)», и ее можно отфильтровать через ПОДОБНО.
ВЫБРАТЬ
Док.Ссылка,
Док.Контрагент
ИЗ
Документ.РеализацияТоваровУслуг КАК Док
ГДЕ
ПРЕДСТАВЛЕНИЕ(Док.Контрагент) ПОДОБНО "%Объект не найден%"Такой запрос покажет все документы реализации, где контрагент — битая ссылка. Меняйте таблицу и реквизит под свою задачу. Для проверки табличных частей обращайтесь к ним через точку: Документ.РеализацияТоваровУслуг.Товары.
Более надежный программный способ — проверка через метод: у битой ссылки выражение Ссылка.ПолучитьОбъект() возвращает Неопределено. Это используют в обработках, когда нужно не только найти, но и автоматически заменить значение.
Способ 4. Универсальные внешние обработки
Для полного сканирования базы по всем объектам метаданных удобнее всего подходят универсальные обработки «Поиск битых ссылок» — они перебирают все справочники, документы и регистры и выводят сводную таблицу: где найдена ссылка, какой реквизит, какой GUID потерянного объекта. Такие обработки есть в составе инструментов разработчика и на профильных ресурсах.
Порядок работы типовой: запустить обработку в режиме предприятия, выбрать проверяемые виды объектов (или все), дождаться сканирования, выгрузить результат в таблицу. Дальше по каждой строке принимается решение: восстановить объект, заменить ссылку на корректный элемент или очистить значение.
- 1Сделайте выгрузку базы в .dt через конфигуратор
- 2Найдите битые ссылки любым способом и зафиксируйте список
- 3Определите по GUID, что это были за объекты (по копии базы или журналу)
- 4Замените битые ссылки на корректные объекты или очистите их групповой обработкой
- 5Перепроведите затронутые документы и проверьте отчеты
- 6Повторно запустите поиск — битых ссылок быть не должно
Как восстановить или заменить найденные ссылки
Найти битые ссылки — половина задачи. Дальше есть три варианта действий. Первый — восстановить объект: если есть архивная копия, по GUID из текста ссылки можно найти объект в копии и перенести его в рабочую базу, сохранив идентификатор (обработками выгрузки-загрузки с режимом сохранения ссылок).
Второй — замена: обработкой «Групповое изменение реквизитов» (Администрирование → Обслуживание) замените битую ссылку на правильный элемент справочника во всех найденных местах. Третий — очистка: если объект не нужен, ссылку просто очищают, а документ перепроводят или помечают на удаление по правилам.
Сравнение способов поиска
Проверяет всю базу сразу, штатно. Минус: требует монопольного доступа, долго работает, исправление рискованно.
Точечная проверка конкретных реквизитов, быстро. Минус: нужно знать, где искать, и уметь писать запросы.
Полное сканирование с удобной таблицей результата. Минус: нужно скачивать обработку и проверять ее безопасность.
Частые ошибки и ограничения
Отдельное ограничение касается регистров: запросом по ПРЕДСТАВЛЕНИЕ() проверять большие таблицы регистров накопления долго, там лучше работать соединением с таблицей справочника — если соединение не дало результата, ссылка битая. Это быстрее и точнее, чем сравнение строк.
Как проверить результат
Список пуст
Остались записи — чистка не завершена
Документ открывается, все поля заполнены корректно
Ошибка открытия или «<Объект не найден>» в полях
Итоги сходятся с данными до чистки (кроме осознанных изменений)
Итоги изменились без причины
Синхронизация проходит без ошибок ссылочной целостности
В журнале ошибки «Объект не найден» при загрузке
FAQ
Можно ли найти битые ссылки без конфигуратора и программирования?
Да. В типовых конфигурациях на БСП используйте обработку «Поиск и удаление дублей» и «Групповое изменение реквизитов» из раздела «Администрирование». Также битые ссылки видно визуально в списках документов и отчетах по надписи «<Объект не найден>» — можно отсортировать список по колонке и собрать проблемные строки.
Что означает код в скобках после «Объект не найден»?
Это шестнадцатеричное представление уникального идентификатора (GUID) удаленного объекта. По нему можно найти объект в архивной копии базы и восстановить его с сохранением ссылки — тогда все битые ссылки в базе снова станут рабочими.
Опасно ли удалять объекты с битыми ссылками через тестирование и исправление?
Да, режим исправления удаляет объекты и очищает ссылки физически, без возможности отката. Запускайте его только в монопольном режиме и только после выгрузки базы в файл .dt. Сначала всегда делайте прогон в режиме «Тестирование», чтобы оценить масштаб.
Почему битые ссылки появляются снова после чистки?
Чаще всего источник — обмен данными: из узла РИБ или при синхронизации приходят объекты, ссылающиеся на элементы, которых в вашей базе нет. Нужно чистить обе базы и проверять правила конвертации. Вторая причина — работа пользователей с обработками прямого удаления.
Как предотвратить появление битых ссылок?
Удаляйте объекты только через штатное «Удаление помеченных объектов» с контролем ссылочной целостности, запретите пользователям прямое удаление обработками, следите за ошибками обменов и периодически запускайте проверку ссылочной целостности как регламентную операцию.
Что важно запомнить
Битые ссылки ищут через «Поиск и удаление дублей», тестирование и исправление, запросы по «Объект не найден» или универсальные обработки. Любое исправление делайте только после резервной копии. После чистки обязательно перепроведите документы, проверьте отчеты и повторите поиск.