Как найти и удалить лишние заимствованные объекты в расширении 1С?

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

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

Способ 1. Автоматическая очистка встроенными средствами платформы (8.3.17+)

Если вы используете версию платформы 1С 8.3.17 и выше, разработчики уже предусмотрели штатный механизм для решения этой проблемы. Рассмотрим, как им воспользоваться. Это самый быстрый и безопасный способ избавиться от объектов, которые были заимствованы «по ошибке» или в процессе экспериментов и не претерпели никаких изменений.

Для запуска очистки выполним следующие действия:

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

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

Способ 2. Использование визуальных фильтров в окне расширения

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

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

Все остальные объекты, которые отображались ранее, являются потенциальными кандидатами на удаление.

Способ 3. Поиск ссылок и анализ зависимостей

Одной из главных трудностей является страх удалить объект, который может использоваться в программном коде или настройках ролей внутри расширения. Проанализируем ситуацию с помощью стандартного инструмента «Поиск ссылок на объект».

Рассмотрим алгоритм проверки:

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

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

Способ 4. Метод иерархического удаления (ручной подход)

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

Выполним удаление в следующей последовательности:

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

Если при попытке удаления система выдает предупреждение о наличии зависимостей, значит, объект действительно нужен. Например, вы заимствовали форму списка Номенклатуры, а она, в свою очередь, требует наличия в расширении самой Номенклатуры и определенных картинок. В этом случае удаление будет заблокировано платформой, что убережет вас от ошибок.

Способ 5. Инструмент «Проверка расширения»

Перед тем как окончательно принять решение об очистке, обязательно воспользуемся инструментом «Проверка расширения». Эта функция находится в меню «Конфигурация — Расширения конфигурации — Проверить расширение».

Разберем, чем полезна эта проверка:

Если после вашего удаления «лишних» объектов проверка проходит без ошибок, значит, вы все сделали правильно. Для комплексной проверки состава доработок и выявления скрытых ошибок можно использовать инструмент для анализа расширений и поиска ошибок в метаданных.

Почему «мусор» появляется снова? Выясним причину

Чтобы в будущем не тратить время на очистку, проанализируем, почему платформа добавляет лишние объекты. Начиная с версии 8.3.15, механизм стал более избирательным, но некоторые правила сохраняются:

Продвинутый метод: Очистка через выгрузку в файлы

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

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

Важно: Этот метод рекомендуется только для экспертов и требует обязательного создания резервной копии.

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

← На главную