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

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

Как определить объект, который не найден в 1С

Как определить, какой объект не найден в 1С: расшифровка GUID, поиск битых ссылок, тестирование и исправление информационной базы, типовые сценарии.

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

Сообщение обычно содержит идентификатор вида Объект не найден (123:abcd00112233445566778899aabbcc). Цифра до двоеточия — код типа объекта в таблице базы, шестнадцатеричная строка после — уникальный идентификатор (GUID) записи. По этим данным можно точно определить, какой именно объект потерян, и решить, восстанавливать его или удалять ссылку.

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

Что означает ошибка «Объект не найден» и когда она возникает

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

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

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

Как расшифровать GUID и определить тип объекта

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

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

bsl
GUID = Новый УникальныйИдентификатор("00112233-4455-6677-8899-aabbccddeeff");
Типы = Новый Массив;
Типы.Добавить(Справочники); Типы.Добавить(Документы);
Для Каждого Коллекция Из Типы Цикл
  Для Каждого Менеджер Из Коллекция Цикл
    Ссылка = Менеджер.ПолучитьСсылку(GUID);
    Если Ссылка.ПолучитьОбъект() <> Неопределено Тогда
      Сообщить("Найден: " + Ссылка);
    КонецЕсли;
  КонецЦикла;
КонецЦикла;

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

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

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

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

Второй — штатное тестирование и исправление информационной базы. Оно находит битые ссылки автоматически и может их обработать по выбранному сценарию. Это основной инструмент для массовой чистки.

Порядок поиска битых ссылок
  1. 1
    Сделайте резервную копию базы (выгрузку в dt или копию файла 1Cv8.1CD)
  2. 2
    Запустите обработку поиска битых ссылок и дождитесь полного сканирования
  3. 3
    Зафиксируйте список: какие объекты-источники ссылаются на потерянные записи
  4. 4
    Определите по GUID тип потерянных объектов и оцените, нужно ли их восстанавливать
  5. 5
    Выберите стратегию: восстановление из копии либо очистка ссылок через тестирование и исправление

Тестирование и исправление информационной базы

Штатный инструмент запускается через конфигуратор: меню «Администрирование» → «Тестирование и исправление». Работа выполняется в монопольном режиме — все пользователи должны выйти из базы. Для серверных баз возможен запуск утилитой с параметрами командной строки.

Ключевые настройки для работы с битыми ссылками:

  • флажок «Проверка ссылочной целостности информационной базы» — именно он находит ссылки на несуществующие объекты;
  • вариант «Создавать объекты» — платформа создаст пустые объекты-заглушки с нужным GUID, ссылки станут валидными, но данные внутри заглушек придётся заполнять вручную;
  • вариант «Очищать ссылки» — битые ссылки заменяются на пустые значения;
  • вариант «Не изменять» — только отчёт без исправлений, подходит для первичной диагностики.

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

Как восстановить удалённый объект

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

Основные варианты:

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

Сравнение вариантов устранения

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

Быстро и безопасно для неважных данных. Не подходит, если в потерянном объекте была ценная информация — она не восстановится.

Создание заглушек

Ссылки становятся валидными, документы проводятся. Минус: заглушки пустые, их нужно вручную заполнять и сверять.

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

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

Профилактика: как не допустить повторения ошибки

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

Практические меры:

  • запретите пользователям непосредственное удаление объектов, оставьте только пометку на удаление;
  • удаление помеченных выполняйте регулярно через штатную обработку с контролем ссылок;
  • проверяйте самописные обработки и правила обмена — они не должны удалять данные напрямую;
  • настройте регулярное резервное копирование и периодически запускайте тестирование в режиме «Не изменять» для диагностики;
  • для файловых баз исключите копирование файла 1Cv8.1CD во время работы пользователей.
Типичные ошибки
01
Запуск тестирования и исправления без копии — при массовой очистке ссылок данные теряются безвозвратно
02
Игнорирование протокола исправления — потом невозможно понять, какие документы стали с пустыми реквизитами
03
Удаление объектов обработками без контроля ссылок — главный источник новых битых ссылок
04
Попытка вставить GUID из ошибки в код без перестановки байтов — объект не находится, и делается ложный вывод, что восстановить нельзя
Контрольные точки

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

Повторное тестирование в режиме «Не изменять»
Норма

Протокол не содержит записей о битых ссылках

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

Ссылки на несуществующие объекты находятся снова — источник проблемы не устранён

Проведение документов, где была ошибка
Норма

Документы проводятся, отчёты формируются без сообщений

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

Ошибка возникает в других объектах — битых ссылок больше, чем обработано

Содержимое созданных заглушек
Норма

Заглушки заполнены корректными данными или осознанно оставлены пустыми

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

Пустые заглушки попали в отчёты и печатные формы

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

Можно ли определить объект без конфигуратора и программирования?

Да. Воспользуйтесь готовой внешней обработкой поиска битых ссылок — она открывается в режиме предприятия через «Файл → Открыть» и показывает тип и местонахождение потерянного объекта по GUID. Для этого нужны права на открытие внешних обработок.

Опасно ли, что в базе есть битые ссылки, если ошибка не выводится?

Да. Битая ссылка может долго не проявляться, но в критический момент — при закрытии месяца, формировании регламентированной отчётности или свёртке базы — вызовет сбой. Кроме того, итоги по регистрам с битыми ссылками могут искажаться. Рекомендуется периодическая диагностика.

Чем отличаются варианты «Очищать ссылки» и «Создавать объекты» при тестировании?

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

Почему после обмена данными появились объекты «не найден»?

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

Можно ли восстановить объект, если резервной копии нет?

Полноценно — нет. Варианты: создать заглушку через тестирование и исправление и заполнить её вручную по печатным формам, отчётам или данным связанной базы обмена. Если база файловая, проверьте, не осталось ли старых копий файла 1Cv8.1CD — иногда их создают системы синхронизации или антивирусы.

Итог

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

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