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

Администрирование · 10 мин

Как удалить все расширения 1С из конфигурации

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

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

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

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

Что нужно проверить перед удалением расширений

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

Обратите внимание на колонки «Активно», «Безопасный режим» и «Использовать в основных ролях». Неактивное расширение не влияет на работу, но всё равно хранится в базе. Если цель — полностью очистить базу, удалять нужно и неактивные записи, а не только снимать флажки.

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

Как удалить расширения через конфигуратор

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

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

Если при удалении появляется сообщение о том, что расширение используется в сеансах, завершите работу всех пользователей и фоновых заданий. В клиент-серверном режиме сеансы можно завершить через консоль кластера серверов 1С.

Удаление расширений в пользовательском режиме

В конфигурациях на базе Библиотеки стандартных подсистем расширения, установленные как дополнительные отчёты и обработки, удаляются из раздела «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». Там достаточно снять флажок публикации или удалить элемент справочника. Это не то же самое, что расширения конфигурации, но пользователи часто путают эти механизмы — проверьте оба места.

Как удалить все расширения пакетно через командную строку

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

Команда удаления конкретного расширения в пакетном режиме выглядит так:

bash
"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" DESIGNER /F"D:\Bases\MyBase" /N"Админ" /P"пароль" /DeleteCfgExtension -Extension "ИмяРасширения" /UpdateDBCfg

Параметр /DeleteCfgExtension -Extension "Имя" удаляет расширение по имени, а /UpdateDBCfg сразу обновляет конфигурацию базы данных. Имена всех расширений можно предварительно получить выгрузкой списка или посмотреть в конфигураторе. Для удаления всех расширений подряд сформируйте bat-файл с последовательным вызовом команды для каждого имени.

Альтернатива — обработка на встроенном языке, использующая метод РасширенияКонфигурации.Получить() и метод Удалить() у каждого объекта расширения, с последующим вызовом ОбновитьКонфигурациюБазыДанных(). Такой подход удобен, когда имена расширений заранее неизвестны: обработка сама переберёт все подключённые расширения и удалит их одним запуском.

Очистка кэша и следов расширений у пользователей

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

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

bash
# Кэш 1С текущего пользователя Windows (закройте все сеансы 1С перед очисткой)
%APPDATA%\1C\1cv8\
%LOCALAPPDATA%\1C\1cv8\

В клиент-серверном режиме также бывает полезно перезапустить службу агента сервера 1С, чтобы сбросить серверный кэш. Делайте это вне рабочего времени: перезапуск службы разорвёт все активные сеансы пользователей.

Как проверить, что все расширения удалены

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

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

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

Список расширений в конфигураторе
Норма

Окно «Расширения конфигурации» пустое, ни активных, ни неактивных записей

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

Остались строки с снятым флажком — они всё ещё хранятся в базе

Запуск пользовательского сеанса
Норма

База открывается без сообщений о расширениях и ошибок применения

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

Ошибки «расширение не найдено» или падение клиента — требуется очистка кэша

Тестирование и исправление
Норма

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

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

Ссылки на удалённые объекты расширений — нужна повторная реструктуризация

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

Типовое обновление применяется без конфликтов с расширениями

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

Ошибки сопоставления — вероятно, расширение удалено не полностью

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

Типичные ошибки и ограничения

Типичные ошибки
01
Снятие флажка «Активно» вместо удаления — расширение остаётся в базе и продолжает занимать место и мешать диагностике.
02
Удаление расширения без резервной копии — при обнаружении нужной доработки восстановить её невозможно, если не была сделана выгрузка в *.cfe.
03
Игнорирование кэша — после удаления пользователи получают ошибки применения расширений, хотя в базе их уже нет.
04
Удаление расширений с собственными объектами без анализа данных — вместе с расширением удаляются документы и регистры, которые оно добавляло.
05
Пакетное удаление без монопольного доступа — обновление конфигурации БД завершается ошибкой, и база остаётся в промежуточном состоянии.

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

Перед массовым удалением выгрузите каждое расширение в файл *.cfe через кнопку «Сохранить в файл» в окне расширений. Архив таких файлов занимает мало места, но позволит вернуть любую доработку за минуты, если после очистки выяснится, что какая-то из них была нужна.
ПЗ
Практическое замечание

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

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

Штатной кнопки «удалить всё» в конфигураторе нет. Массово удалить расширения можно двумя способами: последовательными командами /DeleteCfgExtension в bat-файле для каждого имени или обработкой на встроенном языке, которая перебирает коллекцию РасширенияКонфигурации и вызывает метод Удалить() у каждого элемента.

Удалятся ли данные, если расширение добавляло свои объекты?

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

Чем удаление отличается от снятия флажка «Активно»?

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

Ошибка «расширение используется в сеансах» — что делать?

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

После удаления расширений база не запускается у пользователей. Почему?

Почти всегда причина в устаревшем клиентском кэше. Очистите папки кэша в профиле пользователя (%APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8) или удалите базу из списка в окне запуска и добавьте заново. В серверном режиме дополнительно может потребоваться перезапуск службы агента сервера.

Можно ли восстановить удалённое расширение?

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

Итог

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

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