Как исправить битые ссылки в справочнике Договоры в 1С:Бухгалтерия 3.0?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При работе в программе 1С:Бухгалтерия 8 (редакция 3.0) пользователи иногда сталкиваются с ситуацией, когда в справочнике Договоры в поле Организация отображается надпись <Объект не найден>. Это означает, что в базе образовалась битая ссылка — ссылка на элемент справочника Организации, который был удален или потерян при обмене данными.

Рассмотрим причины возникновения такой проблемы, а также эффективные способы поиска и массовой замены битых ссылок на корректную организацию.

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

Выясним основные причины, из-за которых возникают битые ссылки в информационной базе:

  1. Непосредственное удаление объекта: Элемент справочника Организации был удален напрямую без проверки ссылочной целостности (например, программно или обработкой). В результате во всех связанных договорах остался уникальный идентификатор (GUID) несуществующего элемента.
  2. Ошибки обмена данными: При выполнении синхронизации (РИБ, КД или XML-обмен) объект мог быть не передан или удален в узле-источнике.
  3. Ограничения прав доступа (RLS): В некоторых случаях надпись <Объект не найден> появляется из-за того, что объект существует, но у пользователя нет прав на его чтение на уровне записей.

Способ 1. Использование типовой обработки «Групповое изменение реквизитов»

Самый простой и быстрый способ исправить битую ссылку в режиме «1С:Предприятие» без написания кода — использовать типовой инструмент администрирования.

Разберем процесс по шагам:

  1. Перейдем в раздел Администрирование — Обслуживание — Корректировка данных и откроем обработку Групповое изменение реквизитов.
  2. В поле Изменять выберем справочник Договоры.
  3. В блоке отбора добавим условие для реквизита Организация (укажем отбор по битой ссылке или сформируем список договоров, требующих исправления).
  4. В списке реквизитов находим поле Организация, устанавливаем флажок и выбираем единственно правильную организацию.
  5. Нажимаем кнопку Изменить реквизиты для выполнения массового обновления.

Способ 2. Программный поиск и замена битых ссылок с помощью запроса

Если требуется найти все договоры с битыми ссылками программно или сформировать список элементов для последующей обработки, проанализируем специальный запрос на языке 1С.

Посмотрим на пример запроса, который выбирает все элементы справочника Договоры, у которых ссылка на организацию не является пустой, но ссылается на несуществующий объект (получается значение NULL при проверке таблицы организаций):


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

После получения выборки элементов можно в цикле обходить найденные договоры и перезаписывать реквизит Организация на нужное значение.

При программной замене реквизитов в коде рекомендуется отключать логику проверок перед записью с помощью свойства ОбменДанными.Загрузка = Истина, чтобы избежать ошибок и блокировок:


Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    ДоговорОбъект = Выборка.Договор.ПолучитьОбъект();
    ДоговорОбъект.Организация = ПравильнаяОрганизация;
    ДоговорОбъект.ОбменДанными.Загрузка = Истина;
    ДоговорОбъект.Записать();
КонецЦикла;

Способ 3. Восстановление объекта через Тестирование и исправление (ТиИ)

Ещё один системный вариант решения проблемы — использование встроенного механизма тестирования информационной базы в Конфигураторе.

Рассмотрим порядок действий:

  1. Обязательно создаем резервную копию информационной базы.
  2. Запускаем Конфигуратор и открываем меню Администрирование — Тестирование и исправление....
  3. Устанавливаем флажок Тестирование и исправление.
  4. В переключателе При наличии ссылок на несуществующие объекты обязательно выбираем вариант Создавать объекты (избегайте выбора «Очищать ссылки», чтобы не потерять сведения о битых связях).
  5. После завершения процедуры платформа создаст элемент-заглушку.
  6. Затем в режиме «1С:Предприятие» используем сервис Поиск и замена дублей (раздел Администрирование -> Обслуживание -> Корректировка данных), чтобы заехать созданную заглушку на правильную организацию. Все ссылки во всех документах и справочниках обновятся автоматически.

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

← На главную