К статье
Практический материал

Администрирование · 9 мин

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

Удаление расширения конфигурации 1С через командную строку: команды DESIGNER, параметры /DeleteCfgExtension, пакетная обработка, проверка результата и типичные ошибки.

Расширение конфигурации в 1С можно удалить не только через конфигуратор (раздел «Расширения конфигурации»), но и из командной строки — с помощью пакетных параметров конфигуратора. Это удобно, когда нужно автоматизировать обслуживание баз, удалить проблемное расширение на нескольких базах сразу или вернуть конфигурацию в рабочее состояние, если после установки расширения программа перестала запускаться в обычном режиме.

Для удаления используется запуск исполняемого файла платформы (1cv8.exe или 1cv8c.exe) в режиме конфигуратора с параметром DESIGNER и специальной командой удаления расширения. Подход работает как для файловых, так и для клиент-серверных информационных баз, отличается только способ указания пути к базе.

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

Когда удаление через командную строку действительно нужно

Интерактивное удаление через конфигуратор проще: «Конфигурация» → «Расширения конфигурации» → выделить расширение → удалить. Но есть ситуации, где командная строка — единственный или самый рациональный путь.

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

База не запускается в режиме предприятияВероятно, ошибка в расширении

Попробуйте запустить конфигуратор и удалить расширение командой

Нужно обработать много базРучное удаление нерационально

Используйте пакетный скрипт с циклом по списку баз

Конфигуратор тоже не открываетсяПроблема глубже расширения

Проверяйте целостность базы и логи, командная строка может не помочь

Базовая команда удаления расширения

Общий синтаксис запуска платформы в режиме конфигуратора с удалением расширения выглядит так:

batch
1cv8.exe DESIGNER /F "C:\Bases\MyBase" /N "Администратор" /P "Пароль" /DeleteCfgExtension -Extension "ИмяРасширения" /UpdateDBCfg

Разберём параметры. DESIGNER — запуск в режиме конфигуратора. /F — путь к каталогу файловой базы. /N и /P — имя пользователя и пароль (если аутентификация не требуется, их можно опустить). /DeleteCfgExtension — команда удаления расширения, а после неё параметр -Extension с точным именем расширения, как оно указано в свойствах расширения. /UpdateDBCfg — обновление конфигурации базы данных, которое фиксирует изменения.

Имя расширения нужно указывать точно так, как оно задано в свойстве «Имя» расширения — без пробелов и лишних символов. Посмотреть имя можно в конфигураторе в списке расширений или в файле расширения (*.cfe) при его открытии. Если имя указано неверно, команда завершится ошибкой, и расширение останется на месте.

Удаление расширения в клиент-серверной базе

Для базы, работающей на сервере 1С:Предприятия, вместо параметра /F используется /S с указанием сервера и имени базы в кластере:

batch
1cv8.exe DESIGNER /S "Server1C\BaseName" /N "Администратор" /P "Пароль" /DeleteCfgExtension -Extension "ИмяРасширения" /UpdateDBCfg

Имя базы в параметре /S — это имя информационной базы в кластере серверов, а не имя базы в СУБД. Уточнить его можно в консоли кластера или в файле списка баз (ibases.v8i). Если имя содержит пробелы, вся строка «сервер\база» берётся в кавычки.

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

Пакетное удаление на нескольких базах

Главное преимущество командной строки — возможность обработать список баз в цикле. Простейший вариант на batch выглядит так: создаётся текстовый файл со списком путей к базам (по одному на строку), и скрипт последовательно выполняет команду удаления для каждой.

batch
for /f "tokens=*" %%b in (bases.txt) do ( "C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F "%%b" /N "Администратор" /P "Пароль" /DeleteCfgExtension -Extension "ИмяРасширения" /UpdateDBCfg >> log.txt 2>&1 )

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

Порядок действий
  1. 1
    Сделайте резервную копию базы (выгрузку .dt или копию каталога для файловой базы)
  2. 2
    Уточните точное имя расширения в конфигураторе
  3. 3
    Завершите сеансы пользователей или дождитесь монопольного доступа
  4. 4
    Выполните команду DESIGNER с /DeleteCfgExtension и /UpdateDBCfg
  5. 5
    Проверьте в конфигураторе, что расширение исчезло из списка
  6. 6
    Проверьте запуск базы в режиме предприятия

Проверка результата и откат

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

Если после удаления появились ошибки вида «объект не найден» — вероятно, в базе остались данные или ссылки, созданные расширением (например, добавленные им реквизиты хранили значения). Удаление расширения не удаляет физически данные автоматически во всех случаях; оцените, нужна ли чистка, прежде чем возвращать базу в работу.

Типичные ошибки и ограничения

Типичные ошибки
01
Неточное имя расширения в параметре -Extension — команда завершается ошибкой, расширение остаётся на месте
02
Запуск без /UpdateDBCfg — изменения не зафиксированы в конфигурации базы данных
03
Неправильный путь к 1cv8.exe после обновления платформы — скрипт перестаёт работать
04
Выполнение команды при активных сеансах — ошибка монопольного доступа
05
Пароль с спецсимволами без экранирования — ошибка аутентификации в командной строке

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

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

Альтернативы и смежные задачи

Сравнение вариантов

Удаление в конфигураторе вручную

Подходит для разовой операции на одной базе; не требует знания синтаксиса, но не автоматизируется

Командная строка DESIGNER

Подходит для автоматизации и массовой обработки; требует точных параметров и монопольного доступа

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

Подходит для диагностики: расширение остаётся в базе, но не применяется; данные расширения сохраняются

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

Итог

Что важно запомнить

Удаление расширения из командной строки выполняется через 1cv8.exe DESIGNER с параметром /DeleteCfgExtension -Extension "Имя" и завершающим /UpdateDBCfg. Обязательны резервная копия, точное имя расширения и монопольный доступ к базе. Результат проверяется в конфигураторе и запуском режима предприятия.

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

Можно ли удалить расширение, если база не открывается в режиме предприятия?

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

Что будет с данными, которые добавило расширение?

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

Как узнать точное имя расширения для параметра -Extension?

Откройте конфигуратор, перейдите в «Конфигурация» → «Расширения конфигурации» и посмотрите колонку «Имя» в списке. Используйте именно это значение, а не синоним или имя файла .cfe.

Нужен ли параметр /UpdateDBCfg при удалении?

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

Можно ли удалить сразу все расширения одной командой?

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

Чем отличается отключение расширения от удаления?

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