Отключаем расширение конфигурации без удаления: три способа для 1С 8.3

· 9 мин

Содержание

Чтобы отключить расширение в 1С 8.3, откройте Администрирование → Печатные формы, отчеты и обработки → Расширения, выделите нужное расширение и снимите у него флажок активности. После этого все пользователи должны перезайти в программу: отключённое расширение перестаёт применяться только при новом сеансе.

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

Где в интерфейсе 1С искать список расширений

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

КонфигурацияГде открыть список расширений
Бухгалтерия предприятия 3.0Администрирование → Печатные формы, отчеты и обработки → Расширения
ЗУП 3.1Администрирование → Печатные формы, отчеты и обработки → Расширения
Управление торговлей 11НСИ и администрирование → Печатные формы, отчеты и обработки → Расширения
Любая конфигурация на 8.3Главное меню → Все функции → Стандартные → Управление расширениями конфигурации

Если в главном меню нет пункта «Все функции», включите его: Главное меню → Сервис → Параметры и флажок «Отображать команду “Все функции”».

Если в типовой форме нужного расширения нет, а в стандартной функции оно видно, скорее всего, это исправление (патч). Такие расширения БСП показывает отдельным списком, об этом ниже.

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

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

Не все строки в списке — доработки программиста. У каждого расширения есть свойство «Назначение», и от него зависит, чем грозит отключение.

НазначениеКто обычно ставитЧем рискуете при отключении
🩹 ИсправлениеФирма 1С через интернет-поддержкуВернётся ошибка, которую патч закрывал
🔧 АдаптацияПрограммист под вашу компаниюПропадут доработки форм, отчётов, алгоритмов
➕ ДополнениеСторонний разработчик, тиражное решениеПерестанет работать подключённый модуль: обмен, интеграция, печать

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

Перед отключением адаптации или дополнения выясните у того, кто ставил расширение, какие объекты оно меняет. Особенно опасны два случая:

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

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

Отключить, удалить или ограничить: что выбрать

Отключение и удаление часто путают, хотя последствия у них разные. Отключённое расширение остаётся в базе вместе со своими данными. Удалённое исчезает целиком, а с ним и данные, которые хранились в его собственных объектах.

ДействиеЧто происходитДанные расширенияКогда выбирать
⏸️ Отключить (снять активность)Расширение хранится в базе, но не применяется к конфигурацииСохраняютсяВременно убрать доработку, найти виновника ошибки, переждать обновление
🗑️ УдалитьРасширение стирается из базыУдаляются данные собственных справочников, документов и регистров расширенияДоработка больше не нужна и данные в ней не важны
🔒 Оставить в безопасном режимеРасширение работает, но без доступа к файлам, COM, внешним компонентамСохраняютсяРасширение от стороннего разработчика, которому вы не доверяете полностью

Если расширение добавляло свои справочники или регистры, удаление уничтожит записи в них безвозвратно. Перед удалением такой доработки сделайте выгрузку базы в .dt или резервную копию средствами СУБД.

Отключение, напротив, обратимо. Вернули флажок, перезашли — расширение снова работает, данные на месте.

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

Как отключить расширение в 1С 8.3 в режиме Предприятие

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

  1. Откройте список расширений по пути из таблицы выше.
  2. Найдите нужную строку. Если расширений много, отсортируйте список по имени или воспользуйтесь поиском по форме (Ctrl+F).
  3. Снимите флажок в колонке активности. В БСП она называется «Подключено» или «Активно» в зависимости от версии библиотеки.
  4. Закройте форму. Программа сообщит, что изменения вступят в силу после перезапуска.
  5. Перезапустите свой сеанс и попросите остальных пользователей выйти и войти заново.

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

Через стандартную функцию платформы

Этот путь работает в самописных и сильно доработанных конфигурациях, где формы БСП нет.

  1. Откройте Все функции → Стандартные → Управление расширениями конфигурации.
  2. Выделите расширение.
  3. Снимите флажок в колонке «Активно».
  4. Перезапустите сеанс.

Здесь же видны флажки «Безопасный режим» и «Защита от опасных действий». Их трогать для отключения не нужно.

Как проверить, что расширение действительно отключилось

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

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

Перед отключением расширения
Выполнено: 0 / 4

Управление расширениями через Конфигуратор

Конфигуратор — единственный выход, если база не запускается в режиме Предприятие из-за расширения. Например, после обновления конфигурации расширение перестало «подходить» к изменённым объектам, и при входе программа выдаёт ошибку применения расширения.

Отключение без удаления

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

Флажок «Активно» доступен в окне расширений на актуальных версиях платформы. На старых релизах 8.3 его нет, и остаётся только удаление.

Удаление из Конфигуратора

В том же окне Конфигурация → Расширения конфигурации выделите расширение и нажмите кнопку удаления в командной панели. Платформа запросит подтверждение. Помните про данные из таблицы выше.

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

Если изменения расширения не применились

Когда вы правили само расширение в Конфигураторе, а не отключали его, изменения нужно записать в базу: в дереве расширения выполнить Конфигурация → Обновить конфигурацию базы данных (F7). Загрузка .cfe и обновление конфигурации базы данных — это два разных шага. Пропустите второй, и пользователи продолжат работать со старой версией расширения.

Автоматизация: отключение расширений кодом и из командной строки

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

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

&НаСервереБезКонтекста
Процедура ОтключитьРасширениеНаСервере(ИмяРасширения)

    Отбор = Новый Структура("Имя", ИмяРасширения);
    Найденные = РасширенияКонфигурации.Получить(Отбор);

    Если Найденные.Количество() = 0 Тогда
        Сообщить(СтрШаблон("Расширение %1 не найдено", ИмяРасширения));
        Возврат;
    КонецЕсли;

    Для Каждого Расширение Из Найденные Цикл
        Если Расширение.Активно Тогда
            Расширение.Активно = Ложь;
            Расширение.Записать();
            Сообщить(СтрШаблон("Расширение %1 отключено", Расширение.Имя));
        КонецЕсли;
    КонецЦикла;

КонецПроцедуры

Вызовите процедуру из обработки, передав имя расширения так, как оно указано в колонке «Имя» (не синоним). Чтобы выключить все расширения сразу, вызовите РасширенияКонфигурации.Получить() без отбора и пройдите по всему массиву.

Обратное включение — то же самое с Расширение.Активно = Истина. Полное удаление делает метод Расширение.Удалить(), и к нему относится всё сказанное выше про потерю данных.

Чтобы проверить, какие расширения подключены именно в текущем сеансе, а какие отключены, передайте в метод второй параметр — источник расширений:

&НаСервереБезКонтекста
Процедура ПоказатьРасширенияСеанса()

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

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

КонецПроцедуры

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

Пакетный режим Конфигуратора

Для удаления расширения без открытия окна подходит пакетный запуск. Пример для файловой базы:

"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /DeleteCfg -Extension "МоеРасширение" /Out "D:\Logs\delete_ext.log"

Путь к 1cv8.exe поправьте под установленную у вас версию платформы. Ключ -AllExtensions вместо -Extension удаляет все расширения разом. Пароль в bat-файле хранится открытым текстом, так что такой файл не оставляйте в общих папках.

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

Почему расширение не отключается: диагностика

Чаще всего проблема не в самом отключении, а в том, что результат не виден или права не позволяют внести изменение.

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

Как найти виновника, если расширений несколько

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

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

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

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

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