| name | xbsl-access-set |
| description | Управляет секцией КонтрольДоступа в объектах конфигурации 1С:Элемент. Два режима: А — сводка текущих прав всех объектов проекта; Б — установить ПоУмолчанию с dry-run и подтверждением. Поддерживает: Справочник, Документ, РегистрСведений, РегистрНакопления, HttpСервис. Вызывай при запросах «настрой права доступа», «сделай доступным аутентифицированным», «покажи КонтрольДоступа», «установи РазрешеноАутентифицированным». НЕ для RLS (построчного доступа) — используй xbsl-pattern-rls.
|
| compatibility | Requires Python 3. |
Во всех командах ниже {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 — Определить целевое значение
Если пользователь явно указал значение в запросе — использовать его. Иначе спросить:
Какое значение установить?
РазрешеноАутентифицированным — только вошедшие пользователи (рекомендуется)
РазрешеноВсем — все, включая анонимных
РазрешеноАдминистраторам — только администраторы
⚠️ Если пользователь хочет РазрешенияВычисляютсяДляКаждогоОбъекта (построчный 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 в этом же ходу.
Спросить:
Применить изменения?
- Да
- Нет
Шаг 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).