Расширение можно было положить в базу, но нельзя было посмотреть, что там лежит, в каком оно состоянии, применяется ли, и убрать лишнее — всё это делалось руками через 1cv8 и ibcmd. Четыре команды: list (состав и свойства подключения), check (применимость и синтаксический контроль), set-properties (безопасный режим, активность, защита от опасных действий, область действия, профиль, РИБ), delete. Конструкция опирается на замеры платформы (8.3.24.1691 и 8.3.27.1859): - /CheckModules не нужен: /CheckConfig с теми же контекстными флагами даёт дословно тот же вывод и код возврата, но умеет вдобавок конфигурационные проверки. Одна команда платформы вместо двух, при запросе modules+config — один запуск; - обе проверки БЕЗ флагов контекста рапортуют «ошибок не обнаружено» с кодом 0 на заведомо сломанном модуле, поэтому набор контекстов всегда явный; - применимость и синтаксис друг друга не заменяют (первая слепа к синтаксису, второй — к дрейфу контроля), отсюда умолчание apply,modules; - коды возврата разные: применимость 1, /CheckConfig 101; - /DeleteCfg -Extension "" возвращает 0, рапортует успех и удаляет ПЕРВОЕ расширение из списка, поэтому пустое имя отбивается до вызова платформы, а отсутствие имени никогда не значит «все»; - список и удаление делает Конфигуратор (работает всегда и на серверной базе), свойства — ibcmd, которого в установке платформы может не быть: тогда колонки помечены прочерком с названной причиной, а set-properties отказывает внятно. Значения флагов словесные (on/off), а не +/-: значение "-" через powershell.exe -File парсер съедает молча — проверено, у соседнего db-update -Dynamic "-" по этой причине не работает вовсе. delete и set-properties проверяют результат перечитыванием состояния, а не кодом возврата платформы. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QoAJmoNbgWKobA7JGgN5S3
7.4 KiB
name, description, argument-hint, allowed-tools
| name | description | argument-hint | allowed-tools | ||||
|---|---|---|---|---|---|---|---|
| db-cfe-admin | Управление расширениями конфигурации в информационной базе 1С. Используй когда нужно узнать какие расширения подключены к базе, выполнить проверку применимости или синтаксическую проверку, изменить безопасный режим или активность, удалить расширение из базы | <list|check|set-properties|delete> [database] [-Name <Имя>] |
|
/db-cfe-admin — Управление расширениями конфигурации
Расширения на стороне базы: состав и свойства подключения, проверки, удаление. Про исходники расширения — другие навыки, см. «Смежное».
Usage
/db-cfe-admin list [database]
/db-cfe-admin check [database] [-Name Расш1]
/db-cfe-admin set-properties [database] -Name Расш1 -SafeMode off
/db-cfe-admin delete [database] -Name Расш1
Параметры подключения
Прочитай .v8-project.json из корня проекта. Возьми v8path (путь к платформе) и разреши базу:
- Если пользователь указал параметры подключения (путь, сервер) — используй напрямую
- Если указал базу по имени — ищи по id / alias / name в
.v8-project.json - Если не указал — сопоставь текущую ветку Git с
databases[].branches - Если ветка не совпала — используй
default
Если v8path не задан — скрипт сам попытается определить платформу.
Команда
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-cfe-admin.ps1" -Command <команда> <параметры>
Общие параметры
| Параметр | Обязательный | Описание |
|---|---|---|
-Command <команда> |
да | list / check / set-properties / delete |
-V8Path <путь> |
нет | Каталог bin платформы или полный путь к 1cv8.exe / ibcmd.exe |
-InfoBasePath <путь> |
* | Файловая база |
-InfoBaseServer <сервер> |
* | Сервер 1С (для серверной базы) |
-InfoBaseRef <имя> |
* | Имя базы на сервере |
-UserName <имя> |
нет | Пользователь базы |
-Password <пароль> |
нет | Пароль пользователя |
-Name <имя> |
усл. | Расширение. Обязателен для set-properties; в delete — вместо -All. Без него list и check работают по всем расширениям |
-All |
усл. | Только для delete: удалить все расширения. Вместо -Name, а не вместе с ним |
-AdditionalV8Arguments <список> |
нет | Доп. аргументы 1cv8.exe через запятую |
-AdditionalIbcmdArguments <список> |
нет | Доп. аргументы ibcmd через запятую, в форме --ключ=значение |
*— нужен либо-InfoBasePath, либо пара-InfoBaseServer+-InfoBaseRef
Параметры check
| Параметр | Описание |
|---|---|
-Checks <список> |
apply — применимость расширения, modules — синтаксическая проверка, config — проверки конфигурации (целостность, ссылки, неиспользуемые процедуры и обработчики). Через запятую, по умолчанию apply,modules |
-Context <список> |
Контексты синтаксической проверки: ThinClient, WebClient, Server, ExternalConnection, ThickClientManagedApplication, ThickClientOrdinaryApplication, MobileClient и др. Через запятую, по умолчанию ThinClient,Server |
Применимость и синтаксис проверяют разное и друг друга не заменяют. Проверяется только расширение: ошибки самой конфигурации сюда не попадают.
Свойства set-properties
| Параметр | Описание |
|---|---|
-SafeMode <on/off> |
Безопасный режим |
-Active <on/off> |
Активность расширения |
-UnsafeActionProtection <on/off> |
Защита от опасных действий |
-UsedInDistributedInfobase <on/off> |
Использование в распределённой ИБ |
-Scope <область> |
infobase / data-separation |
-SecurityProfile <имя> |
Профиль безопасности |
Передавай только то, что меняешь: не указанное свойство остаётся как было. Расширение, впервые попавшее в базу загрузкой, создаётся с включённым безопасным режимом, а в нём расширение модуля не применяется.
Свойствами управляет ibcmd — он есть не в каждой установке платформы и работает с файловой базой;
остальные команды работают всегда.
Смежное
| Задача | Навык |
|---|---|
| Создать расширение, заимствовать объекты, перехватить метод | /cfe-init, /cfe-borrow, /cfe-patch-method, /cfe-validate |
| Загрузить исходники расширения в базу | /db-load-xml -Extension (из коммита Git — /db-load-git) |
Загрузить готовый .cfe |
/db-load-cf -Extension |
| Выгрузить расширение из базы | /db-dump-xml -Extension, /db-dump-cf -Extension |
| Обновить конфигурацию базы после загрузки | /db-update -Extension |
| Проверить дрейф контролируемых методов по исходникам | /cfe-patch-method -Check |
Примеры
# Что подключено к базе
... -Command list -InfoBasePath "C:\Bases\MyDB"
# Проверить расширение
... -Command check -InfoBasePath "C:\Bases\MyDB" -Name "Расш1"
# Синтаксическая проверка в контексте веб-клиента
... -Command check -InfoBasePath "C:\Bases\MyDB" -Checks modules -Context WebClient,Server
# Снять безопасный режим
... -Command set-properties -InfoBasePath "C:\Bases\MyDB" -Name "Расш1" -SafeMode off
# Отключить, не удаляя
... -Command set-properties -InfoBasePath "C:\Bases\MyDB" -Name "Расш1" -Active off
# Убрать расширение из базы
... -Command delete -InfoBasePath "C:\Bases\MyDB" -Name "Расш1"