При работе в 1С:Комплексная автоматизация или 1С:ERP пользователи часто сталкиваются с системным сообщением вида <Объект не найден> (1033:97b52880239022b111eb4abfa0e58cbc). Эта ошибка возникает, когда в базе данных существует ссылка на объект (документ или элемент справочника), который был физически удален или еще не был создан (не загружен при обмене). Рассмотрим подробно, как локализовать проблемный объект и очистить систему от подобных «фантомных» записей.
Прежде всего, проанализируем само сообщение об ошибке. Текст в скобках — это уникальный идентификатор объекта в системе. Он состоит из двух частей, разделенных двоеточием:
TableID). В каждой базе 1С этот номер соответствует определенному типу данных (например, документу «Ведомость в банк» или справочнику «Физические лица»).Выясним, к какой таблице относится код 1033. Для этого воспользуемся консолью запросов или напишем небольшой фрагмент кода, который перебирает метаданные и ищет соответствие внутреннему номеру. Рассмотрим пример кода для поиска типа объекта по его внутреннему идентификатору:
Для Каждого ТипОбъекта Из Метаданные.Документы Цикл
Менеджер = Документы[ТипОбъекта.Имя];
Если ПолучитьНомерТаблицы(Менеджер) = "1033" Тогда
Сообщить("Тип документа найден: " + ТипОбъекта.Имя);
Прервать;
КонецЕсли;
КонецЦикла;
Обратите внимание, что функция ПолучитьНомерТаблицы является вспомогательной и может потребовать использования метода ПолучитьСтруктуруХраненияБазыДанных(). Также можно воспользоваться специализированными внешними обработками для поиска «битых» ссылок, которые автоматически сопоставляют ID таблицы с метаданными.
Если ошибка возникает во время массовой обработки документов, самый простой способ найти «виновника» — запустить стандартную обработку «Проведение документов» (доступна через «Все функции» или «Функции для технического специалиста» — Стандартные). Рассмотрим этот процесс по шагам:
<Объект не найден>.Проанализируем результат: если система остановилась на документе «Списание с расчетного счета», значит, внутри него (например, в поле «Документ-основание» или в табличной части с расшифровкой платежа) выбрана несуществующая ведомость.
Если мы знаем, что ошибка связана, например, с ведомостями, мы можем программно найти все записи, где поле ссылки содержит некорректные данные. Разберем пример запроса, который поможет выявить документы с битыми ссылками в табличной части:
ВЫБРАТЬ
ВедомостьВБанк.Ссылка КАК Документ,
ВедомостьВБанк.Состав.(
ФизическоеЛицо КАК ФизЛицо
)
ИЗ
Документ.ВедомостьВБанк КАК ВедомостьВБанк
ГДЕ
ВедомостьВБанк.Состав.ФизическоеЛицо.Наименование ЕСТЬ NULL
И НЕ ВедомостьВБанк.Состав.ФизическоеЛицо = ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)
Этот запрос находит строки, где ссылка на физическое лицо не пустая, но при этом получить данные (например, Наименование) невозможно, что характерно для ситуации «Объект не найден».
В случаях, когда «битых» ссылок много, и они возникли в результате некорректного удаления данных (например, программного удаления без контроля ссылочной целостности), стоит прибегнуть к штатному механизму «Тестирование и исправление» (ТиИ) в конфигураторе. Проанализируем настройки этого инструмента:
Важно: перед выполнением ТиИ обязательно создайте резервную копию базы данных, так как изменения, вносимые этой процедурой, необратимы.
Выясним основные причины появления подобных инцидентов в 1С:Комплексная автоматизация:
<Объект не найден>. Попробуйте провести документ под пользователем с полными правами./ClearCache.Если ваша ошибка напрямую связана с ведомостями (как в тексте сообщения 0), обратите внимание на регистр сведений «Оплата ведомостей на выплату зарплаты». Часто бывает, что движения по этому регистру «зависают», ссылаясь на удаленный документ. Проверьте записи этого регистра с помощью консоли запросов. Если вы обнаружите там запись, где вместо регистратора или основного измерения стоит <Объект не найден>, такую запись необходимо удалить программно или через исправление документа-регистратора.
Рассмотренные методы позволяют не только найти «битый» объект, но и понять природу его появления. Систематический подход — от простого перепроведения к анализу GUID и тестированию базы — гарантирует успешное решение проблемы и восстановление работоспособности системы.