Битая ссылка, <Объект не найден>, Уникальный Идентификатор, GUID
Когда кто-то удаляет данные из базы без проверки ссылок на эти объекты, то везде где этот объект использовался появляется сообщение вида: <Объект не найден> (84:bf5600145e3710ab11dda4c605dbe824) .
В данной статье я опишу пример быстрого восстановления данных.
Для пользователя:
Скачиваете эту обработку восстановления объектов по GUID :
Для 1С 8.1:
здесь или Скачивать файлы может только зарегистрированный пользователь!
Для 1С 8.2:
Скачивать файлы может только зарегистрированный пользователь!
. Новая Версия. 8.2 и 8.3 — Скачивать файлы может только зарегистрированный пользователь!
Подробное описание: Объект не найден в 1С или про Битые ссылки 1С
и открываете ее в программе:
1. Копируем фразу <Объект не найден. и вставляем в поле Объект не найден, жмем на кнопку GUID -> и получаем 05dbe824-a4c6-11dd-bf56-00145e3710ab 
2. Если Вы знаете что удалили, то можете сразу нажать кнопку Создать Объект Из GUID — Пункт 4.
3. Если Вы не знаете что удалили, тогда вам нужно поднять архивную копию базы, открыть там обработку и вставить полученный GUID в поле GUID.
далее нажать Ссылку -> и в правом поле отобразится необходимый Вам объект(в моем случае Попов Роман Владимирович).
Открыв его, узнаем что это справочник Сотрудники и всю содержащуюся в справочнике информацию. Возвращаемся в базу, где необходимо восстановить объект и жмем кнопку Создать Объект Из GUID
4. Из открывшегося списка выбираем Справочник Сотрудники, в открывшейся форме заполняем все поля данными из архивной базы и жмем OK. Все, данный объект восстановлен.
Для программиста:
Для получения уникального идентификатора объекта, используйте код вида:
Код 1C v 8.х
Для того чтобы преобразовать <Объект не найден> (84:bf5600145e3710ab11dda4c605dbe824) в УникальныйИдентификатор (GUID)
Код 1C v 8.х
Для получения ссылки по уникальному идентификатору, используйте код:
Код 1C v 8.х
Создать объект документ или справочник и установить ему свой Уникальный идентификатор
Код 1C v 8.х
еще можно получить ИдентификаторДокумента при OLE доступе:
Код 1C v 7.x
Еще посмотрите метод:
ЗначениеВСтрокуВнутр(<?>);
Синтаксис:
ЗначениеВСтрокуВнутр(<Объект>)
Назначение:
Преобразование значения объекта агрегатного типа в строковое системное представление.
Возвращает: представление значения объекта в строковом системном виде.
Параметры:
<Объект> — значение объекта агрегатного типа данных которое нужно преобразовать.
Подробнее см. в документации, глава ''Системные процедуры и функции''
1с объект не найден как удалить
1C. Поиск «Объект не найден» в регистре и удаление
Иногда в ИБ можно встретить ссылки на объекты <Объект не найден> (75:a353ac9e17b7bc7111e60238e0dc59c6), это ссылки на удаленные объекты. Получаются такие ссылки в ходе сбоев ИБ, РИБ(Распределенных Информационных Баз) или других механизмов создающих ссылки не записанных объектов(разбирал здесь).

В любом случае — это не есть хорошо, будем исправлять! Разберем пример поиска таких ссылок в регистре сведений «Данные для обработки» некой конфигурации, регистр имеет одно измерение «Номенклатура«, тип Справочник.Номенклатура.
В рамках задачи необходимо удалить записи регистра с битыми ссылками, в статье не будет разбираться тестирование и исправление ИБ, или другое восстановление ссылок.
Поиск ссылок <Объект не найден>
Сама ссылка считается валидной, а вот если обратиться к ее реквизиту в запросе, то получим NULL. Из этого пишем запрос получающий наименование из ссылки в измерении «номенклатура» регистра сведений «Данные для обработки» и отбираем записи у которых значение запрашиваемого реквизита равно NULL. Если измерений по которым необходимо производить поиск больше одного, то объединяем условия через ИЛИ.
А для удаления таких записей просто создадим наборы записей указав отборы и запишем.
После выполнения данного кода из регистра сведений будут удалены все записи со ссылками <Объект не найден>.
Как исправить ошибку — объект на найден в 1С

