|   |   | 
| 
 | RLS: закрыть доступ к одному реквизиту... ? | ☑ | ||
|---|---|---|---|---|
| 0
    
        dave2000 08.04.19✎ 09:17 | 
        Есть некий объект с данными (справочник/документ/регистр), необходимо закрыть доступ к одному реквизиту. Т.е. скрывать не записи целиком, а один реквизит. Как это можно реализовать?
 Пробовал через RLS, там можно выбирать, на какие поля распространяется ограничение доступа, но пока не получается, либо я что-то неправильно делаю. | |||
| 1
    
        1CIlya 08.04.19✎ 10:13 | 
        Не рассматривали возможность внести изменения в архитектуру конфигурации? Вынести этот реквизит в регистр сведений и там навесить RLS.     | |||
| 2
    
        Fram 08.04.19✎ 10:20 | 
        (0) это вроде без рлсов галочками можно сделать     | |||
| 3
    
        dave2000 08.04.19✎ 11:07 | 
        (1) слишком много таких изменений будет, это ЗУП... прийдется все механизмы расчета переписывать, отчеты и т.д.
 (2) Дал право "чтение/просмотр" на регистр, а на сам реквизит снял галки "просмотр/редактирование" - отображаются все поля и все реквизиты. Что-то оно так не работает. | |||
| 4
    
        Жан Пердежон 08.04.19✎ 11:19 | 
        (0 RLS - котлеты, реквизиты - мухи.
 смотри в правах на подписи возле галочек | |||
| 5
    
        dave2000 08.04.19✎ 11:57 | 
        (4) Не совсем понял, что имелось в виду? Для реквизита снимаю галочки "Просмотр" и "Редактирование"     | |||
| 6
    
        Жан Пердежон 08.04.19✎ 12:21 | ||||
| 7
    
        Вафель 08.04.19✎ 12:22 | 
        лучше кодом делать  | |||
| 8
    
        Жан Пердежон 08.04.19✎ 12:36 | 
        (7) образец говнокода     | |||
| 9
    
        1Сергей 08.04.19✎ 12:37 | 
        (7) линейкой по пальцам за такое     | |||
| 10
    
        Сияющий в темноте 08.04.19✎ 14:05 | 
        запрос на уровне полей не умеет.     | |||
| 11
    
        vvp91 08.04.19✎ 14:20 | 
        Типовые конфигурации, к сожалению, предоставляют доступ ко всем реквизитам, всех объектов, во всех ролях.
 Поэтому, если пользователь, кроме специальной (своей) роли с ограничением по реквизитам, получает еще и типовые роли, то он получает доступ и к реквизиту. Если дать пользователю только свои роли, в которых отключен доступ к реквизитам, то все заработает. | |||
| 12
    
        Вафель 08.04.19✎ 14:23 | 
        (8) ты еще скажи, что лучше в элементе настраивать раздел "видимость по ролям"     | |||
| 13
    
        Вафель 08.04.19✎ 14:24 | 
        (6) собственно сама 1с не рекомендует независимые права для реквизитов     | |||
| 14
    
        fisher 08.04.19✎ 15:22 | 
        (0) Через RLS не получится. RLS либо "пропускает" запрашиваемые данные строки, либо нет. Если пытаться прочитать данные строки включая "запретный" реквизит, то RLS не пропустит ничего.     | |||
| 15
    
        fisher 08.04.19✎ 15:23 | 
        А если не через RLS, то костылить придется везде.     | |||
| 16
    
        fisher 08.04.19✎ 15:29 | 
        Хотя не. Может и не везде. Я в этом вопросе плаваю.
 Надо курить, как сочетаются права в ролях по реквизитам и комбинации галок пользовательской видимости в настройках форм. | |||
| 17
    
        LLeonidov 08.04.19✎ 15:34 | 
        (8) расскажи это создателям типовых. В данном случае плохое решение, но когда на роль повешен бизнес процесс, то почему бы и нет? 
 (0) Если тебе только спрятать или закрыть на редактирование, то ты что-то не договариваешь. Реквизит прекрасно прячется проверял на 1с 8.3.13.1513, 1с что-то поменяла в последних релизах, может доделают до конца, но это не точно. А вот если тебе надежно убрать доступ во всех отчетах,... то реквизит правится и читается кодом без повышения прав, я вынес нужную тч в отдельный регистр. | |||
| 18
    
        Fram 08.04.19✎ 17:55 | 
        (3) > Дал право "чтение/просмотр" на регистр, а на сам реквизит снял галки "просмотр/редактирование"
 это единственная роль у пользователя? | |||
| 19
    
        АнализДанных 08.04.19✎ 19:11 | 
        (0) А если функциональную опцию на реквизит повесить, значение опции брать из настроек пользователя?     | |||
| 20
    
        dave2000 10.04.19✎ 17:07 | 
        В ЗУП есть регистр ПлановыеНачисления, в котором нужно убрать видимость реквизита Показатель1. Добавляю ограничение: поле "Показатель1", условие "ГДЕ ЛОЖЬ". Не показывает вообще записей.
 (14) Похоже, что оно так и работает (17) Мне нужно это поле спрятать, т.е. чтобы данные этого поля не подтягивалась запросами в документы, регистры и т.д. Чтобы были видны просто нули. | |||
| 21
    
        Eiffil123 10.04.19✎ 17:12 | 
        (20) если скрыть этот реквизит из формы списка, тогда будет всё видно. А если показать - тогда ничего.
 Но это только для реквизитов, привязанных к полю объекта. А так, если он программно куда-то печатается, то его ничем не скрыть. | |||
| 22
    
        craxx 10.04.19✎ 17:31 | 
        (0) как верно заметили в (19), функциональная опция спасет отца русской демократии     | |||
| 23
    
        dave2000 10.04.19✎ 17:33 | 
        (21) Нашел доступное описание:
 https://fs.kursypo1c.ru/free/1C-Administration/03-rls-data-access-restrictions----kursy-po-1c_ru.pdf "Механизм позволяет накладывать ограничение не только на всю запись базы данных целиком, но и на отдельные ее поля. При этом можно указать имя конкретного поля или специальное поле Прочие поля. В первом случае условие будет накладываться только в том случае, если в запросе присутствует поле, для которого задано ограничение. Во втором случае ограничение будет накладываться для всех полей объекта, кроме полей, для которых ограничения заданы явным образом." | |||
| 24
    
        dave2000 10.04.19✎ 17:34 | 
        (22) Опция просто спрячет поле из документа или списка. А что делать с запросами, отчетами, печатными формами, где выбрается это поле?     | |||
| 25
    
        Said_We 11.04.19✎ 00:27 | 
        (0) Ответ уже дали в (14).
 Если простым языком, то... RLS умеет закрывать или не закрывать запись целиком. Условие RLS либо отрабатывает либо нет в зависимости к обращению полям, на которые наложено условие. Если среди полей, которые из БД считываются есть поля, на которые наложены условия, то эти RLS отрабатывают, но действует условие всегда на всю запись. В (23) говориться что условие можно привязывать к отдельным полям, но не говориться, что это условие будет действовать только на отдельные поля. Не надо оклад директоров и руководства скрывать. Получают слишком много денег, так значит заработали - чего стесняться. :-) Если все-таки стесняетесь, то не надо получать много - получайте меньше. :-) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |