К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как удалить объект метаданных из конфигурации 1С

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

Удаление объекта метаданных — справочника, документа, регистра или отчёта — кажется простой операцией: выделил объект в дереве конфигурации и нажал Delete. На практике такое удаление почти всегда затрагивает связанные объекты: реквизиты других справочников, движения документов, подписки на события, код модулей и права доступа. Если удалить объект «в лоб», конфигурация либо не пройдёт проверку, либо обновление базы завершится ошибкой, а в худшем случае будут потеряны данные.

Правильная последовательность всегда одна: сначала анализ зависимостей, затем очистка ссылок и кода, потом удаление самого объекта и только после этого — контролируемое обновление конфигурации базы данных. Ниже разобран каждый этап с конкретными действиями в конфигураторе.

Материал ориентирован на работу в конфигураторе 1С:Предприятие 8.3 с управляемым приложением, но описанный порядок применим и к обычным формам — отличаются только детали интерфейса.

Подготовка: резервная копия и анализ зависимостей

Первое действие перед любым структурным изменением — выгрузка информационной базы в файл .dt через меню «Администрирование — Выгрузить информационную базу». Удаление объекта метаданных необратимо: вместе со справочником или документом из базы физически удаляются таблицы с данными. Восстановить их без копии невозможно.

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

Отдельно проверьте программные обращения. Поиск ссылок находит структурные зависимости, но строковые обращения в коде — например, Справочники["МойСправочник"] или запросы с текстом ВЫБРАТЬ ... ИЗ Справочник.МойСправочник — нужно искать глобальным поиском по конфигурации (Ctrl+Shift+F) по имени объекта.

Очистка связей перед удалением

По результатам поиска ссылок пройдитесь по каждой найденной позиции и уберите зависимость. Типичные места: реквизиты составного типа, где нужно снять флажок с удаляемого типа; движения документов, где объект выступает регистратором; измерения и ресурсы регистров, ссылающиеся на удаляемый справочник.

Особое внимание уделите ролям и подсистемам. Если объект входит в состав подсистемы, удалите его из состава через свойства подсистемы. В ролях удаление объекта из конфигурации автоматически уберёт его права, но если роль ссылается на объект в шаблонах ограничения доступа (RLS), текст шаблона может стать некорректным — проверьте это заранее.

Подписки на события и критерии отбора — ещё одна частая ловушка. Подписка, в источнике которой указан удаляемый объект, после его удаления вызовет ошибку проверки конфигурации. Откройте свойства каждой подписки и снимите соответствующий флажок в составе источников.

Маршрут решения

Как выбрать действие

Объект не содержит данных и на него нет ссылокУдаляйте напрямую через дерево конфигурации
На объект ссылаются реквизиты или регистрыСначала очистите все типы и составы, затем удаляйте
Объект содержит нужные данныеВыгрузите данные (универсальная выгрузка XML или обработка), потом удаляйте
Объект поставляется расширениемУдаляйте объект в расширении, а не в основной конфигурации

Удаление объекта в дереве конфигурации

Когда зависимости очищены, выделите объект в дереве конфигурации и нажмите Delete или выберите «Удалить» в контекстном меню. Конфигуратор запросит подтверждение. Если объект всё ещё используется, при проверке или обновлении вы получите список ошибок с указанием конкретных мест — это нормальный индикатор того, что этап очистки пропущен.

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

Проверка конфигурации и обновление базы данных

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

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

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

Порядок действий
  1. 1
    Сделайте выгрузку базы в .dt
  2. 2
    Найдите все ссылки на объект (поиск ссылок + глобальный поиск по коду)
  3. 3
    Очистите реквизиты, движения, подсистемы, роли, подписки
  4. 4
    Удалите объект в дереве конфигурации
  5. 5
    Выполните проверку конфигурации и исправьте ошибки
  6. 6
    Обновите конфигурацию базы данных, проверив список реструктуризации
  7. 7
    Протестируйте ключевые сценарии работы базы

Особые случаи: расширения, документы и регистры

Удаление объекта из расширения

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

Удаление документа с проведением

Перед удалением документа убедитесь, что все регистры, по которым он делал движения, либо тоже удаляются, либо очищены от него в списке регистраторов. Иначе в регистрах останутся записи с битой ссылкой на регистратор, что приведёт к ошибкам в отчётах.

Удаление регистра

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

Типичные ошибки
01
Удаление без выгрузки копии — потерянные данные восстановить нельзя
02
Очистка только структурных ссылок без поиска по коду — ошибки при обращении к модулям
03
Игнорирование подписок на события и критериев отбора — конфигурация не проходит проверку
04
Удаление типового объекта вместо расширения — конфликты при обновлении типовой конфигурации
05
Обновление базы сразу в рабочей среде без теста на копии

Проверка результата после удаления

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

Дополнительно полезно выполнить тестирование и исправление базы (chdbfl для файлового варианта или средствами СУБД) после масштабной реструктуризации, а также проверить, что в планах обмена не осталось зарегистрированных изменений по удалённому объекту.

Контрольные точки

Как проверить результат

Проверка конфигурации
Норма

Нет ошибок о необнаруженных объектах

Тревожный признак

Ошибки «объект не обнаружен» — остались ссылки

Окно реструктуризации
Норма

В списке только удаляемые таблицы

Тревожный признак

Присутствуют лишние таблицы — риск потери данных

Работа базы в режиме предприятия
Норма

Отчёты и документы открываются без ошибок

Тревожный признак

Ошибки «Объект не найден» в журнале регистрации

Частые вопросы

Можно ли восстановить удалённый объект метаданных?

Только из резервной копии или из хранилища конфигурации, если объект там был версионирован. После обновления конфигурации базы данных отменить удаление штатными средствами нельзя, поэтому выгрузка .dt перед операцией обязательна.

Конфигуратор не даёт удалить объект из-за ссылок. Что делать?

Используйте «Поиск ссылок на объекты метаданных» из контекстного меню объекта — он покажет все структурные зависимости. Пройдите по каждой и уберите тип или состав. После очистки удаление пройдёт без ошибок.

Удалятся ли данные справочника при удалении объекта?

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

Как удалить типовой объект, не снимая конфигурацию с поддержки?

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

Что делать, если после удаления в регистрах остались битые ссылки?

Это значит, что документ-регистратор был удалён, а записи регистров остались. Очистите такие записи обработкой или запросом, отобрав движения с неактуальным регистратором, либо восстановите базу из копии и повторите удаление с корректной очисткой движений.

Нужно ли удалять объект из планов обмена отдельно?

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

Итог

Что важно запомнить

Удаление объекта метаданных — это не одно нажатие Delete, а цепочка: копия базы, поиск и очистка всех ссылок и кода, удаление, проверка конфигурации и контролируемое обновление. Для типовых объектов предпочтительнее расширения и функциональные опции вместо физического удаления.