Как исправить ошибку «На удаляемый объект есть ссылки в справочной информации» при обновлении 1С?

Программист 1С v8.3 (Управляемые формы) Сфера услуг, туризм и социальный сектор
← На главную

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

Почему возникает данная ошибка

Проанализируем механику работы платформы «1С:Предприятие». Встроенная справка объектов и экранных форм представляет собой не просто статический текст, а HTML-документ. Если в тексте этой справки создана внутренняя гиперссылка на другой объект метаданных (например, на РегистрНакопления.Питание_Остатки через внутренний протокол справки), платформа регистрирует ее как жесткую ссылочную связь метаданных.

Когда конфигурация находится в режиме «Редактируется с сохранением поддержки» и выполняется обновление (особенно через полный файл поставки cf с пропуском промежуточных релизов), платформа включает строгий контроль ссылочной целостности. Если разработчик конфигурации удалил регистр в новой версии, но в вашей рабочей конфигурации на форме документа осталась справка со ссылкой на него, платформа запретит удаление объекта до тех пор, пока связь не будет разорвана.

Рассмотрим несколько проверенных способов решения возникшей проблемы.

Способ 1. Очистка гиперссылок в справке форм перед обновлением

Самый надежный и правильный путь — удалить некорректные ссылки непосредственно в исходной конфигурации до наката файла обновления. Выполним следующие действия по шагам:

  1. Откроем исходную базу данных в режиме «Конфигуратор» до объединения с проблемным релизом.
  2. В дереве метаданных найдем объекты, на которые указала платформа. В нашем примере это Документ.Питание_Приход, ветка Формы, далее ФормаДокумента и ФормаСписка.
  3. Выделим нужную форму, откроем палитру свойств и найдем свойство Справочная информация (также открыть редактор можно через контекстное меню формы по команде Справочная информация).
  4. В открывшемся визуальном редакторе найдем текст со ссылками (обычно они выделены синим цветом с подчеркиванием). Переключимся в режим просмотра исходного HTML-кода справки или просто выделим гиперссылку и удалим ее. Если сама справка не несет ценности, можно очистить ее содержимое полностью.
  5. Повторим очистку для всех указанных форм (включая форму списка документа Питание_Приход).
  6. Нажмем клавишу F7 (или пункт меню Конфигурация — Обновить конфигурацию базы данных), чтобы зафиксировать изменения в структуре.
  7. Повторно запустим процедуру обновления конфигурации через файл cf. Контроль ссылочной целостности будет пройден успешно.

Способ 2. Отмена удаления регистра в окне сравнения и объединения

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

  1. В окне Сравнение, объединение с конфигурацией из файла найдем объект РегистрНакопления.Питание_Остатки.
  2. В колонке действий снимем флажок напротив этого регистра. Это действие отменит удаление объекта из структуры конфигурации, и он останется в метаданных.
  3. Выполним объединение и применим изменения к базе данных.
  4. После успешного завершения объединения откроем окно Поиск ссылок на объект для оставленного регистра, убедимся, что ссылки в справке новых форм уже отсутствуют (или заменены поставщиком), после чего удалим регистр вручную обычным способом.

Способ 3. Возврат на поддержку поставщика (если объект не дорабатывался)

Если форма документа или документ целиком были сняты с поддержки ошибочно и в них нет пользовательских доработок, правильнее вернуть их на замок поставщика:

  1. Выполним сравнение и объединение конфигурации с исходным файлом поставщика текущей версии (до обновления).
  2. В правилах поддержки установим для проблемных форм и документа статус «Редактирование запрещено» (установим замочек).
  3. Сохраним конфигурацию базы данных.
  4. При последующем штатном обновлении конфигурация на замке обновится автоматически, платформа сама перезапишет справку и корректно удалит регистр без остановки процесса.

Использование встроенных инструментов поиска конфликтов

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

← На главную