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

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

Как удалить объект из расширения 1С

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

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

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

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

Что нужно подготовить перед удалением объекта

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

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

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

Заимствованные объекты помечены в дереве расширения пиктограммой со стрелкой. Чтобы удалить такой объект, откройте расширение (в палитре свойств конфигурации — «Расширения конфигурации», либо через меню «Конфигурация → Расширения конфигурации»), найдите объект в дереве, выделите его и нажмите Delete или выберите «Удалить» в контекстном меню.

Учтите зависимости: если у заимствованного объекта переопределены формы, модули или команды, платформа обычно удаляет их вместе с объектом. Однако если заимствованная форма используется в другом месте расширения (например, назначена основной формой у другого заимствованного объекта), возникнет ошибка при проверке. Сначала удалите или переназначьте зависимые элементы.

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

Как удалить собственный объект расширения

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

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

Порядок удаления объекта из расширения
  1. 1
    Сделайте резервную копию базы и сохраните расширение в файл cfe
  2. 2
    Откройте расширение в конфигураторе и найдите объект в дереве
  3. 3
    Выполните поиск ссылок на объект: правый клик → «Поиск ссылок на объект»
  4. 4
    Уберите объект из подсистем, ролей, удалите упоминания в коде модулей
  5. 5
    Удалите объект (Delete) и подтвердите удаление зависимых элементов
  6. 6
    Обновите конфигурацию базы данных (F7) и проверьте отсутствие ошибок

Проверка ссылок перед удалением

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

Дополнительно выполните глобальный поиск (Ctrl+Shift+F) по имени объекта в модулях расширения — так вы найдёте строковые обращения, которые поиск ссылок может не показать, например обращения через Вычислить("Справочники.МойСправочник") или динамическое формирование имён.

Если объект используется в заимствованных формах (например, реквизит собственного справочника добавлен на форму документа), удалите элемент с формы вручную до удаления самого объекта. Иначе форма окажется в неконсистентном состоянии.

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

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

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

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

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

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

Реструктуризация проходит без ошибок, список удаляемых объектов соответствует плану

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

Ошибки «Обнаружены ссылки на объект» или в списке лишние таблицы

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

Нет ошибок компиляции модулей и ссылочной целостности

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

Сообщения «Переменная не определена», «Объект не обнаружен»

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

Расширение подключено, формы открываются, типовая функциональность работает

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

Расширение отключено из-за ошибок, формы не открываются

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

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

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

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

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

Альтернативы удалению: отключение и отмена заимствования

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

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

Сравнение вариантов

Полное удаление объекта

Подходит, когда доработка больше не понадобится. Данные собственного объекта удаляются безвозвратно.

Отключение расширения

Быстрый способ отключить все доработки сразу без изменения расширения. Легко вернуть обратно.

Исключение из подсистем и ролей

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

FAQ

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

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

Что произойдёт с данными при удалении собственного справочника из расширения?

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

Обновление конфигурации выдаёт ошибку «Обнаружены ссылки на объект». Что делать?

Отмените обновление, выделите объект в дереве расширения и выполните «Поиск ссылок на объект». Устраните все найденные упоминания: уберите объект из подсистем, снимите права в ролях, удалите элементы форм и строки кода. Затем повторите обновление.

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

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

Можно ли восстановить удалённый из расширения объект?

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

Влияет ли удаление объекта из расширения на основную конфигурацию?

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

Итог

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

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