Расширение мешает работе базы: выключаем его без потери данных
Содержание
Чтобы отключить расширение конфигурации
в 1С 8.3, снимите у него флажок активности. В типовых конфигурациях это делается в Администрирование → Печатные формы, отчеты и обработки → Расширения, в Конфигураторе — в окне Конфигурация → Расширения конфигурации, колонка «Активно». Расширение остаётся в базе, но перестаёт работать у всех пользователей после перезапуска сеанса.
Типичная ситуация: после обновления Бухгалтерии перестала открываться форма документа, а в тексте ошибки мелькает имя расширения, которое три года назад ставил программист со стороны. Его нужно быстро выключить, база должна работать, а разбираться с доработкой можно потом. Ниже — все способы отключения в 1С: от безопасного флажка до крайних мер, когда база не запускается совсем.
Отключить или удалить: в чём разница для базы
Отключение и удаление расширения — разные операции. Перед тем как что-то нажимать, решите, какая из них вам нужна.
| Действие | Что происходит | Когда выбирать | Риск |
|---|---|---|---|
| Снять флажок «Активно» | Расширение хранится в базе, код и формы не применяются | Временно выключить, проверить, не оно ли ломает работу | Минимальный, включается обратно одним флажком |
| Удалить расширение | Расширение стирается из базы | Доработка больше не нужна, есть её файл .cfe | Если расширение добавляло свои справочники или регистры, их данные удаляются вместе с ним |
| Сохранить в файл и удалить | Копия в .cfe на диске, в базе пусто | Перед обновлением, если расширение несовместимо | Средний: при загрузке обратно нужно проверить совместимость |
Если сомневаетесь, начинайте с отключения. Удалить всегда успеете, а вот вернуть удалённое без файла .cfe или резервной копии базы не получится.
Что важно знать о поведении платформы:
- 🔁 изменения применяются к новым сеансам. Пользователи, которые уже работают, увидят разницу только после перезапуска 1С;
- 👥 расширение отключается для всей информационной базы, а не для одного пользователя;
- 🔐 менять расширения может пользователь с правом администрирования, в типовых конфигурациях это роль «Полные права»;
- 🧩 механизм расширений появился в платформе 8.3.6, а флажок «Активно» без удаления — в более поздних версиях. На актуальной платформе 8.3.2x он есть всегда.
Как отключить расширение в 1С из пользовательского режима
Это самый безопасный способ: не нужен Конфигуратор, не нужно выгонять пользователей из базы. Подходит для Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других конфигураций на БСП.
Через раздел «Администрирование»
- Откройте
Администрирование → Печатные формы, отчеты и обработки. - Если ссылка «Расширения» неактивна, включите рядом флажок «Расширения».
- Перейдите по ссылке «Расширения». Откроется список установленных расширений с версией и синонимом.
- Найдите нужное расширение и снимите флажок в колонке подключения (в разных версиях БСП она называется «Подключено» или «Использовать»).
- Программа предложит перезапуститься. Согласитесь, а остальных пользователей попросите выйти и зайти заново.
Удаление расширения в этой же форме — отдельной командой в панели списка. Перед удалением сохраните расширение в файл: в форме есть команда сохранения в .cfe.
Через стандартную обработку платформы
Если конфигурация нетиповая или самописная, раздела «Расширения» в ней может не быть. Тогда выручает форма самой платформы.
- Включите меню «Все функции»:
Сервис и настройки → Параметры → Отображать команду «Все функции». - Откройте
Все функции → Стандартные → Управление расширениями конфигурации. - В списке снимите флажок «Активно» у нужного расширения.
- Перезапустите сеанс.
В этой же форме есть добавление из файла, сохранение в файл и удаление. Форма работает в любой конфигурации на 8.3, потому что встроена в платформу.
Как понять, что за расширения стоят в базе
Список в форме расширений часто ничего не говорит: «Расширение1», «Доработки_2021», «КорректировкаПечати». Чтобы понять, что именно делает каждое, посмотрите три вещи:
- 🏷️ синоним и версия. Разработчики обычно пишут в синониме назначение, а в версии — дату или номер сборки;
- 📦 поставщик. Расширения от партнёров и отраслевых решений часто ставятся из каталога или вместе с обработками. Такие лучше не отключать без поставщика, если на них завязан обмен или печать;
- 🧾 журнал регистрации. Отбор по событию, связанному с расширениями, покажет, кто и когда добавлял или менял расширение.
Если назначение так и осталось непонятным, отключите расширение в нерабочее время и попросите пользователей пройти по основным операциям: печать, проведение, обмен. Что сломалось — то расширение и делало.
Отключение расширения конфигурации в Конфигураторе
Конфигуратор нужен, когда пользовательский режим недоступен: база падает при входе, или ошибка в расширении срабатывает раньше, чем вы успеваете дойти до меню. Код расширений в Конфигураторе не выполняется, поэтому он запускается даже с «поломанным» расширением.
Отключение через окно расширений
- Запустите 1С в режиме «Конфигуратор» под администратором.
- Откройте
Конфигурация → Расширения конфигурации. - В открывшемся списке снимите флажок «Активно» у проблемного расширения.
- Закройте окно. Пользовательский режим запустится уже без этой доработки.
В этом окне видны и другие свойства расширения:
| Свойство | Зачем смотреть |
|---|---|
| Активно | Главный флажок: применяется расширение или нет |
| Безопасный режим | Ограничивает доступ кода расширения к файлам, 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С Предприятия», найдите кластер и базу в ветке «Информационные базы».
- В свойствах базы включите «Блокировка начала сеансов включена», задайте период, сообщение для пользователей и «Код разрешения».
- В ветке «Сеансы» базы посмотрите, кто работает. Предупредите людей и дайте им сохранить документы.
- Завершите оставшиеся сеансы.
- Войдите в Конфигуратор с параметром
/UC <код разрешения>и отключите расширение, как описано выше. - Снимите блокировку начала сеансов.
Завершение сеанса обрывает работу пользователя: несохранённый документ пропадёт. Делайте это после предупреждения, вне пиковых часов.
Строго говоря, для снятия флажка «Активно» монопольный доступ не нужен. Блокировка и завершение сеансов нужны, если расширение меняет структуру данных или вы удаляете его. Тогда без выхода пользователей операция не пройдёт.
Если пароль администратора кластера утерян, не пытайтесь пересоздать кластер. Обратитесь к тому, кто настраивал сервер, или восстановите настройки кластера из резервной копии при остановленной службе агента — в нерабочее время, потому что остановка службы обрывает все сеансы.
Для 1С в файловом варианте консоль не нужна. Попросите всех закрыть программу. Если база «висит», проверьте на сервере с файлом базы, что не осталось процессов 1cv8.exe и 1cv8c.exe под пользователями.
SQL-вариант: последний шанс для администратора СУБД
На форумах встречается совет удалить расширение
прямо в базе SQL. Для клиент-серверной базы информация о расширениях хранится в служебных таблицах, в том числе в _ExtensionsInfo. Посмотреть список расширений можно запросом только на чтение:
-- MS SQL, база 1С. Только чтение, ничего не меняет
SELECT * FROM _ExtensionsInfo;
Прямое удаление строк из служебных таблиц фирма 1С не поддерживает. Последствия непредсказуемы: от «расширение пропало» до базы, которую Конфигуратор не открывает. Если до этого дошло:
- Сделайте полную резервную копию базы средствами СУБД.
- Остановите все сеансы и заблокируйте вход, как в предыдущем разделе.
- Экспериментируйте на копии базы, а не на рабочей.
- После правки запустите Конфигуратор, выполните
Администрирование → Тестирование и исправлениес проверкой логической целостности.
Прежде чем лезть в SQL, попробуйте Конфигуратор и пакетную команду /DeleteCfg. Они срабатывают даже тогда, когда пользовательский режим не запускается. Случаи, где спасает только SQL, — редкость.
Что проверить после отключения расширения
Отключили расширение, а проблема осталась или появилась новая. Вот что встречается на практике.
Если после отключения ошибка не ушла совсем, проблема, скорее всего, не в расширении. Посмотрите журнал регистрации за время сбоя и обратите внимание на модуль, указанный в тексте ошибки: имя расширения в нём обычно видно по префиксу объекта.