Расширение больше не нужно: убираем его из базы 1С без последствий
Содержание
Чтобы удалить расширение конфигурации
в 1С 8.3, откройте Конфигуратор, выберите Конфигурация → Расширения конфигурации, выделите расширение в списке и нажмите кнопку удаления. Без Конфигуратора это делается в пользовательском режиме: Все функции → Стандартные → Управление расширениями конфигурации или, в конфигурациях на БСП, Администрирование → Печатные формы, отчеты и обработки → Расширения.
Порядок общий для платформы 8.3 и не зависит от того, что у вас: Бухгалтерия, ЗУП, УТ или своя разработка. Расширения появились в платформе 8.3.6, поэтому в 8.2 и 7.7 этой процедуры нет. Главный риск один: если расширение хранит собственные данные, они уйдут вместе с ним.
Что проверить до удаления расширения
Удаление занимает секунды, а откатить его без копии нельзя. Перед нажатием кнопки ответьте себе на четыре вопроса.
- 📦 Есть ли у расширения свои данные. С платформы 8.3.11 расширение может добавлять собственные справочники, документы и регистры. Записи в них хранятся в базе и удаляются вместе с расширением.
- 🧩 Добавляет ли оно реквизиты к типовым объектам. Значения этих реквизитов в документах и справочниках тоже пропадут.
- 👤 Есть ли в нём роли. Если пользователям выдавали роли из расширения, после удаления у них исчезнут соответствующие права. Проверьте профили групп доступа заранее.
- ⏰ Запускает ли оно регламентные задания, печатные формы, команды. Всё это перестанет работать, и сотрудники придут с вопросом «куда делась кнопка».
Что сохранить:
- Само расширение в файл
.cfe. В Конфигураторе в окне расширений выделите строку и найдите в меню этого окна команду сохранения расширения в файл. Это позволит вернуть его за минуту. - Полную копию базы
, если у расширения есть данные. Для файловой базы — копия каталога с файлом
1Cv8.1CD, для клиент-серверной — выгрузка.dtили резервная копия средствами СУБД.
Если расширение мешает только временно (например, после обновления типовой конфигурации), удалять его не обязательно. Снимите флажок «Активно» — расширение останется в базе со всеми данными, но перестанет применяться.
Удаление расширения через Конфигуратор
Это основной способ, и он работает в любой базе, где у вас есть права администратора.
Пошагово
- Запустите базу в режиме «Конфигуратор» под пользователем с полными правами.
- Откройте меню
Конфигурация → Расширения конфигурации. Появится список всех расширений базы. - Если дерево нужного расширения открыто в Конфигураторе, закройте его окно.
- Выделите строку расширения и нажмите кнопку удаления в командной панели окна (красный крестик) или клавишу
Delete. - Подтвердите удаление. Если у расширения есть данные, платформа отдельно предупредит, что они будут потеряны.
- Перезапустите сеансы пользователей: в уже открытых сеансах расширение остаётся загруженным до перезапуска.
Предупреждение о данных — последний шанс отказаться. Если копии нет, нажмите «Нет» и вернитесь к предыдущему разделу.
Что видно в списке расширений
В окне расширений полезно посмотреть колонки, прежде чем что-то удалять:
| Колонка | Что означает | На что влияет при удалении |
|---|---|---|
| Активно | Применяется ли расширение сейчас | Неактивное можно удалить, не опасаясь, что сломается работающий функционал |
| Безопасный режим | Ограничены ли права кода расширения | На удаление не влияет |
| Защита от опасных действий | Будет ли платформа предупреждать об опасных операциях | На удаление не влияет |
| Область действия | Вся база или отдельная область данных | В разделённой базе удаляйте в той области, где расширение подключено |
Если в базе несколько расширений с похожими именами (например, Доработки_Печать и Доработки_Печать_старое), сверьте синоним и версию в свойствах, а не только имя.
Удаление из режима «Предприятие»
Конфигуратор не нужен, если расширение подключали через пользовательский интерфейс. Таких способов два.
Через стандартную функцию платформы
- В режиме «Предприятие» откройте
Все функции(если пункта нет в меню, включите его:Сервис и настройки → Параметры → Отображать команду «Все функции»). - Перейдите в
Стандартные → Управление расширениями конфигурации. - Выделите расширение и нажмите «Удалить».
- Закройте программу и откройте снова, чтобы изменения применились к вашему сеансу.
Через раздел «Администрирование» в типовых конфигурациях
В Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на БСП есть собственный список расширений с понятным интерфейсом:
| Конфигурация | Где найти список расширений |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Печатные формы, отчеты и обработки → Расширения |
| Зарплата и управление персоналом 3.1 | Администрирование → Печатные формы, отчеты и обработки → Расширения |
| Управление торговлей 11 | НСИ и администрирование → Печатные формы, отчеты и обработки → Расширения |
В этом списке выделите строку и найдите в командной панели или в меню «Ещё» команду удаления. После удаления программа предложит перезапуститься — соглашайтесь.
Для операций с расширениями нужны административные права. Если кнопки удаления нет или она неактивна, войдите под администратором базы.
Монопольный режим и блокировки: когда они мешают
Само по себе удаление расширения монопольного доступа не требует. Пользователи могут работать, пока вы удаляете расширение в Конфигураторе или в «Предприятии».
Ситуация меняется, если расширение изменяет структуру хранения данных: добавляет свои объекты или реквизиты к типовым. Тогда при удалении платформе нужно перестроить таблицы базы, а это возможно только без активных сеансов. Если в базе кто-то работает, вы получите сообщение о невозможности установить монопольный режим.
Как освободить базу:
- Предупредите пользователей и назначьте время, например обед или после 19:00.
- В типовых конфигурациях на БСП установите блокировку сеансов:
Администрирование → Обслуживание → Блокировка работы пользователей(в УТ 11 — через разделНСИ и администрирование). Укажите время начала и текст сообщения. - Для клиент-серверной базы проверьте оставшиеся сеансы в консоли администрирования серверов 1С: узел информационной базы → «Сеансы».
- Повторите удаление, когда список сеансов опустеет.
Принудительное завершение сеанса в консоли обрывает работу пользователя: всё, что он не записал, пропадёт. Делайте это только после предупреждения и вне рабочего времени.
Фоновые задания и регламентные задачи тоже держат сеансы. Если в консоли остался сеанс «Фоновое задание», дождитесь его окончания или отключите регламентные задания на время работ. Не забудьте снять блокировку после удаления: иначе утром никто не войдёт в базу.
Удаление в клиент-серверной базе и без интерфейса
Для серверной базы порядок через Конфигуратор тот же: расширения хранятся в самой базе на СУБД, а не в отдельных файлах на компьютере пользователя. Отличаются два момента: управление сеансами идёт через консоль сервера, а массовые операции удобнее делать из командной строки.
Пакетный запуск Конфигуратора
Когда нужно убрать расширение в десятке баз или по расписанию, используйте пакетный режим. Параметр /DeleteCfg с ключом -Extension удаляет одно расширение по имени, с ключом -AllExtensions — все сразу.
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /S"srv1c\buh_main" /N"Администратор" /P"пароль" /DeleteCfg -Extension Доработки_Печать /Out"C:\logs\delete_ext.log"
Для файловой базы вместо /S"сервер\база" укажите /F"D:\Bases\Buh". Путь к 1cv8.exe подставьте под свою версию платформы. Результат смотрите в файле из параметра /Out.
Ключ -AllExtensions удобен, если база перестала открываться из-за сломанного расширения, а какое именно виновато, непонятно. Но он уносит все расширения сразу, включая нужные, поэтому заранее сохраните их в .cfe.
Удаление из кода
Если расширения нужно убирать программно, например из обработки администратора, используйте объект РасширенияКонфигурации. Код выполняется на сервере, пользователю нужны права администрирования.
&НаСервере
Процедура УдалитьРасширениеНаСервере(ИмяРасширения)
Для Каждого Расширение Из РасширенияКонфигурации.Получить() Цикл
Если Расширение.Имя = ИмяРасширения Тогда
Расширение.Удалить();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Метод Получить() возвращает массив, поэтому удаление внутри цикла его не ломает. Изменения применятся к сеансам после их перезапуска.
Если база не открывается: ручная очистка
Частый сценарий: обновили типовую конфигурацию , расширение стало неприменимым, и при входе в «Предприятие» платформа ругается на ошибку применения расширения. В Конфигуратор при этом зайти можно — расширения на запуск Конфигуратора не влияют.
Что делать по порядку:
- Войдите в Конфигуратор и откройте
Конфигурация → Расширения конфигурации. - Снимите у проблемного расширения флажок «Активно». Пользователи смогут работать, а у вас появится время разобраться.
- Решите: исправить расширение или удалить. Если в нём важные доработки, откройте его, найдите объекты, которые перестали совпадать с изменённой типовой, и поправьте. Если доработки устарели — удаляйте.
- Если через окно расширений удалить не получается, используйте пакетный запуск с
/DeleteCfgиз раздела выше.
Не правьте таблицы расширений напрямую в SQL и не удаляйте файлы внутри каталога базы. Расширения хранятся в служебных таблицах базы вместе с метаданными, и ручная правка может оставить базу в неконсистентном состоянии. Все безопасные варианты удаления описаны выше.
Что можно и нужно чистить вручную — это то, что лежит вне базы:
- 📁 файлы
.cfeв общих папках, откуда расширение подгружали, чтобы его не загрузили обратно по ошибке; - 🗂 кэш платформы на компьютерах пользователей (о нём в следующем разделе);
- 📝 инструкции и регламенты, где упоминается функционал расширения.
Как убедиться, что расширение удалено, и сбросить кэш
После удаления проверьте три вещи:
- Список расширений. Повторно откройте
Конфигурация → Расширения конфигурацииили список в «Администрировании». Удалённой строки быть не должно. - Функционал. Откройте документ или отчёт, который меняло расширение. Должна вернуться типовая форма, без добавленных полей и кнопок.
- Журнал регистрации. В
Администрирование → Обслуживание → Журнал регистрации(в Конфигураторе —Администрирование → Журнал регистрации) отфильтруйте события за последние минуты и посмотрите, нет ли ошибок.
Если у пользователя всё ещё видна старая печатная форма или кнопка, дело почти всегда в кэше клиента. Самый простой сброс — запуск с параметром /ClearCache:
- В окне запуска 1С выделите базу и нажмите «Изменить».
- Пройдите до последней страницы мастера.
- В поле «Дополнительные параметры запуска» впишите
/ClearCache. - Запустите базу один раз, затем уберите параметр, чтобы кэш не сбрасывался при каждом входе.
Радикальный вариант — удалить папки кэша в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 при закрытой программе. Имена папок там — длинные идентификаторы баз. Сам файл со списком баз ibases.v8i лежит в %APPDATA%\1C\1CEStart, его не трогайте.
Серверный кэш (каталог сеансовых данных на сервере 1С) после удаления расширения чистить не требуется. Если вы всё же решили его чистить, это делают только при остановленной службе агента сервера 1С, а остановка обрывает сеансы всех пользователей всех баз на этом сервере.