XBSL Skills AI-инструменты для 1С:Элемент
СкиллPython 3.10+

xbsl-access-set

Управляет секцией КонтрольДоступа в объектах конфигурации 1С:Элемент. Два режима: А — сводка текущих прав всех объектов проекта; Б — установить ПоУмолчанию с dry-run и подтверждением. Поддерживает: Справочник, Документ, РегистрСведений, РегистрНакопления, HttpСервис. Вызывай при запросах «настрой права доступа», «сделай доступным аутентифицированным», «покажи КонтрольДоступа», «установи РазрешеноАутентифицированным». НЕ для RLS (построчного доступа) — используй xbsl-pattern-rls.

Во всех командах ниже {python} означает python в Windows и python3 в macOS/Linux/WSL. Выбирай команду сразу по текущей ОС, не запускай оба варианта.

Назначение

Показывает сводку прав доступа по проекту и позволяет установить значение КонтрольДоступа.Разрешения.ПоУмолчанию с dry-run и подтверждением.

Алгоритм

Шаг 1 — Показать текущее состояние

{python} .claude/skills/xbsl-access-set/scripts/access_state.py \
  --root <корень-проекта> [--object <ИмяОбъекта>]

Скрипт выводит JSON. Сформируй таблицу для пользователя:

Объект Тип ПоУмолчанию
Склады Справочник null → дефолт = РазрешеноАдминистраторам
Заказы Документ РазрешеноАутентифицированным
Задачи Справочник РазрешенияВычисляютсяДляКаждогоОбъекта

null = секция КонтрольДоступа отсутствует — платформа применяет РазрешеноАдминистраторам.

Шаг 2 — Определить целевое значение

Если пользователь явно указал значение в запросе — использовать его. Иначе спросить:

Какое значение установить? 1. РазрешеноАутентифицированным — только вошедшие пользователи (рекомендуется) 2. РазрешеноВсем — все, включая анонимных 3. РазрешеноАдминистраторам — только администраторы

⚠️ Если пользователь хочет РазрешенияВычисляютсяДляКаждогоОбъекта (построчный RLS) — направь в скилл xbsl-pattern-rls.

Шаг 3 — Проверить exit-код при работе с одним объектом

{python} .claude/skills/xbsl-access-set/scripts/access_state.py \
  --root <корень> --set <значение> --object <Имя>
  • exit(3) → объект использует РазрешенияВычисляютсяДляКаждогоОбъекта. Сообщи пользователю:

    Объект <Имя> настроен на построчный RLS. Изменение ПоУмолчанию может нарушить логику доступа. Используйте скилл xbsl-pattern-rls.

Завершить работу, не применять изменений.

  • exit(0) → продолжить к Шагу 4.

Шаг 4 — Dry-run

{python} .claude/skills/xbsl-access-set/scripts/access_state.py \
  --root <корень> --set <значение> [--object <Имя>]

Отобразить вывод скрипта (список изменений + пропущенных).

Шаг 5 — Показать план и ОСТАНОВИТЬСЯ

Показать вывод dry-run и завершить ответ. Не выполнять --apply в этом же ходу.

Спросить:

Применить изменения? 1. Да 2. Нет

Шаг 6 — Apply (только после подтверждения пользователя)

{python} .claude/skills/xbsl-access-set/scripts/access_state.py \
  --root <корень> --set <значение> [--object <Имя>] --apply

Аргументы скрипта

Аргумент Описание
--root Корень проекта (по умолчанию .)
--set <значение> Целевое значение ПоУмолчанию. Без флага — режим сводки
--object <Имя> Ограничить одним объектом
--apply Применить изменения (без флага — dry-run)

Допустимые значения --set: РазрешеноВсем, РазрешеноАутентифицированным, РазрешеноАдминистраторам, РазрешенияВычисляются.

Значение РазрешенияВычисляютсяДляКаждогоОбъекта напрямую установить нельзя — используй xbsl-pattern-rls.

Коды выхода

  • 0 — успех
  • 1 — ошибка (проект не найден, объект не найден, недопустимое значение)
  • 3 — объект с --object использует РазрешенияВычисляютсяДляКаждогоОбъекта → направить в xbsl-pattern-rls

Примечания

  • Объекты с РазрешенияВычисляютсяДляКаждогоОбъекта при пакетном обновлении автоматически пропускаются с предупреждением.
  • Если объект уже имеет целевое значение — пропускается (файл не изменяется).
  • Секция вставляется перед Реквизиты:/Измерения:/ШаблоныUrl: в зависимости от типа объекта.
  • HttpСервис: обновляется только верхнеуровневый КонтрольДоступа (не вложенные в ШаблоныUrl).