1) Я создал пользователя и новую роль, где пометил нужные документы, которые должены открываться, и снял галочки с ненужных
Пользователю присвоил эту роль, но документы в котором не указан доступ в роле всё равно открывает. Мне нужно закрыть доступ к некоторым документам
---
```1c
    Процедура ДействияФормыОсновныеСформировать(Кнопка)

    Если РольДоступна("Бухгалтер1") И Счет=ПланыСчетов.Хозрасчетный.РасчетыПоВыделенномуИмуществу тогда

    //чет=ПланыСчетов.Хозрасчетный.РезервныйКапитал;
    Сообщить("Проверка прошла успешно");
    ОбновитьОтчет(Ложь);
    Иначе
    ОбновитьОтчет();

    КонецЕсли;

    //бновитьОтчет();

    КонецПроцедуры
```
---
Роль не запрещает, а только разрешает. У пользователя есть другие роли, которые дают ему доступ к этим документам.
---
Выдана одна роль и есть другие роли ? Что?
---
Моя твоя не понимать: у пользователя эта роль единственная ?
---
Да
---
Имеется ввиду например вы создали роль "Человек, который не видит счет" и соответственно убрали этой роли права на счет и присвоили ее пользователю, но у пользователя есть еще роль "Человек который видит еще что то там" и если в второй роли есть права на счет, то пользователь счет будет редактировать. Другими словами, если хотите запретить какой то объект пользователю, этот объект должен быть запрещен во всех ролях этого пользователя.

эх...пятница...чего и горожу
---
Да, мне надо это реализовать. Например в оборотно сальдовом ведомости, "Человеку, который не видит счет", запретить выбирать счет например 20
---
Оборотно сальдовая это отчет, у этой роли есть права на нее?
---
Да у нее есть права на этот отчет. В этом отчете надо выбирать счет, и вот там надо запретить доступ к выбору 20 счета
---
в таком случае наверное имеет смысл RLS использовать.
---
А как его прописать на отчет, чтобы было доступно некие счета?
---
вот тут можно почитать: https://infostart.ru/public/139581/
---
https://infostart.ru/public/124845 Может это?
---
Ну тут уж решайте, что удобнее по своему усмотрению.
---
Всё сделал как в описании, но не ставит ограничение
---
Конфигурацию обновили после этого? 1С перезапустили?
---
Да
---
А вот она на что ругается Код ТекущаяТаблица ГДЕ (НЕ ТекущаяТаблица.Ссылка В (ВЫБРАТЬ
      НедоступныеСчета.Счет
ИЗ
      РегистрСведений.НедоступныеСчета КАК НедоступныеСчета
ГДЕ
      (НедоступныеСчета.Пользователь = &ТекущийПользователь
      ИЛИ НедоступныеСчета.Пользователь В (&ГруппыТекущегоПользователя))))
      И (НЕ ТекущаяТаблица.Ссылка В  (ВЫБРАТЬ
                 ТекущаяТаблица.Ссылка
          ИЗ
                ПланСчетов.Хозрасчетный КАК ТекущаяТаблица ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НедоступныеСчета КАК НедоступныеСчета
      ПО ТекущаяТаблица.Код ПОДОБНО "" + НедоступныеСчета.Счет.Код + ".%"
 ГДЕ
       (НедоступныеСчета.Пользователь = &ТекущийПользователь
       ИЛИ НедоступныеСчета.Пользователь В (&ГруппыТекущегоПользователя))))
 Показать полностью
---
это текст запроса, а на что конкретно ругается
---
" Ожидается выражение "Выбрать" " перед началом запроса. Пишешь "Выбрать", ругается что текущая таблица не найдена
---
Надо весь код смотреть тогда. Где то какой то таблицы не видит, а обращение к ней есть.
---
Скинул весь код
---
не вижу
---
Проблему решил, но надо писать теперь большой такой код, замудрено, но работает
---
Ну вы поделитесь решением. Вдруг кому еще понадобится.
---
```1c
    Если Счет=ПланыСчетов.Хозрасчетный.РасчетыПоВыделенномуИмуществу и РольДоступна("ИнтернетСклад2")

    тогда

    Счет=ПланыСчетов.Хозрасчетный.РезервныйКапитал;

    ОбновитьОтчет(Ложь);

    КонецЕсли;
```

Простыми словами говоря : Если выберут счет по выделенному имуществу, они получат счет по резервному капитулу
---
```1c
    Процедура ДействияФормыОсновныеСформировать(Кнопка)

    Если РольДоступна("Бухгалтер1") И Счет=ПланыСчетов.Хозрасчетный.РасчетыПоВыделенномуИмуществу тогда

    //чет=ПланыСчетов.Хозрасчетный.РезервныйКапитал;
    Сообщить("Проверка прошла успешно");
    ОбновитьОтчет(Ложь);
    Иначе
    ОбновитьОтчет();

    КонецЕсли;

    //бновитьОтчет();

    КонецПроцедуры
```