Битые ссылки «Объект не найден»: найти, заменить или очистить

· 11 мин

Содержание

«Объект не найден» в 1С значит, что реквизит документа, справочника или записи регистра ссылается на объект, которого в базе больше нет. Исправить ошибку можно тремя способами: найти и заново выбрать правильное значение, заменить битую ссылку на существующий объект или удалить её через Конфигуратор: Администрирование → Тестирование и исправление, флажок «Проверка ссылочной целостности».

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

Что означает надпись «Объект не найден» и откуда она берётся

В форме документа или в отчёте битая ссылка выглядит так:

<Объект не найден> (75:b5d4001a4b7ec9d011e5a3c4e8f1b2d7)

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

Типовые причины появления битых ссылок:

  • 🗑️ Непосредственное удаление. Объект удалили клавишей Shift+Del или командой «Удалить» у пользователя с полными правами, без проверки ссылок.
  • 🔄 Обмен данными и РИБ. Пришёл документ, а справочник, на который он ссылается, не был выгружен или отклонён правилами обмена.
  • 📥 Частичная загрузка. Данные переносили обработкой выгрузки-загрузки XML, загрузили не всё.
  • 💥 Аварийное завершение. Сбой питания или переполнение диска при записи в файловую базу . Тут битые ссылки часто идут вместе с физическими повреждениями.
  • 🧩 Удалённое расширение. Отключили или удалили расширение, в котором были свои справочники. Ссылки на его объекты в основных данных остались.
  • 🛠️ Правка напрямую в СУБД. Кто-то удалял строки SQL-запросом мимо 1С.

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

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

Одна найденная ссылка редко бывает единственной. Прежде чем исправлять, выясните масштаб.

Запрос через консоль запросов

Битая ссылка при обращении к любому реквизиту объекта даёт NULL. На этом построен поиск. Пример для контрагентов в документах реализации БП 3.0:

ВЫБРАТЬ
    Док.Ссылка КАК Документ,
    Док.Контрагент КАК БитаяСсылка
ИЗ
    Документ.РеализацияТоваровУслуг КАК Док
ГДЕ
    Док.Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
    И Док.Контрагент.ПометкаУдаления ЕСТЬ NULL

Условие на пустую ссылку обязательно. Пустое значение тоже даёт NULL при обращении к реквизиту, и без отбора в выборку попадут все документы с незаполненным полем.

ПометкаУдаления выбрана потому, что этот стандартный реквизит есть у любого справочника и документа. Наименования или кода у объекта может не быть.

Консоль запросов в 8.3 с интерфейсом «Такси» — это внешняя обработка с диска ИТС или встроенная в конфигурацию. В БП 3.0 её ищите через Главное меню → Все функции → Обработки. Если команды «Все функции» нет, включите её: Сервис и настройки → Параметры → Отображать команду "Все функции".

Как понять, какой объект пропал

Иногда важно узнать, что именно было удалено. Идентификатор из надписи переставлен по частям. Из 32 символов после двоеточия собирается обычный GUID:

Стр = "b5d4001a4b7ec9d011e5a3c4e8f1b2d7";
Ид = Сред(Стр, 25, 8) + "-" + Сред(Стр, 21, 4) + "-" + Сред(Стр, 17, 4) + "-"
    + Сред(Стр, 1, 4) + "-" + Сред(Стр, 5, 12);
Ссылка = Справочники.Контрагенты.ПолучитьСсылку(Новый УникальныйИдентификатор(Ид));

С этим идентификатором ищите объект в базе-источнике обмена, в архивной копии или в журнале регистрации.

Журнал регистрации

Кто и когда удалил объект, покажет журнал: в БП 3.0 это Администрирование → Обслуживание → Журнал регистрации. Поставьте отбор по событию «Данные. Удаление» и периоду, когда ошибка появилась. Если журнал вёлся на уровне «Ошибки», удаления там не будет. Тогда остаётся сравнение с резервной копией.

Исправление ошибки «Объект не найден» через Тестирование и исправление

Главный инструмент — Конфигуратор. Запустите базу в режиме Конфигуратора и откройте Администрирование → Тестирование и исправление.

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

Что отметить:

  1. Флажок «Проверка логической целостности информационной базы».
  2. Флажок «Проверка ссылочной целостности информационной базы» — именно он ищет битые ссылки.
  3. Режим «Только проверка» для первого прохода. Так вы увидите список проблем без изменений в данных.
  4. Нажмите «Выполнить» и сохраните протокол в текстовый файл.

