Расширение конфигурации для тех, кто подключил нейросеть к базе 1С через MCP или свой коннектор. Выполняет запрос, пришедший от модели, двумя способами и показывает разницу строк: под служебной учёткой коннектора и в сеансе того, кто спросил, с его ролями и ограничениями на уровне записей (RLS).
Зачем это нужно: почти любой коннектор ходит в базу под одной учёткой с полными правами. Тогда модель ответит рядовому пользователю и про то, что ему видеть не положено. На тестовой базе один и тот же запрос модели вернул 6 строк под служебной учёткой и 4 строки в сеансе бухгалтера, лишними были начисления директора и главного бухгалтера.
Что внутри
- HTTP-сервис запроса. POST с текстом запроса, в ответе JSON: число строк, строки, имя пользователя сеанса и признак привилегированного режима. Параметр дописывает РАЗРЕШЕННЫЕ на стороне базы, не надеясь на модель.
- Общий модуль. Оба способа выполнения, сравнение строк и проверки пяти очевидных способов вернуть права, которые не работают: выключение привилегированного режима, РАЗРЕШЕННЫЕ под служебной учёткой, ПравоДоступа, фоновое задание, учётка пользователя в коннекторе.
- Демо. Справочник на 6 строк (у двух флажок "Конфиденциально"), роль бухгалтера с условием на уровне записей и роль служебной учётки. Прогон целиком запускается одной строкой:
пс_ПраваСпросившего.ДемоПрогон("http://сервер/база"). Функция заводит тестового пользователя с одноразовым паролем, выполняет оба способа и проверки и снимает пользователя за собой.
Как встроить в свой коннектор
Служебные вызовы (метаданные, справку) оставить под учёткой коннектора, а запросы с данными отправлять функцией ВыполнитьОтИмениСпросившего: она вызывает HTTP-сервис своей же публикации с логином спросившего, и платформа сама открывает его сеанс. Пользователям выдать право "Использование" на метод POST сервиса. Публикация базы на веб-сервере должна публиковать HTTP-сервисы расширений.
Что учесть до установки
Расширение без заимствованных объектов, назначение "Дополнение", префикс объектов пс_. Базу оно не меняет, кроме своего демо-справочника. Цена схемы - один HTTP-вызов на запрос, в замере 33-64 мс. Пароль или токен спросившего должен приносить шлюз, мимо модели. Если коннектор переиспользует сеансы, новую версию расширения видно только в новом сеансе.
На чём проверялась
Управление торговлей 11.5.22, платформа 8.3.27, клиент-серверный вариант. Расширение поставлено из кода, демо-прогон выполнен через HTTP-публикацию базы: служебная учётка 6 строк, сеанс бухгалтера с РАЗРЕШЕННЫЕ 4 строки, без РАЗРЕШЕННЫЕ ошибка прав. Группы доступа БСП, вход по токену и через ОС в прогоне не проверялись.
Что в файле
Расширение конфигурации (.cfe) для платформы 8.3.27 и выше. Ставится через "Конфигурация - Расширения конфигурации" или из кода методом РасширенияКонфигурации.Создать(). Код открыт.
Где именно теряются права, почему не работают пять очевидных способов, замер и порядок встраивания в свой MCP - в статье-паровозе к этому расширению: "Нейросеть и права 1С: запрос с правами того, кто спросил".
Если модели нужна структура конфигурации файлом, пригодится "Выгрузка метаданных для LLM", а если сервер под базой пора проверить - "Чек-ап СУБД под 1С".
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.5.22.67
Вступайте в нашу телеграмм-группу Инфостарт