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