Во втором проходе выбирается действие для ссылок на несуществующие объекты:

ВариантЧто произойдётКогда выбирать
Создавать объектыСоздаются пустые объекты-заглушки с тем же идентификаторомПочти всегда: данные сохраняются, ссылки становятся «живыми»
Очищать ссылкиРеквизит становится пустымТолько если значение точно не нужно и вы знаете, что там было
Не изменятьТолько запись в протоколПервый проход и разведка

Почему «Создавать объекты» лучше

Заглушка получает тот же идентификатор, что и пропавший объект. Все документы снова на неё ссылаются, и связь не теряется. Наименование заглушки начинается со слов «Объект не найден», поэтому найти её в списке справочника легко: отбор по наименованию.

Дальше у вас два пути:

  • ✏️ Заполнить заглушку. Если пропал, скажем, контрагент, и вы знаете, какой, — впишите наименование, ИНН и остальные реквизиты. Документы автоматически покажут правильные данные.
  • 🔀 Объединить с настоящим объектом. Если в справочнике уже есть правильный контрагент, замените заглушку на него обработкой «Поиск и удаление дублей» (см. следующий раздел). Ссылки перейдут на нужный элемент, заглушка удалится.

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

Запуск без интерфейса

Для серверной базы или ночного регламента проверку запускают из командной строки:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /IBCheckAndRepair -LogAndRefsIntegrity -BadRefCreate /Out "C:\logs\tii.txt"

Ключ -LogAndRefsIntegrity включает логическую и ссылочную проверку, -BadRefCreate — создание заглушек. Для разведки замените его на -TestOnly. Номер версии в пути подставьте свой.

Как удалить или заменить битую ссылку без Конфигуратора

Если битых ссылок десяток и пользователей выгонять нельзя, поправьте их в пользовательском режиме.

Перевыбор значения в документе

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

Групповое изменение реквизитов

Когда документов много, но правильное значение одно, используйте обработку «Групповое изменение реквизитов». В БП 3.0 она находится в Администрирование → Обслуживание → Корректировка данных.

  1. Выберите тип объектов, например «Реализация (акты, накладные, УПД)».
  2. Установите отбор по реквизиту с битой ссылкой. Удобнее отобрать документы списком из результата запроса.
  3. Укажите новое значение реквизита.
  4. Запустите изменение и проверьте несколько документов вручную.

Групповое изменение проведённых документов в закрытом периоде меняет движения задним числом. Если отчётность за период сдана, сначала согласуйте это с главным бухгалтером.

Поиск и удаление дублей

Эта обработка из той же группы Корректировка данных умеет заменять все ссылки на один элемент ссылками на другой. Используйте её после «Создавать объекты» в Тестировании и исправлении:

  1. Откройте обработку и выберите справочник, например «Контрагенты».
  2. Задайте условие поиска так, чтобы в одну группу попали заглушка и правильный элемент.
  3. В группе отметьте правильный элемент как оригинал.
  4. Выполните замену: ссылки перейдут на оригинал, заглушка будет удалена.
Диагностика: выберите симптом

«Объект не найден» в регистрах сведений и накопления

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

Регистры, подчинённые регистратору

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

Правильный порядок:

  1. Найдите документ-регистратор. В отчёте или в списке регистра колонка «Регистратор» показывает его.
  2. Исправьте реквизит в самом документе одним из способов выше.
  3. Перепроведите документ. Для массовой операции в БП 3.0 есть обработка «Групповое перепроведение документов »: её проще всего найти через Все функции → Обработки.

После массового перепроведения в Конфигураторе выполните «Пересчёт итогов» в том же окне Тестирования и исправления. Это обновит итоговые таблицы регистров накопления и бухгалтерии.

Независимые регистры сведений

Такие регистры (курсы валют, цены, настройки) заполняются не документами. Битую запись можно удалить или поправить вручную:

  1. Откройте регистр через Все функции → Регистры сведений.
  2. Установите отбор по колонке, где видна «<Объект не найден>».
  3. Удалите запись или выберите в ней правильное значение.

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

Проверка физической и логической целостности базы

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

Файловая база: chkdbfl.exe

