Разработка и Конфигурация · 11 мин
Как удалить подсистему из конфигурации 1С
Пошаговая инструкция по удалению подсистемы из конфигурации 1С: подготовка, отвязка объектов, проверка ссылок, обновление базы и типичные ошибки.
Подсистема в конфигурации 1С — это объект метаданных, который группирует справочники, документы, отчёты и обработки в разделы интерфейса. Удаление подсистемы требуется, когда функциональность больше не используется, конфигурация упрощается для конкретного внедрения или раздел переносится в отдельное решение. Сама операция технически проста, но содержит скрытые риски: объекты, привязанные к подсистеме, остаются в конфигурации, а вот удаление связанных объектов может нарушить целостность данных.
Важно понимать разницу между двумя задачами. Первая — удалить только сам объект «Подсистема» из дерева метаданных, при этом все справочники и документы останутся в конфигурации, просто исчезнет раздел в интерфейсе. Вторая — удалить подсистему вместе со всеми её объектами и данными. Это принципиально разные сценарии с разным уровнем риска, и ниже они рассмотрены отдельно.
Работа выполняется в конфигураторе и требует монопольного доступа к базе на этапе обновления конфигурации базы данных. Для типовых конфигураций, находящихся на полной поддержке, предварительно потребуется снять конфигурацию с поддержки или включить режим редактирования с сохранением поддержки.
Подготовка: резервная копия и режим поддержки
Перед любыми изменениями структуры метаданных сделайте резервную копию. Для файловой базы достаточно выгрузки в dt через меню «Администрирование → Выгрузить информационную базу». Для клиент-серверной базы надёжнее средство резервного копирования СУБД, поскольку выгрузка dt больших баз занимает много времени и не всегда завершается успешно.
Проверьте режим поддержки конфигурации: «Конфигурация → Поддержка → Настройка поддержки». Если конфигурация на полной поддержке без возможности изменения, удалить объект не получится — кнопки редактирования будут недоступны. Включите режим «с сохранением поддержки» или снимите конфигурацию с поддержки полностью, понимая, что это усложнит будущие обновления типового релиза.
Анализ состава подсистемы и связей
Откройте свойства подсистемы и перейдите на закладку «Состав». Здесь перечислены все объекты, входящие в раздел. Пройдите по списку и решите судьбу каждого объекта: он остаётся в конфигурации (используется другими подсистемами или кодом) либо удаляется вместе с подсистемой.
Для объектов, которые планируется удалить, обязательно выполните поиск ссылок: правый клик по объекту → «Поиск ссылок на объект». Платформа покажет все метаданные, где объект используется: типы реквизитов, критерии отбора, планы обмена, подписки на события, роли, общие модули. Каждое такое место нужно обработать — убрать объект из состава типов, из критериев, из планов обмена.
Отдельно проверьте программные обращения через глобальный текстовый поиск по конфигурации (Ctrl+Shift+F) по имени объекта. Поиск ссылок не показывает обращения из кода вида Справочники.ИмяОбъекта, если они сформированы динамически, и не показывает использование в запросах.
Можно удалять — после проверки текстового поиска по имени
Удалять нельзя, только отвязать от текущей подсистемы
Сначала убрать тип из реквизитов, иначе обновление не пройдёт
Решить: данные удаляются, переносятся или объект остаётся
Удаление только подсистемы без объектов
Это безопасный сценарий. В дереве конфигурации раскройте ветку «Общие → Подсистемы», найдите нужный раздел, нажмите правой кнопкой и выберите «Удалить». Платформа запросит подтверждение и выполнит операцию мгновенно, поскольку подсистема — это лишь декларативная группировка, не содержащая данных.
После удаления объекты, входившие в подсистему, остаются в конфигурации. Если они не входят ни в одну другую подсистему, они перестанут отображаться в пользовательском интерфейсе, но останутся доступны программно и через «Все функции». Часто это именно то, что нужно: раздел скрыт, данные и логика не тронуты.
Если удаляемая подсистема была родительской для вложенных подсистем, платформа удалит их вместе с ней. Проверьте иерархию заранее, чтобы не убрать лишние разделы интерфейса.
- 1Сделайте резервную копию базы и проверьте, что она восстанавливается
- 2Включите возможность изменения конфигурации в настройках поддержки
- 3Откройте свойства подсистемы и проанализируйте состав объектов
- 4Для удаляемых объектов выполните поиск ссылок и текстовый поиск по имени
- 5Отвяжите сохраняемые объекты от подсистемы через закладку «Состав»
- 6Удалите подсистему (и объекты, если требуется) через контекстное меню
- 7Обновите конфигурацию базы данных через F7, приняв реструктуризацию
- 8Проверьте интерфейс и работу связанных механизмов под пользователем
Удаление подсистемы вместе с объектами и данными
Полное удаление выполняется в два этапа. Сначала удаляются объекты метаданных: справочники, документы, регистры, отчёты, входящие в подсистему. Затем удаляется сама подсистема. Порядок важен: пока объекты привязаны к подсистеме, их удаление возможно, но логичнее сначала разобраться с каждым объектом осознанно.
При обновлении конфигурации базы данных платформа выполнит реструктуризацию: таблицы удаляемых объектов будут физически удалены вместе с данными. Для больших таблиц это может занять значительное время и требует монопольного доступа — все пользователи должны выйти из базы, фоновые задания должны быть остановлены.
Особое внимание уделите регистрам сведений и накопления, подчинённым удаляемым документам: они удаляются вместе с регистратором автоматически. А вот независимые регистры, хранящие ссылки на удаляемые объекты, удалятся только если вы удалите их явно — иначе в них останутся записи, которые станут битыми ссылками после удаления измерений.
На практике безопаснее сначала очистить данные удаляемых объектов обработкой (пометить и удалить документы и элементы), а уже потом удалять метаданные. Так реструктуризация пройдёт быстро, потому что платформе не придётся удалять миллионы записей одной транзакцией.
Обновление конфигурации и реструктуризация
После удаления объектов нажмите F7 или «Конфигурация → Обновить конфигурацию базы данных». Платформа покажет окно реструктуризации со списком изменений: удаляемые таблицы, поля, индексы. Внимательно просмотрите этот список — он последняя возможность убедиться, что удаляется именно то, что планировалось.
Если обновление завершается ошибкой с указанием на неразрешённые ссылки, значит, объект всё ещё используется в метаданных. Вернитесь к поиску ссылок и устраните найденные места. Типичные забытые места: состав критериев отбора, планы обмена, функциональные опции, роли (права на объекты), командный интерфейс.
Для клиент-серверных баз реструктуризация с удалением больших таблиц может блокировать работу надолго. Планируйте такое обновление на нерабочее время и предупредите пользователей.
Как проверить результат
В списке только ожидаемые таблицы и объекты
Удаляются таблицы, которые должны были остаться
Завершилось без ошибок и предупреждений
Ошибки о неразрешённых ссылках на метаданные
Раздел исчез, остальные разделы на месте
Пропали разделы, не входившие в подсистему
Отчёты и документы других разделов открываются
Ошибки «Объект не найден» при открытии форм
Типичные ошибки и ограничения
Самая частая ошибка — удаление объектов, на которые ссылаются другие механизмы, обнаруженное уже после обновления рабочей базы. Поиск ссылок и текстовый поиск по имени объекта обязательны для каждого удаляемого элемента, даже если он «точно нигде не используется».
Вторая ошибка — забытые данные. Если в базе остались документы, ссылающиеся на удаляемый справочник, после удаления метаданных в этих документах появятся битые ссылки вида «Объект не найден». Перед удалением выполните поиск ссылок на объект в данных (через «Все функции» или универсальные отчёты) и очистите или перенесите данные.
Третья группа ошибок связана с обменами. Если конфигурация участвует в РИБ или обменах через планы обмена, удаление объектов из состава плана обмена и самих метаданных нужно синхронизировать во всех узлах, иначе обмен начнёт падать с ошибками.
Альтернативы полному удалению
Если цель — просто убрать раздел из интерфейса пользователей, удалять подсистему не обязательно. Достаточно настроить права: убрать у ролей доступ к объектам раздела, и раздел перестанет отображаться для этих пользователей. Это обратимое решение, не требующее изменения конфигурации.
Другой вариант для типовых конфигураций — функциональные опции. Многие типовые подсистемы отключаются через настройки функциональности в режиме предприятия, без вмешательства в конфигуратор. Проверьте раздел настроек программы, прежде чем править метаданные.
Сравнение вариантов
Подходит, если нужно только скрыть раздел; обратимо, не трогает поддержку; конфигурация не меняется
Подходит для убранного из поставки раздела; объекты и данные сохраняются; требует изменения конфигурации
Подходит при полном отказе от функциональности; необратимо для данных; требует полного анализа ссылок и копии
Что важно запомнить
Удаление подсистемы само по себе безопасно — это лишь группировка интерфейса. Риски начинаются при удалении входящих в неё объектов: обязательны резервная копия, поиск ссылок в метаданных и коде, решение о судьбе данных и контроль окна реструктуризации перед обновлением базы.
Частые вопросы
Что произойдёт с данными, если удалить только подсистему, а объекты оставить?
Ничего. Подсистема не хранит данные — это элемент навигации. Все справочники, документы и регистры останутся в базе со всеми записями, просто раздел исчезнет из интерфейса. Доступ к объектам сохранится программно и через меню «Все функции».
Можно ли удалить подсистему в типовой конфигурации без снятия с поддержки?
Да, если включён режим «с сохранением поддержки» (редактирование с сохранением поддержки). Объект будет помечен как изменённый, и при будущих обновлениях конфигурации нужно будет контролировать этот объект вручную — мастер обновления может предложить восстановить типовую подсистему.
Почему конфигуратор не даёт удалить объект — кнопка неактивна?
Наиболее вероятные причины: конфигурация на полной поддержке без возможности изменения, отсутствуют права администратора у текущего пользователя конфигуратора, либо объект поставляется в пакете XDTO или является заимствованным из расширения. Проверьте настройки поддержки и права пользователя.
Как удалить подсистему, если база клиент-серверная и пользователи работают?
Изменить конфигурацию можно и при работающих пользователях, но обновление конфигурации базы данных потребует монопольного доступа. Завершите сеансы через консоль кластера или дождитесь нерабочего времени, отключите регламентные задания, выполните обновление и только потом пускайте пользователей.
Появились «битые ссылки» после удаления объектов — что делать?
Это записи в оставшихся объектах, которые ссылались на удалённые. Восстановить удалённые данные можно только из резервной копии. Если копии нет, битые ссылки очищают обработками поиска и удаления битых ссылок либо вручную — перезаписью документов с заменой значения на пустое.
Можно ли вернуть удалённую подсистему?
Если конфигурация типовая — да: загрузите конфигурацию из файла поставки соответствующего релиза или восстановите объект при объединении с типовой конфигурацией. Если конфигурация самописная и копии нет — только восстановление из резервной копии базы или выгрузки dt, сделанной до удаления.