Выключаем расширение конфигурации 1С без потери данных и прав
Содержание
Чтобы отключить расширение
в 1С 8.3, откройте Администрирование → Печатные формы, отчеты и обработки → Расширения, снимите флажок «Подключено» у нужной строки и перезапустите программу. Расширение останется в базе, его данные сохранятся, но код и формы перестанут работать.
Если база после установки расширения падает при запуске, пользовательский режим недоступен. Тогда расширения отключают в Конфигураторе, из командной строки или кодом. Ниже все способы по порядку: от самого мягкого до удаления.
Что такое расширение и когда его выключают
Расширение конфигурации
(файл .cfe) — надстройка над типовой конфигурацией. Оно добавляет печатные формы, реквизиты, отчёты, роли или меняет поведение типовых модулей, не снимая конфигурацию с поддержки. Механизм появился в платформе 8.3.6, флаг активности — в более поздних версиях 8.3.
Важно не путать расширения с внешними обработками. «Дополнительные отчёты и обработки» (файлы .epf и .erf) живут в отдельном справочнике и отключаются там же, через свою команду. Здесь речь только о .cfe.
Типичные поводы выключить расширение:
- 🔄 перед обновлением конфигурации: расширение может перехватывать изменённые в новом релизе методы;
- 🐞 после установки появились ошибки, тормоза или база перестала открываться;
- 🧪 нужно проверить, виновато ли расширение в странном поведении документа;
- 🗑 доработка больше не нужна, а подрядчик, который её писал, недоступен;
- 🔐 расширение поставлено без проверки и работает без безопасного режима.
Есть три разных действия, и у них разные последствия:
| Действие | Что происходит | Данные расширения | Вернуть |
|---|---|---|---|
| Отключить (снять активность) | Расширение не подключается к новым сеансам | Сохраняются | Поставить флажок обратно |
| Удалить | Расширение стирается из базы | Данные собственных объектов теряются | Только загрузить .cfe заново |
| Отключить для одного запуска | В типовом механизме такого режима нет | — | — |
Отключение обратимо, удаление — нет. Для диагностики почти всегда достаточно снять флажок.
Подготовка: права, зависимости и копия расширения
Перед тем как отключать расширение в рабочей базе, проверьте четыре вещи.
1. Права. Управлять расширениями может пользователь с правом «Администрирование расширений конфигурации». В типовых конфигурациях оно входит в профиль «Администратор». Обычному бухгалтеру список расширений будет недоступен.
2. Что расширение добавляет. Откройте его в Конфигураторе и посмотрите ветки дерева:
- 📄 собственные справочники, документы, регистры — в них есть данные, их нельзя терять;
- 👤 роли — пользователи, которым права выдавались только через роль расширения, потеряют доступ;
- ⏱ регламентные задания — фоновые обмены и загрузки остановятся;
- 🖨 печатные формы и отчёты — пропадут из меню «Печать» и списков отчётов;
- 🧩 заимствованные объекты с изменёнными модулями — типовое поведение вернётся.
3. Кто сейчас работает. Новое состояние расширения применяется к сеансам, которые запущены после изменения. Пользователи в уже открытых сеансах продолжат работать со старым набором до перезапуска. Поэтому меняйте состав расширений в конце дня или предупредите людей.
4. Копия .cfe. Сохраните расширение в файл, даже если собираетесь только отключить. В форме «Расширения» есть команда сохранения в файл, в Конфигураторе — тоже. Если подрядчик потом пропадёт, файл останется у вас.
Если в расширении есть собственные объекты с данными, сделайте полную выгрузку базы в .dt или резервную копию средствами СУБД. Это единственный способ вернуть данные после случайного удаления.
Как отключить расширение в пользовательском режиме 1С
Самый безопасный способ: не нужен Конфигуратор, не нужен монопольный доступ, всё обратимо.
Через раздел администрирования типовой конфигурации
Путь к списку расширений в основных конфигурациях:
| Конфигурация | Путь |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Печатные формы, отчеты и обработки → Расширения |
| ЗУП 3.1 | Администрирование → Печатные формы, отчеты и обработки → Расширения |
| Управление торговлей 11 | НСИ и администрирование → Печатные формы, отчеты и обработки → Расширения |
Если ссылки «Расширения» нет, в том же разделе включите одноимённый флажок — он открывает доступ к списку.
Порядок действий:
- Откройте список расширений по пути из таблицы.
- Найдите строку с нужным расширением. Имя и версия видны в колонках списка.
- Снимите флажок «Подключено».
- Программа предупредит, что изменения вступят в силу после перезапуска.
- Закройте 1С и запустите заново. Попросите остальных пользователей сделать то же.
Чтобы удалить расширение полностью, выделите строку и выполните команду удаления из командной панели формы. Перед этим сохраните его в файл.
Через «Функции для технического специалиста»
Если в конфигурации нет формы «Расширения» или она не открывается из-за ошибки, используйте стандартную обработку платформы:
- Включите меню «Все функции»:
Сервис и настройки (кнопка с шестерёнкой) → Настройки → Отображать команду "Все функции". - Откройте
Все функции → Стандартные → Управление расширениями конфигурации. - Выделите расширение, снимите флажок активности или удалите строку.
- Перезапустите сеанс.
Эта обработка — часть платформы, она есть в любой конфигурации 8.3, даже самописной.
Отключение и удаление расширений в Конфигураторе
Конфигуратор нужен, когда в Предприятие не попасть или когда хочется видеть, что именно расширение меняет.
- Запустите базу в режиме «Конфигуратор» под администратором.
- Откройте
Конфигурация → Расширения конфигурации. - В списке у каждого расширения есть колонки «Активно», «Безопасный режим», «Защита от опасных действий».
- Снимите флажок «Активно» у нужной строки. Изменение записывается в базу сразу, отдельного «Обновить конфигурацию базы данных» для этого не требуется.
- Запустите Предприятие и проверьте результат.
Для удаления выделите строку и нажмите «Удалить» на панели окна. Платформа предупредит, если у расширения есть данные. Перед удалением сохраните его через меню окна расширений: команда сохранения в файл выгрузит .cfe.
Если вы открыли расширение на редактирование и что-то в нём меняли, не нажимайте «Обновить конфигурацию базы данных» по инерции. Иначе в базу запишется изменённая версия, а не та, что работала у пользователей.
Флажки «Безопасный режим» и «Защита от опасных действий» к отключению отношения не имеют. Безопасный режим ограничивает расширение: оно не может работать с файлами, внешними компонентами и привилегированным режимом. Если после снятия этого флажка расширение начало вести себя иначе — это повод разобраться с его кодом, а не повод держать базу без защиты.
Отключение расширений через командную строку и кодом
Эти способы пригодятся администратору, который обслуживает десятки баз, или когда базу нужно привести в порядок скриптом перед обновлением.
Пакетный запуск Конфигуратора
Сначала выгрузите расширение в файл, потом удалите. Для файловой базы:
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
%V8% DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" ^
/DumpCfg "D:\Backup\DopPechat.cfe" -Extension "ДопПечать" /Out"D:\Backup\dump.log"
%V8% DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" ^
/DeleteCfg -Extension "ДопПечать" /Out"D:\Backup\delete.log"
Для клиент-серверной базы вместо /F укажите /S"имя_сервера\имя_базы". Номер платформы в пути замените на свой. Чтобы удалить все расширения
разом, используйте -AllExtensions вместо -Extension "Имя".
Вернуть расширение из файла:
%V8% DESIGNER /S"srv01\buh" /N"Администратор" /P"пароль" ^
/LoadCfg "D:\Backup\DopPechat.cfe" -Extension "ДопПечать" ^
/UpdateDBCfg -Extension "ДопПечать" /Out"D:\Backup\load.log"
Загрузка .cfe и обновление конфигурации
базы данных для расширения — два отдельных шага. Без /UpdateDBCfg расширение будет загружено, но не применено.
Командная строка Конфигуратора удаляет и загружает расширения, но не переключает флажок активности. Для этого есть утилита ibcmd и код. Синтаксис команд ibcmd для расширений смотрите в её встроенной справке ibcmd help: набор параметров менялся между версиями платформы.
Встроенный язык
Флажок активности можно снять программно — например, внешней обработкой, которую запускают в Предприятии. Код выполняется на сервере под пользователем с правом администрирования расширений:
&НаСервере
Процедура ОтключитьРасширениеНаСервере(ИмяРасширения)
Для Каждого Расширение Из РасширенияКонфигурации.Получить() Цикл
Если Расширение.Имя = ИмяРасширения Тогда
Расширение.Активно = Ложь;
Расширение.Записать();
Сообщить("Отключено: " + Расширение.Имя);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Изменение применится к новым сеансам. Чтобы вернуть расширение, присвойте Активно = Истина и снова вызовите Записать().
Что проверить после отключения расширения
Расширение выключено, программа перезапущена. Теперь пройдите по списку того, что могло сломаться.
Частые симптомы и их причины:
Еще → Изменить форму./ClearCache.Если ошибка, из-за которой вы отключали расширение, осталась — виновато не оно. Включите его обратно и ищите причину в типовой конфигурации, данных или другом расширении. Отключайте расширения по одному: так виден виновник.
Если база не открывается из-за расширения
Самая неприятная ситуация: после загрузки расширения или обновления конфигурации Предприятие падает при старте с ошибкой в модуле расширения. В пользовательский режим не попасть, флажок не снять.
Что делать по порядку:
- Откройте Конфигуратор. Он запускается, даже когда Предприятие падает из-за кода расширения: модули расширений Конфигуратор не исполняет.
- Снимите флажок «Активно» в окне
Конфигурация → Расширения конфигурацииу последнего установленного расширения. - Запустите Предприятие. Если открылось — виновник найден. Отключайте остальные по одному, если есть сомнения.
- Нет доступа к Конфигуратору (например, база в облачном сервисе или нет пароля администратора) — используйте пакетное удаление
/DeleteCfgиз предыдущего раздела, предварительно выгрузив.cfeчерез/DumpCfg. - Ошибка появилась после обновления конфигурации. Расширение могло заимствовать объект, который в новом релизе переименован или удалён. Отключите его, а разработчику передайте текст ошибки и номер нового релиза: расширение нужно адаптировать.
В пакетном режиме некому прочитать предупреждение о данных расширения. Если в расширении хранятся справочники или документы, сначала сделайте резервную копию базы.
Для клиент-серверной базы пакетные операции Конфигуратора выполняйте, когда пользователи не работают: удаление и обновление расширения меняют структуру хранения его данных.