В статье рассмотрим вопрос как исправляются те ситуации в программе, когда можно увидеть ошибку Объект на найден. Рассмотрим на примере конфигурации 1С:Бухгалтерия 3., но материал также будет актуален и для других программных продуктов фирмы 1С. Как показывает практика , ошибка, объект не найден в 1С не редкость и можеи возникать вследствие, к примеру, повреждения информационной базы или удаления объектов информационной базы и пр. Перед выполнением всех действий рекомендуется сделать архивную копию информационной базы.
Для начала приведем пример как может выглядеть данная ошибка в 1С. Как видим вместо номенклатуры в строке табличной части присутствует “объект на найден”.

Также ошибку Объект не найден в 1С можно увидеть в каком-либо сформированном отчете, в котором будем выведен список документов-регистраторов. Вместо конкретного документа может строка с “объект не найден”. При этом по данному документу может отображаться сумма в отчете.
Какие возможны пути решения во втором случае с документом. Можно попробовать произвести тестирование и исправление. Для этого открываем информационную базу в режиме конфигуратора и далее раскрываем раздел “Администрирование”. После этого выбираем пункт “Тестирование и исправление”.

Далее программа предложит перед выполнением сделать резервную копию. Лучше воспользоваться данной рекомендацией. В окне устанавливаем следующие галочки и нажимаем “Выполнить”.

По завершении в окне внизу появится сообщение о том, что тестирование завершено. И можно проверить результат в информационной базе.
В том случае если имело место удаление без пометки на удаление и контроля ссылочной цельности, то восстановить удаленный объект в этой базе уже нельзя. Для решения проблемы, при наличии свежей резервной копии можно восстановить ее и работать в ней.
Если мы знаем какой объект был удален, то можно прибегнуть к помощи обработки “Выгрузка и загрузка данных XML”. Найти ее можно на просторах интернета или скачать с сайта ИТС. Битые ссылки заменятся нужным объектом из развернутой копии. В нашем примере в документа была удалена номенклатура конфеты “Белочка”.
Открываем обработку в архивной копии и нас будет интересовать закладка “Выгрузка”. Далее переходим на закладку “Дополнительные объекты для выгрузки”. Добавляем интересующую нас номенклатуру в табличную часть и ниже указываем путь, куда будет сохранен выгружаемый xml файл. После чего нажимаем “Выгрузить”.

Далее открываем данную обработку в той базе, где объект не найден и переходим на закладку “Загрузка”. Выбираем наш сохраненный файл выгрузки и нажимаем “Загрузить данные”.

