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