В папке bin каждой версии платформы лежит утилита chkdbfl.exe. Она проверяет физическую структуру файла 1Cv8.1CD.

  1. Закройте все сеансы базы. Утилита работает только с неиспользуемым файлом.
  2. Скопируйте 1Cv8.1CD в другое место — это ваша страховка.
  3. Запустите chkdbfl.exe, укажите путь к файлу и сначала проверьте без исправления.
  4. Если ошибки есть, повторите с флажком «Исправлять обнаруженные ошибки».

После chkdbfl запускайте Тестирование и исправление: сначала реиндексация и логическая проверка, потом ссылочная.

Клиент-серверная база

Для базы на MS SQL Server или PostgreSQL физическую целостность проверяют средствами СУБД, это задача администратора. Со стороны 1С — то же Тестирование и исправление, но запускать его стоит на копии базы, развёрнутой на тестовом сервере. Проверка большой базы идёт часами.

Как не допустить повторения

Битые ссылки почти всегда появляются из-за удаления без проверки. Закройте эту дыру и настройте копии.

  • 🔒 Права. Обычным пользователям оставляйте только пометку на удаление. Право непосредственного удаления — у одного администратора.
  • 🧹 Удаление помеченных объектов. Удаляйте через обработку Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов. Она проверяет ссылки и не удалит объект, который где-то используется.
  • 🔄 Обмены. После настройки или изменения правил обмена проверяйте первые выгрузки на полноту. Справочники должны уходить раньше документов или вместе с ними.
  • 🧩 Расширения. Перед удалением расширения со своими справочниками выясните, где на них есть ссылки.
  • 📝 Журнал регистрации. Держите уровень «Все события» или хотя бы «Изменения»: тогда удаления видны.

Резервное копирование

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

  • Для файловой базы в БП 3.0 есть встроенная настройка: Администрирование → Обслуживание → Резервное копирование и восстановление. Укажите расписание и папку на другом диске.
  • Для клиент-серверной базы копии делаются планом обслуживания в СУБД. Выгрузка .dt из Конфигуратора требует выгнать всех из базы и подходит только как дополнительная.
  • Храните минимум несколько последних копий. Ошибку часто замечают через неделю-две, и вчерашняя копия уже содержит те же битые ссылки.
Регламент против битых ссылок
Выполнено: 0 / 6

Чего не делать при исправлении битых ссылок

  • ❌ Не запускать «Очищать ссылки» на рабочей базе без первого прохода «Только проверка». Вы не узнаете, что потеряли.
  • ❌ Не удалять заглушки «Объект не найден» сразу после создания. Пока на них ссылаются документы, удалив их непосредственно, вы получите те же битые ссылки заново.
  • ❌ Не править движения регистров вручную, если у них есть регистратор. Перепроведение вернёт старое.
  • ❌ Не восстанавливать всю базу из копии ради одного объекта. Вы потеряете работу всех пользователей с момента копии. Лучше развернуть копию рядом и перенести только пропавший объект.
  • ❌ Не запускать chkdbfl на единственном экземпляре файла. Если исправление не удастся, вернуться будет не к чему.

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

Можно ли оставить битые ссылки как есть?
Можно, если их единицы в старых закрытых периодах. Но такие документы нельзя перепровести без ошибки, а в отчётах появятся строки без наименования. Для текущего периода лучше исправить.
Повлияют ли битые ссылки на сданную отчётность?
Цифры в регистрах от самой надписи не меняются. Они меняются, когда вы перепроводите документы или очищаете ссылки. Поэтому исправления в сданном периоде согласуйте с главным бухгалтером.
Что делать, если база в облаке 1С:Фреш?
Конфигуратор и Тестирование и исправление там недоступны пользователю. Исправляйте в пользовательском режиме: перевыбор, групповое изменение, поиск и удаление дублей. Если нужна проверка базы целиком, обращайтесь в поддержку сервиса.
Почему после «Создавать объекты» в справочнике появились элементы с непонятными названиями?
Это и есть заглушки для пропавших объектов. Их имя начинается со слов «Объект не найден». Заполните их или замените правильными элементами через поиск и удаление дублей.
Сколько идёт Тестирование и исправление?
Для файловой базы на несколько гигабайт обычно от десятков минут до пары часов. Серверная база в сотни гигабайт может проверяться всю ночь. Поэтому первый прогон делайте на копии.