Поиск и восстановление битых ссылок (объект не найден)
Задачи пользователя - Корректировка данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Битые ссылки появляются в базе как правило после непосредственного удаления объектов (без контроля ссылок на них).
Когда объект был удален непосредственно, то все ссылки на него в справочниках, в документах, в регистрах стали битыми и отображаются следующим образом:
(77:805f000c291e652311e0ad237dea6181)
Такие ссылки могут возникать:
1. В результате действий пользователей имеющих право непосредственного удаления объектов, без пометки на удаление и контроля ссылочной целостности перед удалением. Поэтому такие права у пользователей желательно забрать;
2. При выполнении обработки некорректно удаляющей объекты;
3. При выполнении обмена между информационными базами в варианте РИБ или обмен по правилам обмена между отличающимися базами.
Бывает так, что пользователь в одной базе участвующей в обмене, вполне корректно удалил объект т.к. ссылок на него в этой базе не было. Информация об удалении объекта передается в другую базу, где на него есть ссылки. В типовых конфигурациях объект при этом удаляется непосредственно, и возникают "битые" ссылки. Как пример - процедура УдалитьОбъектПоСсылке() в модуле обработки ОбменДаннымиXML. В конце этой процедуры вызывается процедура УдалитьОбъект(Объект, Истина). Вторым параметром в этой процедуре является признак непосредственного удаления объекта. Необходимо заменить его на Ложь;
Битые ссылки можно обнаружить при выполнении тестирования и исправления, включив опцию "Проверка ссылочной целостности информационной базы". А также их можно увидеть при работе с базой в режиме 1С:Предприятие, открыв форму объекта содержащего в одном из реквизитов "битую" ссылку.
Как с этим бороться?. Ну во первых ограничить права пользователей на непосредственное удаление объектов и поправить проблемные участки кода в конфигурации создающие предпосылки для возникновения таких ссылок. А также не забывать делать архивные копии базы.
Эти записи, конечно, можно исправить при тестировании, поставив опцию "Создавать объекты" или "Очищать ссылки". В таком случае мы избавимся от битых ссылок, но это не поможет нам восстановить исходное состояние базы. Тогда из учета окончательно потеряются изменения, внесенные этими объектами, а это опасно.
Если имеется достаточно свежая архивная копия базы, то можно попробовать восстановить эти ссылки.
Для этих целей в интернете можно найти достаточно много обработок.
Например вот эта: http://help1c.com/faq/view/1128.html "Поиск в базе битых ссылок - "объект не найден", которая позволяет найти битые ссылки в режиме 1С:Предприятия, без запуска конфигуратора 1С и выполнения "тестирования и справления".
Найти удаленный объект в архивной копии базы можно при помощи этой обработки: http://help1c.com/faq/view/483.html
Таким образом, мы можем вручную восстановить "битые" ссылки по архивной копии. При этом важно чтобы вновь созданный объект имел такой же уникальный идентификатор (GUID), каким он был раньше. Для этого можно воспользоваться например этой обработкой: //infostart.ru/public/14655/
Однако, заниматься этим вручную - это утомительная и малопроизводительная трата времени. Гораздо эффективнее поручить эту работу самой же 1С.
На Инфостарте уже публиковались обработки позволяющие сделать это автоматически.
Например вот эта обработка: //infostart.ru/public/91438/
И хотя цели у моей и этой обработки одинаковые - восстановление "битых" ссылок по архивной копии, подход к решению этих целей у нас разный.
Основное отличие моей обработки состоит в следующем:
Не используется протокол тестирования полученный в конфигураторе. Битые ссылки ищутся непосредственно в режиме 1С:Предприятия. При этом можно ограничивать поиск определенным типом объектов, например искать только ссылки с типом "Справочник.ДоговорыКонтрагентов".
Для удобства подключения к архивной копии базы использована обработка //infostart.ru/public/16628/ которая позволяет выбирать нужную базу из списка аналогичного списку баз 1С и подключаться к ней.
Несмотря на наличие подобных обработок на Инфостарте, возможно эта покажется кому-то более удобной в использовании.
Вовремя сделанная архивная копия может избавить вас от многих проблем. Удачи!
P.S. Добавлена версия портированная на управляемые формы - файл Poisk Objekt ne najden_82UF.epf
Обработка включает как обычные, так и управляемые формы.
Портирование обработки выполнено Андреем Торопчиным.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Поиск данных Инструменты администратора БД Корректировка данных Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Россия Платные (руб)
Решение для автоматической сверки данных между любыми конфигурациями 1С. Помогает контролировать и проверять обмены, проверять наличие документов при переносах данных, находить изменения в закрытых периодах
9760 руб.
14.11.2025 6264 28 8
Задачи пользователя Инструментарий разработчика Корректировка данных Закрытие периода Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта Стажер 1С 8.3 1С:ERP Управление предприятием 2 1С:Управление нашей фирмой 3.0 Управленческий учет Платные (руб)
Обработка предназначена для поиска, анализа и исправления отрицательных остатков во всех регистрах накопления информационной базы 1С.
6100 руб.
27.02.2026 3324 19 3
Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)
Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).
14640 руб.
29.04.2020 53051 146 164
Зарплата Корректировка данных Бухгалтер 1С 8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет НДФЛ Платные (руб)
Внешняя обработка сравнивает НДФЛ из расчетного листка и НДФЛ из регистра, на разницу формирует операцию учета НДФЛ. Исправляет расхождения, в том числе, когда Аванс больше Зарплаты Рассчитывает НДФЛ и сравнивает с исчисленным в программе. На отклонение формирует документ "Перерасчет НДФЛ"
9760 руб.
01.09.2023 10177 325 93
Корректировка данных Разработчик Пользователь 1С:Предприятие 8 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)
Представьте, что есть система QR - кодирования, которая НЕ ТРЕБУЕТ изменения конфигурации, НЕ ТРЕБУЕТ изменения ни одной печатной формы для добавления QR-кода, включая внешние, НЕ ХРАНИТ данные штрихкодов и их связь, от чего база не "пухнет", ИМЕЕТ возможность закодировать в QR-коде произвольные данные параметров для последующей обработки полученных данных, УМЕЕТ прикреплять сканы, УМЕЕТ обработать считанный QR-код как ВЫ захотите. А также ХРАНИТ историю операций в обход базы для каждого пользователя в отдельности и УМЕЕТ работать с 2D - сканерами. А также автоматически распознавать отсканированные печатные формы (картинки или pdf-файлы) и выполнять заданные произвольные алгоритмы, в том числе прикрепление их к документам! Обновление 3.3 от 24.06.2025!
26840 руб.
26.08.2018 57704 20 65
Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Разработчик 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)
Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)
24400 руб.
27.10.2017 47916 33 15
Корректировка данных Системный администратор Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)
Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.
6100 руб.
10.02.2017 122812 738 177
Корректировка данных Зарплата Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)
Внешняя обработка предназначена для исправления самых различных ошибок, возникших по самым разным причинам. Общее проявление этих ошибок видно в различии данных между: проводками и различными отчетами по НДФЛ, заполнении ведомостей на выдачу зарплаты, неверным расчетом НДФЛ при начислении ЗП и т.д.
6100 руб.
09.02.2024 4582 15 6
{Форма.Форма.Форма(567)}: Преобразование значения к типу Булево не может быть выполнено
Если СкопироватьОбъектИзСОМ(ПодключеннаяИБ, сАрхив.ГУИД_Объекта) Тогда
Конфа Альфа-Авто.
Кстати есть аналогичный но ПЛАТНЫЙ продукт , так что удивительно что этот бесплатный.
Насчет ссылок дам еще:
- Поиск битых ссылок с отбором типа
- Восстановление битых ссылок в 1С
Вроде они в статье не упомянуты
все идеи и принципы ясны, более того - расписаны "первоисточники" (с ними тоже ознакомился, очень интересно)
самое же главное в полезности этой обработки - даже если ты понимаешь "как можно сделать" - в момент "катастрофы" просто нет возможности спокойно и детально все сделать и мозг зачумлен клиентом-владельцем базы данных - "нужно все-все-все восстановить и немедленно!"
и тут... СПАСЕНИЕ
спасибо огромное, Владимир
Ошибка при вызове метода контекста (Выполнить): {(7, 9)}: Поле не найдено "Об.Валюта"
ГДЕ Об.<<?>>Валюта ССЫЛКА Справочник.Валюты И ВЫРАЗИТЬ(Об.Валюта КАК Справочник.Валюты).Ссылка есть null И Об.Валюта <> Значение(Справочник.Валюты.ПустаяСсылка) ИнформацияОбОшибке
В процессе поиска битых ссылок по всей конфигурации появляется сообщение об ошибке:
Ошибка при вызове метода контекста (Выполнить): {(7, 9)}: Поле не найдено "Об.Валюта"
ГДЕ Об.<<?>>Валюта ССЫЛКА Справочник.Валюты И ВЫРАЗИТЬ(Об.Валюта КАК Справочник.Валюты).Ссылка есть null И Об.Валюта <> Значение(Справочник.Валюты.ПустаяСсылка) ИнформацияОбОшибке
Да, есть такое дело. Сам сталкивался. Только руки еще не дошли подправить.
Может быть на выходные подправлю.
Проблема новая для меня - тупик просто.Читаю описание - очень надеюсь на вашу обработку!
Плюсую
Такие битые ссылки появляются еще в каких нибудь случаях?
В случае с обменом РИБ они появляются только тогда когда в одной из баз выполняешь удаление объектов?
Очень жду ответа, спасибо
Ну, разве что еще физическая порча базы может быть причиной.
Но в этом случае последствия будут уже сильнее чем просто битые ссылки.
Что касается случая РИБ, то теоретически при полном обмене информацией между базами здесь проблем быть не должно, т.к. все базы имеют одинаковые данные и контроль ссылок перед непосредственным удалением объекта выдаст ошибку.
Проблемы могут возникать только когда между базами осуществляется частичный обмен информацией.
В результате может оказаться так что в одной базе объект удален корректно, а в другой на него имеются ссылки.
Процедуру УдалитьОбъект(Объект, Истина). я поправил, поставил Ложь. Буду наблюдать.
Просьба пояснить, какой должна быть архивная копия базы?
Подойдет файл "1cv8.1CD"?
У меня в тестовой базе при запуске обработки возникло сообщение "Файл 1cv8.1CD поврежден!".
После чего база автоматически закрылась.
Пришлось из рабочей базы брать файл "1cv8.1CD" и заменять аналогичный файл тестовой базы.
Попробую запустить вашу обработку, не обновляя конфигурацию в тестовой базе, может поможет.
много раз, но работать продолжает...
{Форма.Форма.Форма(501)}: Ошибка при вызове метода контекста (ПрочитатьXML)
ПолучОбъект = ПрочитатьXML(ЧтениеХМЛ);
по причине:
Ошибка преобразования данных XML: [12,20]
Я просто снимаю галочку для восстановления, потом разберусь почему.
В процессе поиска битых ссылок по всей конфигурации появляется сообщение об ошибке:
Ошибка при вызове метода контекста (Выполнить): {(7, 9)}: Поле не найдено "Об.Валюта"
ГДЕ Об.<<?>>Валюта ССЫЛКА Справочник.Валюты И ВЫРАЗИТЬ(Об.Валюта КАК Справочник.Валюты).Ссылка есть null И Об.Валюта <> Значение(Справочник.Валюты.ПустаяСсылка) ИнформацияОбОшибке
Тоже такая ошибка. Это из-за неподходящей конфигурации?
Например: у меня был затерт пользователь, случайно. Хочу просто заменить его на другого пользователя из этой же базы данных.
Эта функция была бы полезна в данной обработке. Как Вы считаете?
Если ОбъектМетаданных.РежимЗаписи = НезависимыйРежимЗаписи Тогда
//АнализСвойствРегистраСведений(ОбъектМетаданных, ОбъектМетаданных.Измерения, ИмяТаблицы);
//АнализСвойствРегистраСведений(ОбъектМетаданных, ОбъектМетаданных.Ресурсы, ИмяТаблицы);
//АнализСвойствРегистраСведений(ОбъектМетаданных, ОбъектМетаданных.Реквизиты, ИмяТаблицы);
Возврат;
КонецЕсли;
Хочу предложить Автору доработать данный код. Считаю, что необходимо предупреждать пользователей о данном ограничении.
ПолучОбъект = ПрочитатьXML(ЧтениеХМЛ);
по причине:
Ошибка преобразования данных XML: [47,30]
Выдало такую ошибку в чем может быть проблемма
Ошибка при вызове метода контекста (ПолучитьОбъект)
Если СсылкаНаОбъектГУИД.ПолучитьОбъект() <> Неопределено Тогда
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.2.17.153): {Документ.Квитанция(480,30)}: Переменная не определена (глТекущийПользователь). Что то не пойму в чем причина, может кто подскажет?? База не типовая.
В типовых конфигурациях есть глобальная переменная "глТекущийПользователь".
Наверное в вашей конфигурации нет этой переменной.
Посмотрите какой код у вас в модуле документа "Квитанция" в строке 480.
Требуется авторизация:
Пользователи архивной копии не выбираются, набираю себя в ручную, ввожу пароль
Идентификация пользователя не выполнена. Неправильное имя пользователя или пароль.
***
В чем может быть ошибка?
com-соединение. Нужно вводить имя пользователя вручную.
Если имя пользователя и пароль введены правильно, то авторизация должна проходить нормально.
Ошибка загрузки документа.
по причине:
Ошибка подключения внешних метаданных
Внешние метаданные не могут быть прочитаны текущей версией программы
--------------------------------------------------------------------------------
Пытаюсь восстановить ссылки на удаленную Номенклатуру в УТ 11. Находит ссылки. Резервная копия с идентичной конфигурацией. Нажимаю Восстановить, появляются Окна с номенклатурой, но они не записываются в базу. В поле Объект источник появляется надпись <Объект не скопирован>. Не знаете с чем это может быть связано?
В итоге в обработке поменяла БазаИсточник = Новый COMОбъект("V82.COMConnector"); на БазаИсточник = Новый COMОбъект("V83.COMConnector");
И все заработало....
Попытка
Если Тип(СтрЗаменить(ИмяТаблицы,"БизнесПроцесс","БизнесПроцессСсылка")) <> ТипРеквизита Тогда
Если Тип(СтрЗаменить(ИмяТаблицы,"БизнесПроцесс","ТочкаМаршрутаБизнесПроцессаСсылка")) = ТипРеквизита Тогда
ИмяТаблицы = ИмяТаблицы+".Точки";
КонецЕсли;
КонецЕсли;
Исключение Обернул в попытку, так как выпадает на справочнике с наименованием "НастройкиБизнесПроцессСсылкаов"
1С:Предприятие 8.3 (8.3.8.1964)
Розница (базовая), редакция 2.2 (2.2.4.17)
Будут ли работать данные обработки?
Спасибо!
Данная обработка работает когда ссылка на объект осталась, а сам объект удален.
А в вашем случае все наоборот - объекты в базе остались, а ссылок на них нет.
Обработка хорошая.. но надо убрать модальные формы при подключении к БД.. строку подключения пришлось в модуле прописать. (ред 8.3.9)
У меня на 1С:Предприятие 8.3 (8.3.12.1685)
"Управление торговлей", редакция 10.3 (10.3.37.5) (обычные формы) объекты Номенклатура и Единицы восстанавливает хорошо. Только штрих-код объекта не берет из архивной базы???? Куда посмотреть?
Небольшое пожелание: сделать загрузку списка баз не из файла на сервере, а с файла того клиента, с которого запускается обработка. В моём случае пришлось лезть на сервер и редактировать список баз у юзера, под которым запущен сервер 1С.
Впал правда в некоторый ступор, т.к. наличие битой ссылки в битой ссылке автоматически не проверяется, а у меня наименование справочника формировалось по наименованию из другой битой ссылки.
Получил ребус в виде "Объект не найден" в наименовании)
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 92259
Создание 30.09.11 16:54
Обновление 01.02.15 02:01
Просмотры 144889
Загрузки 3102
Рейтинг
206
Комментарии 143
Код открыт Не указано
Рубрики Корректировка данных
Кому
Системный администратор
,
Разработчик
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 8
Конфигурация
1С:Бухгалтерия 2.0
,
1С:Зарплата и Управление Персоналом 2.5
,
1С:Управление торговлей 10
,
1С:Управление производственным предприятием
,
1С:Управление нашей фирмой 1.6
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)