Добрый день, коллеги. Подскажите.

Для регистра сведений создал права доступа с RLS. Как и предполагалось пользователь видит не все записи, в запросах с "РАЗРЕШЕННЫЕ" тоже всё нормально работает. НО если используется код вида (метод регистра, не запрос)
```1c
    РегистрыСведений.Работники.СрезПоследних(
```
 то выдает сообщение "У пользователя недостаточно прав на исполнение операции над базой данных".

Есть какие-то секреты или мне теперь все "СрезПоследних" переводить на запросы?

Спасибо за помощь.
---
Что то типа

```1c
    Отбор = Новый Структура;
    Отбор.Вставить("Тип", ПараметрыСеанса.ТипКонтактнойИнформации);
    Срез = РегистрыСведений.КонтактнаяИнформация.СрезПоследних(, Отбор);
```

http://its.1c.eu/db/metod8dev#content:2316:hdoc
---
```1c
    // Функция получает срез последних для регистра сведений
    // Предназначена для получения данных при помощи запроса, метод "СрезПоследних" не позволяет получить данные при работающей RLS
    //
    // Параметры:
    // МенеджерРегистра - <РегистрСведенийМенеджер> - менеджер регистра срез последних которого нужно получить. Пример: РегистрыСведений.РаботникиОрганизаций
    // Период - <Дата,МоментВремени,Граница> - пределяет момент времени, заканчивая которым необходимо выбрать записи
    // Отбор - <Структура> - Структура, содержащая отбор по измерениям и реквизитам регистра.
    // Имя ключа структуры должно совпадать с именем измерения регистра, заданного в конфигураторе,
    // а значение элемента структуры - задает отбираемое по данному измерению значение
    //
    // Возвращаемое значение:
    // <ТаблицаЗначений> - таблица значений, заполненная данными найденных записей регистра сведений
    //
    Функция СрезПоследнихРегистрСведений(МенеджерРегистра, Период = Неопределено, Отбор = Неопределено) Экспорт

    Запрос = Новый Запрос;

    //Подготовим текст запроса
    ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ РегистрСведений.%ИмяРегистра%.СрезПоследних(%Период%%Отбор%) КАК %ИмяРегистра%СрезПоследних";

    //Имя регистра
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ИмяРегистра%", Метаданные.НайтиПоТипу(ТипЗнч(МенеджерРегистра)).Имя);

    //Период
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%Период%", ?(Период = Неопределено, ", "&Период"));
    Если ЗначениеЗаполнено(Период) Тогда
    Запрос.УстановитьПараметр("Период", Период);
    КонецЕсли;

    //Отбор
    ПоляОтбора = ";
    Если ЗначениеЗаполнено(Отбор) Тогда

    ПервыйВход = Истина;
    Для каждого КлючЗначение из Отбор Цикл

    Если ПервыйВход Тогда
    ПоляОтбора = ",";
    КонецЕсли;

    ПоляОтбора = ПоляОтбора + ?(ПервыйВход, ", " И ") + КлючЗначение.Ключ + " = &" + КлючЗначение.Ключ;
    Запрос.УстановитьПараметр(КлючЗначение.Ключ, КлючЗначение.Значение);
    ПервыйВход = Ложь;

    КонецЦикла;

    КонецЕсли;
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%Отбор%", ПоляОтбора);

    //Запросом получим данные
    Запрос.Текст = ТекстЗапроса;

    Возврат Запрос.Выполнить().Выгрузить();

    КонецФункции
```
---
AFAIK, либо в запрос, либо УстановитьПривилегированныйРежим(Истина)
---
```1c
    УстановитьПривилегированныйРежим(Истина)
```
 - как бы, планировалось ограничивать доступ к записям :)
---
А отбор по регистру включить такой чтобы в выборку попадали только разрешенные объекты не пробовали?
---
Что то типа

```1c
    Отбор = Новый Структура;
    Отбор.Вставить("Тип", ПараметрыСеанса.ТипКонтактнойИнформации);
    Срез = РегистрыСведений.КонтактнаяИнформация.СрезПоследних(, Отбор);
```

http://its.1c.eu/db/metod8dev#content:2316:hdoc
---
Спасибо. Вопрос закрыт:

Все операции над объектами встроенного языка 1С:Предприятия выполняются в режиме "ВСЕ" (без использования режима "РАЗРЕШЕННЫЕ") - спасибо разработчикам платформы.

Если ограничение доступа сложное и не может быть сформулировано в терминах отборов, то использование выборки (метод Выбрать()) и аналогичных оказывается невозможным. В этом случае следует использовать запросы.
---
```1c
    // Функция получает срез последних для регистра сведений
    // Предназначена для получения данных при помощи запроса, метод "СрезПоследних" не позволяет получить данные при работающей RLS
    //
    // Параметры:
    // МенеджерРегистра - <РегистрСведенийМенеджер> - менеджер регистра срез последних которого нужно получить. Пример: РегистрыСведений.РаботникиОрганизаций
    // Период - <Дата,МоментВремени,Граница> - пределяет момент времени, заканчивая которым необходимо выбрать записи
    // Отбор - <Структура> - Структура, содержащая отбор по измерениям и реквизитам регистра.
    // Имя ключа структуры должно совпадать с именем измерения регистра, заданного в конфигураторе,
    // а значение элемента структуры - задает отбираемое по данному измерению значение
    //
    // Возвращаемое значение:
    // <ТаблицаЗначений> - таблица значений, заполненная данными найденных записей регистра сведений
    //
    Функция СрезПоследнихРегистрСведений(МенеджерРегистра, Период = Неопределено, Отбор = Неопределено) Экспорт

    Запрос = Новый Запрос;

    //Подготовим текст запроса
    ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ РегистрСведений.%ИмяРегистра%.СрезПоследних(%Период%%Отбор%) КАК %ИмяРегистра%СрезПоследних";

    //Имя регистра
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ИмяРегистра%", Метаданные.НайтиПоТипу(ТипЗнч(МенеджерРегистра)).Имя);

    //Период
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%Период%", ?(Период = Неопределено, ", "&Период"));
    Если ЗначениеЗаполнено(Период) Тогда
    Запрос.УстановитьПараметр("Период", Период);
    КонецЕсли;

    //Отбор
    ПоляОтбора = ";
    Если ЗначениеЗаполнено(Отбор) Тогда

    ПервыйВход = Истина;
    Для каждого КлючЗначение из Отбор Цикл

    Если ПервыйВход Тогда
    ПоляОтбора = ",";
    КонецЕсли;

    ПоляОтбора = ПоляОтбора + ?(ПервыйВход, ", " И ") + КлючЗначение.Ключ + " = &" + КлючЗначение.Ключ;
    Запрос.УстановитьПараметр(КлючЗначение.Ключ, КлючЗначение.Значение);
    ПервыйВход = Ложь;

    КонецЦикла;

    КонецЕсли;
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%Отбор%", ПоляОтбора);

    //Запросом получим данные
    Запрос.Текст = ТекстЗапроса;

    Возврат Запрос.Выполнить().Выгрузить();

    КонецФункции
```