После загрузки проверяем наш документ и видим вместо объект не найдем стоит нужная номенклатура “Белочка”.
Поиск и восстановление битых ссылок (объект не найден)
Битые ссылки появляются в базе как правило после непосредственного удаления объектов (без контроля ссылок на них).
Когда объект был удален непосредственно, то все ссылки на него в справочниках, в документах, в регистрах стали битыми и отображаются следующим образом:
Такие ссылки могут возникать:
1. В результате действий пользователей имеющих право непосредственного удаления объектов, без пометки на удаление и контроля ссылочной целостности перед удалением. Поэтому такие права у пользователей желательно забрать;
2. При выполнении обработки некорректно удаляющей объекты;
3. При выполнении обмена между информационными базами в варианте РИБ или обмен по правилам обмена между отличающимися базами.
Бывает так, что пользователь в одной базе участвующей в обмене, вполне корректно удалил объект т.к. ссылок на него в этой базе не было. Информация об удалении объекта передается в другую базу, где на него есть ссылки. В типовых конфигурациях объект при этом удаляется непосредственно, и возникают «битые» ссылки. Как пример — процедура УдалитьОбъектПоСсылке() в модуле обработки ОбменДаннымиXML. В конце этой процедуры вызывается процедура УдалитьОбъект(Объект, Истина). Вторым параметром в этой процедуре является признак непосредственного удаления объекта. Необходимо заменить его на Ложь;
Битые ссылки можно обнаружить при выполнении тестирования и исправления, включив опцию «Проверка ссылочной целостности информационной базы». А также их можно увидеть при работе с базой в режиме 1С:Предприятие, открыв форму объекта содержащего в одном из реквизитов «битую» ссылку.
Как с этим бороться?. Ну во первых ограничить права пользователей на непосредственное удаление объектов и поправить проблемные участки кода в конфигурации создающие предпосылки для возникновения таких ссылок. А также не забывать делать архивные копии базы.
Эти записи, конечно, можно исправить при тестировании, поставив опцию «Создавать объекты» или «Очищать ссылки». В таком случае мы избавимся от битых ссылок, но это не поможет нам восстановить исходное состояние базы. Тогда из учета окончательно потеряются изменения, внесенные этими объектами, а это опасно.
Если имеется достаточно свежая архивная копия базы, то можно попробовать восстановить эти ссылки.
Для этих целей в интернете можно найти достаточно много обработок.
Например вот эта: http://help1c.com/faq/view/1128.html «Поиск в базе битых ссылок — «объект не найден», которая позволяет найти битые ссылки в режиме 1С:Предприятия, без запуска конфигуратора 1С и выполнения «тестирования и справления».
Найти удаленный объект в архивной копии базы можно при помощи этой обработки: //infostart.ru/public/14655/
Однако, заниматься этим вручную — это утомительная и малопроизводительная трата времени. Гораздо эффективнее поручить эту работу самой же 1С.
На Инфостарте уже публиковались обработки позволяющие сделать это автоматически.
И хотя цели у моей и этой обработки одинаковые — восстановление «битых» ссылок по архивной копии, подход к решению этих целей у нас разный.
Основное отличие моей обработки состоит в следующем:
Не используется протокол тестирования полученный в конфигураторе. Битые ссылки ищутся непосредственно в режиме 1С:Предприятия. При этом можно ограничивать поиск определенным типом объектов, например искать только ссылки с типом «Справочник.ДоговорыКонтрагентов».
Для удобства подключения к архивной копии базы использована обработка //infostart.ru/public/16628/ которая позволяет выбирать нужную базу из списка аналогичного списку баз 1С и подключаться к ней.
Несмотря на наличие подобных обработок на Инфостарте, возможно эта покажется кому-то более удобной в использовании.
Вовремя сделанная архивная копия может избавить вас от многих проблем. Удачи!
Как найти и удалить битые ссылки в 1С 8.3

