При активной разработке в среде 1С:Предприятие 8.3 через механизм расширений программисты часто сталкиваются с проблемой «раздувания» состава расширения. При заимствовании формы или реквизита платформа автоматически добавляет в расширение связанные объекты: общие картинки, элементы стиля, перечисления или даже целые справочники. Со временем структура расширения становится перегруженной, и в ней становится трудно ориентироваться. Более того, лишние объекты могут замедлять процесс обновления основной конфигурации и увеличивать размер базы данных. Разберем подробно, как выявить такие объекты и безопасно их удалить.
Если вы используете версию платформы 1С 8.3.17 и выше, разработчики уже предусмотрели штатный механизм для решения этой проблемы. Рассмотрим, как им воспользоваться. Это самый быстрый и безопасный способ избавиться от объектов, которые были заимствованы «по ошибке» или в процессе экспериментов и не претерпели никаких изменений.
Для запуска очистки выполним следующие действия:
Проанализируем, что делает эта команда. Система сравнивает метаданные объектов в расширении с аналогичными объектами в основной конфигурации. Если объект в расширении идентичен основному (не добавлены новые реквизиты, не изменены свойства, не переопределены модули), он будет автоматически удален. Это позволяет мгновенно очистить расширение от «мусорных» общих картинок и элементов стиля.
Прежде чем приступать к удалению, нам необходимо понять масштаб проблемы. В окне конфигурации расширения часто отображается вся иерархия заимствованных объектов, что мешает видеть реальные доработки. Воспользуемся встроенным фильтром, чтобы визуально отсечь лишнее.
В верхней панели окна конфигурации расширения найдем и нажмем кнопку «Показывать только объекты, имеющие собственные объекты или отличия от основной конфигурации» (обычно она выглядит как иконка с двумя пересекающимися кругами или воронкой). После активации этого режима дерево метаданных «схлопнется». Теперь мы будем видеть только те объекты, ради которых расширение создавалось:
Все остальные объекты, которые отображались ранее, являются потенциальными кандидатами на удаление.
Одной из главных трудностей является страх удалить объект, который может использоваться в программном коде или настройках ролей внутри расширения. Проанализируем ситуацию с помощью стандартного инструмента «Поиск ссылок на объект».
Рассмотрим алгоритм проверки:
Пользователи).Важно помнить: если ссылок не найдено, это еще не гарантирует 100% бесполезность объекта, но является веским основанием для удаления. Проверьте также, не используется ли этот объект в расширенных ролях. Если вы добавили заимствованному справочнику права в роли расширения, он будет считаться «используемым». Для быстрого исследования межобъектных связей с учетом расширений можно воспользоваться инструментом для анализа зависимостей конфигураций 1С.
Если автоматические методы не подходят, разберем методику безопасного ручного удаления. Главное правило здесь — двигаться от частного к общему. Программа 1С обладает встроенным механизмом контроля целостности метаданных, который не позволит вам удалить объект, от которого зависят другие элементы расширения.
Выполним удаление в следующей последовательности:
Если при попытке удаления система выдает предупреждение о наличии зависимостей, значит, объект действительно нужен. Например, вы заимствовали форму списка Номенклатуры, а она, в свою очередь, требует наличия в расширении самой Номенклатуры и определенных картинок. В этом случае удаление будет заблокировано платформой, что убережет вас от ошибок.
Перед тем как окончательно принять решение об очистке, обязательно воспользуемся инструментом «Проверка расширения». Эта функция находится в меню «Конфигурация — Расширения конфигурации — Проверить расширение».
Разберем, чем полезна эта проверка:
&Вместо или &После.Если после вашего удаления «лишних» объектов проверка проходит без ошибок, значит, вы все сделали правильно. Для комплексной проверки состава доработок и выявления скрытых ошибок можно использовать инструмент для анализа расширений и поиска ошибок в метаданных.
Чтобы в будущем не тратить время на очистку, проанализируем, почему платформа добавляет лишние объекты. Начиная с версии 8.3.15, механизм стал более избирательным, но некоторые правила сохраняются:
ЛюбаяСсылка или используете ОпределяемыйТип, платформа может заимствовать все объекты, входящие в этот тип.В особо сложных случаях, когда конфигуратор ведет себя некорректно или визуально трудно отследить изменения, опытные разработчики используют выгрузку расширения в XML-файлы. Рассмотрим этот процесс по шагам:
Важно: Этот метод рекомендуется только для экспертов и требует обязательного создания резервной копии.
Подводя итог, можно сказать, что наиболее эффективным и безопасным путем является сочетание автоматической очистки (для платформы 8.3.17+) и последующего ручного контроля с использованием фильтра «только измененные объекты». Это позволит содержать ваше расширение в чистоте, упростит навигацию и минимизирует риски при обновлениях информационной системы.