В процессе сопровождения и обновления сложных прикладных решений на платформе 1С:Предприятие 8, таких как «Бухгалтерия государственного учреждения» (БГУ 2.0) или «ERP Управление предприятием», программисты часто сталкиваются с ситуацией, когда система блокирует применение изменений. Одной из самых неочевидных причин такой блокировки являются ссылки на удаляемые объекты метаданных, спрятанные внутри справочной информации форм или самих объектов. Рассмотрим подробнее, почему это происходит, как работает механизм поиска таких ссылок и каким образом их корректно вычистить из конфигурации.
Типичная ситуация: вы запускаете обновление конфигурации (например, переход на новую версию БГУ, использующую актуальные подсистемы БСП). В процессе сравнения и объединения система сообщает, что объект ОбщаяФорма.НастройкаОнлайнПоддержки должен быть удален, так как он больше не используется в новой версии. Однако при попытке нажать кнопку «Принять» система выдает ошибку: «На удаляемый объект есть ссылки в объектах основной конфигурации».
Проанализируем причину. Платформа 1С строго следит за ссылочной целостностью метаданных. Если один объект (например, форма настройки) ссылается на другой объект (общую форму), удаление последнего приведет к нарушению логики работы программы. Самое интересное начинается тогда, когда вы проверяете все реквизиты, модули и командный интерфейс, но не находите там никаких упоминаний удаляемого объекта.
Разберем по шагам работу штатного механизма конфигуратора. Инструмент «Поиск ссылок в объекте» сканирует не только явные связи (типы реквизитов, параметры команд, модули), но и скрытые данные свойств. Одним из таких свойств является Справочная информация (Help).
Свойство Справочная информация представляет собой HTML-документ, который хранится внутри метаданных объекта. В этом документе могут присутствовать гиперссылки на другие разделы справки или непосредственно на объекты конфигурации (формы, отчеты, справочники). Платформа интерпретирует такие гиперссылки как полноценные зависимости. Если в тексте справки прописан путь к форме через внутренний протокол v8help://, объект будет считаться «используемым».
Если в окне сообщений конфигуратора вы видите путь вида Обработка.ПанельАдминистрированияБСП.Форма.ИнтернетПоддержкаИСервисы.Справочная информация, это прямой указатель на то, что проблема кроется в тексте справки. Выясним, как найти это место визуально:
ИнтернетПоддержкаИСервисы обработки ПанельАдминистрированияБСП).Справочная информация и нажмем на кнопку открытия (лупа).Зачастую визуальный редактор справки не показывает служебную информацию в явном виде. Ссылка может быть «привязана» к картинке, кнопке или просто остаться в виде пустого тега после некорректного редактирования. В этом случае нам поможет режим просмотра исходного кода. Посмотрим на пример того, как это выглядит «под капотом»:
Внутри HTML-кода справки ссылка на объект конфигурации обычно оформляется следующим образом:
<a href="v8help://content/60d375a0-d79e-11e0-8101-001517c2471c">Открыть настройку поддержки</a>
Где 60d375a0-d79e-11e0-8101-001517c2471c — это внутренний идентификатор (UUID) удаляемого объекта. Чтобы решить проблему, необходимо:
<a> или заменить ссылку на корректную.Рассмотрим ситуацию на примере БГУ 2.0. При обновлении подсистем БСП (Библиотеки стандартных подсистем) разработчики 1С часто проводят рефакторинг: старые формы настроек удаляются, а их функционал переносится в новые, более универсальные механизмы. Однако в текстах «Справки» для администраторов могут оставаться описания старых механизмов с активными ссылками на них.
Поскольку Справочная информация является частью метаданных, она подлежит контролю целостности. Платформа не позволит вам «сломать» справку, удалив объект, на который она ссылается, так как это приведет к ошибке «Объект не найден» у пользователя при попытке перехода по ссылке из режима предприятия.
Проанализируем ситуацию шире. Если удаление объекта все равно блокируется, хотя вы почистили справку, рекомендуем выполнить следующие действия:
Предопределенных данных, Функциональных опциях или Параметрах команд, которые могли быть упущены.Важно помнить, что свойство Справочная информация может быть задано как для всей конфигурации в целом, так и для каждого объекта метаданных (справочника, документа) и даже для каждой отдельной формы. При обновлении типовых решений чаще всего страдают формы «Панелей администрирования», так как они содержат наиболее объемные разделы помощи с множеством перекрестных ссылок.
Таким образом, мы выяснили, что поиск ссылок в объекте — это комплексная операция. Своевременное обнаружение и удаление устаревших связей в HTML-коде справочной информации позволяет успешно завершить обновление конфигурации и поддерживать информационную базу в актуальном и рабочем состоянии.