Как исправить ошибку «На удаляемый объект есть ссылки» при обновлении 1С:Бухгалтерия 2.0 на 3.0?

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

Переход с устаревшей редакции «Бухгалтерия предприятия» 2.0 на актуальную 3.0 — стандартная, но технически сложная процедура. Часто при обновлении сильно измененных конфигураций, которые при этом находятся на поддержке, разработчики сталкиваются с системной ошибкой: «На удаляемый объект [...] есть ссылки в объектах основной конфигурации». Система блокирует процесс обновления конфигурации базы данных, выводя внушительный список конфликтующих объектов (форм, картинок, реквизитов, разделов справочной информации).

Давайте подробно разберем, почему возникает эта проблема, и проанализируем проверенные на практике способы ее решения.

Выясняем причины возникновения ошибки

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

Основные технические причины конфликта:

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

Способ 1. Проверка флажков в окне сравнения и объединения (Решение автора)

Если вы обновляете измененную конфигурацию через стандартное сравнение и объединение файлов конфигурации (.cf), велика вероятность банальной невнимательности. Проанализируем эту ситуацию по шагам:

  1. Запустите процесс обновления конфигурации до этапа сравнения и объединения.
  2. В открывшемся окне сравнения обратите внимание на дерево метаданных. Если у вас изменены только некоторые модули, убедитесь, что для всех типовых объектов (особенно для форм, макетов и картинок) установлены флажки объединения.
  3. Если галочки с форм были случайно сняты, платформа попытается обновить родительский объект, но пропустит обновление подчиненной формы. При попытке сохранения это вызовет ошибку ссылочной целостности.
  4. Установите все необходимые флажки для типовых объектов и повторите процесс объединения.

Способ 2. Временный возврат на полную поддержку (Рекомендуемый метод)

Для сильно кастомизированных баз ручная очистка сотен конфликтующих ссылок может занять слишком много времени. Рассмотрим наиболее надежный и быстрый алгоритм обхода ограничений платформы через временный возврат на стандартную поддержку:

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

Способ 3. Ручное устранение конфликтов метаданных

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

Ситуация А: Ошибка указывает на справочную информацию. Например: «На удаляемый объект есть ссылки в объектах основной конфигурации: Справочная информация».

  1. Найдите в дереве метаданных объект-источник, на справочную информацию которого ругается система.
  2. Нажмите на него правой кнопкой мыши и выберите пункт Справочная информация.
  3. Выделите все содержимое окна справки сочетанием клавиш Ctrl+A и полностью удалите текст (клавиша Del). Также можно переключить редактор справки в режим HTML-кода и вручную удалить теги со ссылками вида href="...".
  4. Сохраните изменения и повторите обновление.

Ситуация Б: Ошибка указывает на связи форм и объектов. Например: «На удаляемый объект Отчет...Форма.ФормаОтчета есть ссылки в объектах основной конфигурации: Основная форма».

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

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

← На главную