Расширение мешает работе базы: выключаем его без потери данных

· 9 мин

Содержание

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

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

Отключить или удалить: в чём разница для базы

Отключение и удаление расширения — разные операции. Перед тем как что-то нажимать, решите, какая из них вам нужна.

ДействиеЧто происходитКогда выбиратьРиск
Снять флажок «Активно»Расширение хранится в базе, код и формы не применяютсяВременно выключить, проверить, не оно ли ломает работуМинимальный, включается обратно одним флажком
Удалить расширениеРасширение стирается из базыДоработка больше не нужна, есть её файл .cfeЕсли расширение добавляло свои справочники или регистры, их данные удаляются вместе с ним
Сохранить в файл и удалитьКопия в .cfe на диске, в базе пустоПеред обновлением, если расширение несовместимоСредний: при загрузке обратно нужно проверить совместимость

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

Что важно знать о поведении платформы:

  • 🔁 изменения применяются к новым сеансам. Пользователи, которые уже работают, увидят разницу только после перезапуска 1С;
  • 👥 расширение отключается для всей информационной базы, а не для одного пользователя;
  • 🔐 менять расширения может пользователь с правом администрирования, в типовых конфигурациях это роль «Полные права»;
  • 🧩 механизм расширений появился в платформе 8.3.6, а флажок «Активно» без удаления — в более поздних версиях. На актуальной платформе 8.3.2x он есть всегда.

Как отключить расширение в 1С из пользовательского режима

Это самый безопасный способ: не нужен Конфигуратор, не нужно выгонять пользователей из базы. Подходит для Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других конфигураций на БСП.

Через раздел «Администрирование»

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

Удаление расширения в этой же форме — отдельной командой в панели списка. Перед удалением сохраните расширение в файл: в форме есть команда сохранения в .cfe.

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

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

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

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

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

Список в форме расширений часто ничего не говорит: «Расширение1», «Доработки_2021», «КорректировкаПечати». Чтобы понять, что именно делает каждое, посмотрите три вещи:

  • 🏷️ синоним и версия. Разработчики обычно пишут в синониме назначение, а в версии — дату или номер сборки;
  • 📦 поставщик. Расширения от партнёров и отраслевых решений часто ставятся из каталога или вместе с обработками. Такие лучше не отключать без поставщика, если на них завязан обмен или печать;
  • 🧾 журнал регистрации. Отбор по событию, связанному с расширениями, покажет, кто и когда добавлял или менял расширение.

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

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

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

Отключение через окно расширений

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

В этом окне видны и другие свойства расширения:

СвойствоЗачем смотреть
АктивноГлавный флажок: применяется расширение или нет
Безопасный режимОграничивает доступ кода расширения к файлам, COM и внешним компонентам
Защита от опасных действийПоказывает предупреждение при потенциально опасных операциях
Использовать в распределённой ИБПередаётся ли расширение в узлы РИБ

Для отключения достаточно колонки «Активно». Остальные флажки не трогайте, если не понимаете, зачем их ставили. Снятый «Безопасный режим», например, расширяет права доработки, а не ограничивает их.

Удаление расширения командной строкой

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

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /DeleteCfg -Extension ИмяРасширения /Out "C:\logs\delext.txt"

Вместо -Extension ИмяРасширения можно указать -AllExtensions, тогда удалятся все расширения базы. Номер платформы в пути замените на свой. Результат проверяйте в файле из параметра /Out.

Перед пакетным удалением сохраните каждое расширение в .cfe: Конфигурация → Расширения конфигурации, выделить расширение, команда сохранения в файл в меню окна.

Расширения при обновлении конфигурации: что выключать заранее

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

Что с этим делать:

  • 📋 до обновления выпишите список расширений и сохраните каждое в .cfe;
  • 🛑 если поставщик доработки не подтвердил совместимость с новым релизом, отключите расширение до обновления;
  • 🔄 после обновления включите расширения по одному и проверяйте запуск после каждого;
  • 🧑‍💻 не применяющееся расширение отдайте разработчику: ему нужно открыть его в Конфигураторе на обновлённой базе и переназначить «заимствованные» объекты.

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

Отдельный случай — расширение, которое добавляет собственные объекты с данными (новый справочник, регистр, реквизит документа). Для такого расширения при обновлении может понадобиться реструктуризация, а значит, монопольный доступ к базе. Не удаляйте такое расширение, чтобы «быстрее обновиться»: вместе с ним пропадут введённые в его объекты данные. Отключение флажком данные не стирает.

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

Когда база не открывается: сеансы и консоль кластера

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

Порядок действий:

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

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

Строго говоря, для снятия флажка «Активно» монопольный доступ не нужен. Блокировка и завершение сеансов нужны, если расширение меняет структуру данных или вы удаляете его. Тогда без выхода пользователей операция не пройдёт.

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

Для 1С в файловом варианте консоль не нужна. Попросите всех закрыть программу. Если база «висит», проверьте на сервере с файлом базы, что не осталось процессов 1cv8.exe и 1cv8c.exe под пользователями.

SQL-вариант: последний шанс для администратора СУБД

На форумах встречается совет удалить расширение прямо в базе SQL. Для клиент-серверной базы информация о расширениях хранится в служебных таблицах, в том числе в _ExtensionsInfo. Посмотреть список расширений можно запросом только на чтение:

-- MS SQL, база 1С. Только чтение, ничего не меняет
SELECT * FROM _ExtensionsInfo;

Прямое удаление строк из служебных таблиц фирма 1С не поддерживает. Последствия непредсказуемы: от «расширение пропало» до базы, которую Конфигуратор не открывает. Если до этого дошло:

  1. Сделайте полную резервную копию базы средствами СУБД.
  2. Остановите все сеансы и заблокируйте вход, как в предыдущем разделе.
  3. Экспериментируйте на копии базы, а не на рабочей.
  4. После правки запустите Конфигуратор, выполните Администрирование → Тестирование и исправление с проверкой логической целостности.

Прежде чем лезть в SQL, попробуйте Конфигуратор и пакетную команду /DeleteCfg. Они срабатывают даже тогда, когда пользовательский режим не запускается. Случаи, где спасает только SQL, — редкость.

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

Отключили расширение, а проблема осталась или появилась новая. Вот что встречается на практике.

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

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

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

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