Выключаем расширение конфигурации 1С без потери данных и прав

· 9 мин

Содержание

Чтобы отключить расширение в 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. Откройте список расширений по пути из таблицы.
  2. Найдите строку с нужным расширением. Имя и версия видны в колонках списка.
  3. Снимите флажок «Подключено».
  4. Программа предупредит, что изменения вступят в силу после перезапуска.
  5. Закройте 1С и запустите заново. Попросите остальных пользователей сделать то же.

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

Через «Функции для технического специалиста»

Если в конфигурации нет формы «Расширения» или она не открывается из-за ошибки, используйте стандартную обработку платформы:

  1. Включите меню «Все функции»: Сервис и настройки (кнопка с шестерёнкой) → Настройки → Отображать команду "Все функции".
  2. Откройте Все функции → Стандартные → Управление расширениями конфигурации.
  3. Выделите расширение, снимите флажок активности или удалите строку.
  4. Перезапустите сеанс.

Эта обработка — часть платформы, она есть в любой конфигурации 8.3, даже самописной.

Отключение и удаление расширений в Конфигураторе

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

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

Для удаления выделите строку и нажмите «Удалить» на панели окна. Платформа предупредит, если у расширения есть данные. Перед удалением сохраните его через меню окна расширений: команда сохранения в файл выгрузит .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: набор параметров менялся между версиями платформы.

Встроенный язык

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

&НаСервере
Процедура ОтключитьРасширениеНаСервере(ИмяРасширения)
	Для Каждого Расширение Из РасширенияКонфигурации.Получить() Цикл
		Если Расширение.Имя = ИмяРасширения Тогда
			Расширение.Активно = Ложь;
			Расширение.Записать();
			Сообщить("Отключено: " + Расширение.Имя);
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры

Изменение применится к новым сеансам. Чтобы вернуть расширение, присвойте Активно = Истина и снова вызовите Записать().

Что проверить после отключения расширения

Расширение выключено, программа перезапущена. Теперь пройдите по списку того, что могло сломаться.

Проверка базы после отключения расширения
Выполнено: 0 / 6

Частые симптомы и их причины:

Диагностика: выберите симптом

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

Если база не открывается из-за расширения

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

Что делать по порядку:

  1. Откройте Конфигуратор. Он запускается, даже когда Предприятие падает из-за кода расширения: модули расширений Конфигуратор не исполняет.
  2. Снимите флажок «Активно» в окне Конфигурация → Расширения конфигурации у последнего установленного расширения.
  3. Запустите Предприятие. Если открылось — виновник найден. Отключайте остальные по одному, если есть сомнения.
  4. Нет доступа к Конфигуратору (например, база в облачном сервисе или нет пароля администратора) — используйте пакетное удаление /DeleteCfg из предыдущего раздела, предварительно выгрузив .cfe через /DumpCfg.
  5. Ошибка появилась после обновления конфигурации. Расширение могло заимствовать объект, который в новом релизе переименован или удалён. Отключите его, а разработчику передайте текст ошибки и номер нового релиза: расширение нужно адаптировать.

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

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

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

Пропадут ли данные, если расширение отключить, а не удалить?
Нет. При снятии активности данные собственных объектов расширения остаются в базе. Включите расширение обратно — справочники и документы вернутся в интерфейс.
Можно ли отключить расширение только для одного пользователя?
Штатно нет: активность расширения действует на всю базу. Ограничить его можно правами — если функции расширения доступны через его роли, не выдавайте эти роли нужным пользователям.
Нужно ли отключать расширения перед обновлением конфигурации?
Обычно нет: типовое обновление проходит с подключёнными расширениями. Отключайте, если расширение заимствует изменённые в релизе объекты и после обновления появляются ошибки, или если так рекомендует разработчик расширения.
Почему расширения нет в списке, хотя доработки работают?
Скорее всего, это не расширение, а внешняя обработка, подключённая через «Дополнительные отчёты и обработки», или изменённая типовая конфигурация, снятая с поддержки. Их отключают другими способами.
Чем флажок «Безопасный режим» отличается от отключения?
Безопасный режим не выключает расширение, а ограничивает его: запрещает работу с файлами, внешними компонентами и привилегированные операции. Отключение полностью убирает расширение из новых сеансов.