Files
cc-1c-skills/.claude/skills/db-cfe-admin/SKILL.md
T
Nick ShirokovandClaude Opus 5 a0f2c4988a feat(db-cfe-admin): навык администрирования расширений в базе
Расширение можно было положить в базу, но нельзя было посмотреть, что там лежит,
в каком оно состоянии, применяется ли, и убрать лишнее — всё это делалось руками
через 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
2026-09-04 19:01:22 +03:00

7.4 KiB
Raw Blame History

name, description, argument-hint, allowed-tools
name description argument-hint allowed-tools
db-cfe-admin Управление расширениями конфигурации в информационной базе 1С. Используй когда нужно узнать какие расширения подключены к базе, выполнить проверку применимости или синтаксическую проверку, изменить безопасный режим или активность, удалить расширение из базы <list|check|set-properties|delete> [database] [-Name <Имя>]
Bash
Read
Glob
AskUserQuestion

/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 (путь к платформе) и разреши базу:

  1. Если пользователь указал параметры подключения (путь, сервер) — используй напрямую
  2. Если указал базу по имени — ищи по id / alias / name в .v8-project.json
  3. Если не указал — сопоставь текущую ветку Git с databases[].branches
  4. Если ветка не совпала — используй 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"