Приветствую!
Конфигурация УТ 10.3, платформа 8.3.10.2580
Занимаюсь настройкой прав, создал новую роль, выдал ей различный права, всё хорошо, всё что нужно роль позволяет делать. Единственная загвоздка - проведение реализации, а точнее счета фактуры.
Реализация проводится, а следом за ней проведение счета фактуры вылетает с ошибкой Ошибка при вызове метода контекста (Выполнить): Ошибка выполнения запроса: У пользователя недостаточно прав на исполнение операции над базой данных.
Открываю в конфигураторе проблемный код и вижу вот что:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Переменные.ЗначениеПеременной
    |ИЗ
    | РегистрСведений.Переменные КАК Переменные
    |ГДЕ
    | Переменные.НаименованиеПеременной = &ИмяПеременной";

    Запрос.УстановитьПараметр("ИмяПеременной", ИмяПеременной);

    Выборка = Запрос.Выполнить().Выбрать();
```

У роли к этому регистру полный доступ, НаименованиеПеременной это измерение с типом строка, уникальное, то есть двух записей с одним наименованием быть не может, значение может быть произвольным.

Сначала подумал, что в значении, видимо, содержится какой-то объект, к которому у роли нет доступа, но нет, там лежит ссылка на организацию, а к справочнику организаций у роли есть доступ полный. к тому же идентичный запрос, с точно таким же параметром, выполняется при проведение реализации и без ошибок, но при проведении счета фактуры...

П.С.: изначально пробовал достать значение таким способом:

```1c
    Набор = РегистрыСведений.Переменные.СоздатьНаборЗаписей();
    Набор.Отбор.НаименованиеПеременной.Установить(ИмяПеременной);
    Набор.Прочитать();

    Если Набор.Количество() > 0 Тогда
    Возврат Набор[0].ЗначениеПеременной;
    Иначе
```

Результат точно такой же.
Причем что интересно, в описании ошибки как проблемная указана совсем другая строка, совсем другого модуля, там тоже достаем значение из другого регистра, но там нет ошибок и ни разу не было, и к тому регистру у роли так же есть полные доступы...
То есть доступы к этим двум регистрам у роли полные, других ролей у пользователя нет, при проведение реализации оба запроса выполняются, при проведении счета фактуры два точно таких же запроса, один в один, но первый выполняется без ошибки, а второй ссылается на недостаток прав, но система при этом говорит что косяк в первом запросе, который по факту выполняется корректно, в журнале регистрации в момент ошибки вылезает ошибка доступа на чтение к регистру из первого (рабочего) запроса

Я уже замучился с этим куском... что это может быть?

UPDATE: забыл указать, что включение привилигированного режима так же не дает результата:

```1c
    УстановитьПривилегированныйРежим(ИСТИНА);
    Набор = РегистрыСведений.Переменные.СоздатьНаборЗаписей();
    Набор.Отбор.НаименованиеПеременной.Установить(ИмяПеременной);
    Набор.Прочитать();

    Если Набор.Количество() > 0 Тогда
    Возврат Набор[0].ЗначениеПеременной;
    Иначе
```

Точно с такой же ошибкой вылетает...
---
а так?

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | Переменные.ЗначениеПеременной
    |ИЗ
    | РегистрСведений.Переменные КАК Переменные
    |ГДЕ
    | Переменные.НаименованиеПеременной = &ИмяПеременной";

    Запрос.УстановитьПараметр("ИмяПеременной", ИмяПеременной);

    Выборка = Запрос.Выполнить().Выбрать();
```
---
а так?

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | Переменные.ЗначениеПеременной
    |ИЗ
    | РегистрСведений.Переменные КАК Переменные
    |ГДЕ
    | Переменные.НаименованиеПеременной = &ИмяПеременной";

    Запрос.УстановитьПараметр("ИмяПеременной", ИмяПеременной);

    Выборка = Запрос.Выполнить().Выбрать();
```
---
про "РАЗРЕШЕННЫЕ" совсем забыл, спасибо. утром проверю, думаю поможет
---
Для счета-фактуры у Вас скорее есть другие регистры, у которых нету прав пользователя. Для созданной роли Вам нужно добавить также права на эти регистры, документ "Счет-фактура" который делают движения по этим всем регистрам.
---
ЗначениеПеременной - какого типа ? Составного ? тогда надо право на чтение для всего состава
---
Сообщение было скрыто модератором.
---
Отнюдь, нужны права только на регистр. Права на чтение всех объектов для составного типа потребовались бы лишь в том случае, если бы в запросе использовались реквизиты поля регистра через точку.
А так, без прав, мы увидим лишь "<Объект не найден ....>" без какого-либо сообщения об ошибке.
---
УстановитьПривилегированныйРежим(ИСТИНА); работает только на сервере
---
Вот если в запросе будете использовать РАЗРЕШЕНЫЕ тогда проблема должна уйти
---
Извините, но проблема точно никуда не уйдет. Максимум - лишь будет замаскирована. Ключевое слово "РАЗРЕШЕННЫЕ" тихо исключает из результата запроса записи, к которым нет прав доступа, но автору нужны эти записи. Судя по именам это же какие-то настройки учета.
---
Честно говоря, если проблема в том, что в запросе вываливаются какие-то записи, к которым нет доступа, то я не против их замаскировать))) тем более, что мне нужна всего одна конкретна запись, к которой доступ имеется 100%... в общем утром попробую добавить "РАЗРЕШЕННЫЕ"... посмотрим что получится
---
В общем в итоге проблема была совсем в другом запросе, который вообще никак не фигурировал в вышеуказанных ошибках... но добавил в нем "РАЗРЕШЕННЫЕ" и всё заработало.
Вообще странно очень... почему без отладки 1С ругалась на один запрос, при отладке 1С вылетала на другом запросе, проходя первый без ошибок, но при этом на него ругаясь, а по факту проблема была в третьем запросе, который никак не фигурировал в первых двух случаях???