Открыв документ или справочник на месте реквизита, который обычно заполнен, вы обнаруживаете надпись «Объект не найден…». Это может означать только одно – кто-то из пользователей удалил данные базы данных, не проконтролировав их использование. Ситуация неприятная, но не безвыходная – подобные проблемы можно и нужно решать, не допуская в будущем. К сожалению, штатных механизмов для решения не предусмотрено, поэтому придется самостоятельно писать обработку для проверки и исправления. Описанные ниже действия требуют определенных знаний, поэтому, если вы не уверены в своих силах, обращайтесь за услугами по доработке и обслуживанию 1С к профессионалам.
Причины, поиск и исправление битых ссылок
При возникновении любой ошибки мы стараемся не только нивелировать ее последствия, но и предотвратить ее возникновение в будущем. Чтобы не допустить повторного появления ссылок на удаленные объекты, нам необходимо понять причины их появления в базах 1С 8.3. Обычно подобные явления, называемые битыми ссылками, возникают из-за следующих нюансов:
- Недостаточно безопасно настроены права, из-за чего у пользователей есть возможность прямого удаления элементов базы данных. Обычно простым пользователям не дают права на удаление во избежание подобных ситуаций;
- Случайное программное удаление данных. Для недопущения битых ссылок используйте функцию «УдалитьОбъекты», передавая объекты в нее в виде массива ссылок. Эта функция проверяет, есть ли в базе ссылки на удаляемые объекты, и стирает только неиспользуемые данные;
- Неверно настроенный обмен данными. Здесь совет один – при создании обмена между различными базами стоит быть внимательнее и проверить все ключевые реквизиты.
Рис.1 Тестирование и исправление ИБ
После того, как мы разобрались с причинами, нам предстоит исправить сложившуюся ситуацию. Для этого необходимо найти битые ссылки и удалить или исправить их. Для этих целей платформа 1С имеет функционал тестирования и исправления, встроенный в конфигуратор. Чтобы его запустить, необходимо зайти в меню «Администрирование» — «Тестирование и исправление», настроить параметры и нажать «Выполнить». Если оптимизация и ускорение работы 1С вызывает у вас сложности, обратитесь к нашим специалистам по сопровождению 1С.
После выполнения тестирования и исправления 1С выдаст информационное окно, в котором перечислены все исправленные объекты. Эти данные лучше сохранить, чтобы в будущем не было претензий со стороны пользователей. Но у этого механизма есть два серьезных недостатка – он медленный и ему необходим монопольный доступ. Поэтому большинство специалистов самостоятельно пишут небольшие обработки, которые ищут и исправляют битые ссылки.
Для программного поиска обычно используют один из двух методов – с помощью языка запросов или через функцию «ПолучитьОбъект». Рассмотрим пример, когда нам необходимо найти ссылки на удаленного поставщика в документах «ПриобретениеТоваровУслуг». Выберем все документы, где значение поля «Партнер» не равно пустой ссылке, то есть заполнено, и есть NULL. Этот метод хорош тем, что можно установить дополнительные отборы или взять сразу несколько типов документов.
Результатом запроса будет перечень документов с битыми ссылками. Чтобы их удалить, мы получаем объект каждого документа по ссылке, заменяем реквизит «Партнер» на пустую ссылку и записываем документ. Также можно заменить « .» на другого партнера или попробовать восстановить данные из резервной копии.
Использование метода «ПолучитьОбъект» постепенно уходит в прошлое, но остается достаточно эффективным решением для поиска битых ссылок. Суть в проверке каждого документа определенного типа и, если обнаружена битая ссылка в 1С, то удаляем ее или заменяем.
На практике удаление битых ссылок и их замена чаще всего осуществляются в ручном режиме ответственными пользователями. Для этого им нужен перечень документов, который мы им можем обеспечить, заменив в коде запись документа на команду «Сообщить».
Существует возможность воссоздать удаленные данные, используя ссылку из документов. Однако в современных конфигурациях количество реквизитов достаточно большое и программно все их заполнить сложно. В любом случае помните, что необходимо устранить причину возникновения битых ссылок после их ликвидации в базе.
По всем вопросам, связанным с оптимизацией работы 1С, обращайтесь за консультацией по 1С по телефону, а также оставляйте заявки на нашем сайте. Наши специалисты свяжутся с вами в кратчайшие сроки.
1C. Поиск «Объект не найден» в регистре и удаление
Иногда в ИБ можно встретить ссылки на объекты <Объект не найден> (75:a353ac9e17b7bc7111e60238e0dc59c6), это ссылки на удаленные объекты. Получаются такие ссылки в ходе сбоев ИБ, РИБ(Распределенных Информационных Баз) или других механизмов создающих ссылки не записанных объектов(разбирал здесь).

В любом случае — это не есть хорошо, будем исправлять! Разберем пример поиска таких ссылок в регистре сведений «Данные для обработки» некой конфигурации, регистр имеет одно измерение «Номенклатура«, тип Справочник.Номенклатура.
В рамках задачи необходимо удалить записи регистра с битыми ссылками, в статье не будет разбираться тестирование и исправление ИБ, или другое восстановление ссылок.
Поиск ссылок <Объект не найден>
Сама ссылка считается валидной, а вот если обратиться к ее реквизиту в запросе, то получим NULL. Из этого пишем запрос получающий наименование из ссылки в измерении «номенклатура» регистра сведений «Данные для обработки» и отбираем записи у которых значение запрашиваемого реквизита равно NULL. Если измерений по которым необходимо производить поиск больше одного, то объединяем условия через ИЛИ.
А для удаления таких записей просто создадим наборы записей указав отборы и запишем.
После выполнения данного кода из регистра сведений будут удалены все записи со ссылками <Объект не найден>.