Имя: Пароль:
1C
 
Мой гений дарит вам окончательное решение вопроса RLS
0 Гений 1С
 
гуру
20.02.26
18:06
Пришло из ноосферы сегодня.
Дарю: https://geniy1s.ru/okonchatelnoe-reshenie-voprosa-rls-na-chtenie/
Пример шаблона RLS:
#Если "Справочник.Номенклатура" = #ИмяТекущейТаблицы #Тогда
    ГДЕ Истина
#КонецЕсли

#Если "Справочник.Контрагенты" = #ИмяТекущейТаблицы #Тогда
    ГДЕ Ссылка.Наименование ПОДОБНО "а%"
#КонецЕсли
1 Ботаник Гарден Меран
 
20.02.26
18:08
"Подобно" - это специально ради срача?
2 Гений 1С
 
гуру
20.02.26
18:13
(1) это просто для примера, что можно использовать поля по ссылке, например Наименование
3 Волшебник
 
20.02.26
18:18
(2) Сергей, Вы понимаете, как работает RLS на нижнем уровне? Особенно при обращении через точку?
4 Гений 1С
 
гуру
20.02.26
18:23
(3) да, соединяет с таблицей... но это лишь пример, вы можете красиво соединить. хотя тут ссылка явно лишняя, в контексте же доступны все поля текущей таблицы. Ща проверю.

Можно так:

#Если "Справочник.Номенклатура" = #ИмяТекущейТаблицы #Тогда
    ГДЕ Наименование ПОДОБНО "б%"
#КонецЕсли

#Если "Справочник.Контрагенты" = #ИмяТекущейТаблицы #Тогда
    ГДЕ Наименование ПОДОБНО "а%"
#КонецЕсли



Но суть подхода от этого не меняется. Можно сосредоточить все тесты запроса в одном месте, в одном тексте, который можно сгенерировать на худой конец.
5 Волшебник
 
20.02.26
18:23
(4) Серёга, ты поплыл. Никто не настраивает RLS по наименованию контрагента. Там как минимум запрос к регистру сведений с группами контрагентов и группами пользователей.
6 Гений 1С
 
гуру
20.02.26
18:46
(5) куда я поплыл? Волшебник, ты вооще суть предложения понял?

Ну замени условие вот на это внутри, если так будет проще понимать людям, но думаю не будет:

    
Подробности
(
        ИСТИНА В // Проверка, что пользователю или какой-нибудь группе пользователя право разрешено
            (
            ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА
            ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек
                ПО
                      НаследованиеНастроек.Объект = Т.#Параметр(5)
                    И НастройкиПрав.Объект  = НаследованиеНастроек.Родитель
                #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда
                    И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияЧтения
                #Иначе
                  #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда
                    И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка
                  #Иначе
                    И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка)
                  #КонецЕсли
                    И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньРазрешенияИзменения
                #КонецЕсли
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
                ПО
                      СоставыГруппПользователей.Пользователь        = &АвторизованныйПользователь
                    И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь
            )
         И НЕ ЛОЖЬ В // Проверка, что пользователю или какой-нибудь группе пользователя право запрещено.
            (
            ВЫБРАТЬ ПЕРВЫЕ 1 ЛОЖЬ
            ИЗ РегистрСведений.НастройкиПравОбъектов КАК НастройкиПрав
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НаследованиеНастроекПравОбъектов КАК НаследованиеНастроек
                ПО
                      НаследованиеНастроек.Объект = Т.#Параметр(5)
                    И НастройкиПрав.Объект  = НаследованиеНастроек.Родитель
                #Если #ИмяТекущегоПраваДоступа = "Чтение" #Тогда
                    И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияЧтения
                #Иначе
                  #Если СтрСодержит(&ТаблицыСОтдельнымиНастройкамиПрав, "|#Параметр(1);") #Тогда
                    И НастройкиПрав.Таблица = СвойстваТекущейТаблицы.Ссылка
                  #Иначе
                    И НастройкиПрав.Таблица = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка)
                  #КонецЕсли
                    И НаследованиеНастроек.УровеньИспользования < НастройкиПрав.УровеньЗапрещенияИзменения
                #КонецЕсли
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
                ПО
                      СоставыГруппПользователей.Пользователь        = &АвторизованныйПользователь
                    И СоставыГруппПользователей.ГруппаПользователей = НастройкиПрав.Пользователь
            )
     )
7 Волшебник
 
20.02.26
18:32
Кстати, я многократно решал задачу по доступам через RLS, включая доступ к контрагентам, сотрудникам, счетам учёта. Идеального решения нет, но есть рабочие решения.

Например, вот такое:

8 Конструктор1С
 
20.02.26
18:32
(0) ну прочти ты уже мануал, а?
9 Волшебник
 
20.02.26
18:32
(6) Ты свою галиматью вообще скрой, не позорься
10 Гений 1С
 
гуру
20.02.26
18:34
(7) я тоже решал многократно и думал что решения нет, потому в F3 хотел отказаться от RLS, но сегодня пришло в голову решение. Я так понял, ты не понял его суть?
11 _Batoo
 
20.02.26
18:34
Идеальный RLS: ГДЕ ИСТИНА
12 Волшебник
 
20.02.26
18:34
(10) Я так понял, что ты ушёл в астральные облака. Спустись на землю
13 Волшебник
 
20.02.26
18:35
(11) 👍 Кстати, да. Выстрадано на опыте
14 Гений 1С
 
гуру
20.02.26
18:35
(12) хахаха, да ты не понял? Я не верю, но ты не понял? А че так? Ну перечитай еще раз.
15 Конструктор1С
 
20.02.26
18:36
(6) это кусок из БСПшного RLS, а как он работает ты не знаешь, ибо прочитать мануал не осилил
16 Волшебник
 
20.02.26
18:36
(14) Серёга, у меня память есть. Я её читаю постоянно. Не надо глючить в мою светлую голову.
17 Гений 1С
 
гуру
20.02.26
18:38
(16)
по поводу этого метода можно сказать только КРУТО.
остальные слова тут не уместны. или кто-то не понимает его суть.
(15) это сарказм.
18 PLUT
 
гуру
20.02.26
18:41
(17) нужно больше красоты в Ф3

дарю идею использовать #Если СтрСодержит(...)

хуже уже точно не будет

вместе с ПОДОБНО можно бесподобно упростить/усложнить RLS на чтение (с какой стороны посмотреть)

для ларька норм
19 Гений 1С
 
гуру
20.02.26
18:41
(18) вот потому меня и назвают Гений 1С, что Господь через меня приносит 1с-никам изящные решения сложных вопросов.
20 PLUT
 
гуру
20.02.26
18:42
(19) "вот потому меня и назвают Гений 1С"

они здесь сейчас с нами, в этой комнате?
21 Конструктор1С
 
20.02.26
18:45
(17) ты что собрался ограничивать и зачем?
22 Волшебник
 
20.02.26
18:46
(19) Молимся за твоё скорейшее когнитивное выздоровление! Не знаю, что там по F3, но по RLS ты поплыл на булевой алгебре, и тебя не спасут даже кубиты.
23 Конструктор1С
 
20.02.26
18:47
(19) только ты лишь сегодня днем начал открывать для себя использование RLS, остальные это уже давно умеют
24 Гений 1С
 
гуру
20.02.26
18:50
(21) да что угодно, например доступные пользователю склады:

#Если "Справочник.Склады" = #ИмяТекущейТаблицы #Тогда
    ГДЕ Ссылка В (&ОбъектДоступаДоступныеСклады)
#КонецЕсли

#Если "Документ.ПоступлениеТоваров" = #ИмяТекущейТаблицы #Тогда
    ГДЕ
    Склад В   (&ОбъектДоступаДоступныеСклады)
    И Организация  В   (&ОбъектДоступаДоступныеОрганизации)
#КонецЕсли

(23) не ври, я давно использую RLS и шаблоны в том числе. Но эта гениальная идея пришла только сегодня. Это НЕИБИЧЕСКИ КРУТАЯ ШНЯГА.

(22) волшебник, что не так? Вот в этом сообщении я тебе привел практичный пример RLS.
25 PLUT
 
гуру
20.02.26
18:49
(23) да Г!С до сих пор в шоке от дескрипторов прав доступа в Документообороте :) чертовщина какая-то (НЁХ - неведомая... херня)
26 Волшебник
 
20.02.26
18:49
(24) У тебя обороты не сойдутся в отчётах
27 Волшебник
 
20.02.26
18:51
Ребята, арифметика должна сходиться. Это же кубиты в пределе. 1+1=10 в двоичном исчислении. Никуда от этого не уйти и не деться.
28 Конструктор1С
 
20.02.26
18:52
(24) прикинь, а можно просто в конкретном шаблоне/ограничении прописать:

ГДЕ Ссылка В (&ОбъектДоступаДоступныеСклады)

и получится ровно то же самое
29 Волшебник
 
20.02.26
18:53
(28) Ссылку я рекомендую сделать доступной. Изучайте (7)
30 Гений 1С
 
гуру
20.02.26
18:56
(28) Ха, смешно видеть, как конструктор не всасывает суть метода. И он еще мнит себя великим архитектором. Мдя.
И он еще пытался поучать меня в архитектуре F3

(29) ну что тебе сказать, Волшебник, по этому поводу... Я тоже так писал раньше, все эти 5 лет я не знал об том волшебном методе, который сегодня вам излагаю... это как трактор супротив лопаты.
31 Волшебник
 
20.02.26
18:55
(30) У Вас не метод, а правка к типовой БСП, которую Вы сами отвергли.
32 Волшебник
 
20.02.26
18:56
Кто отвергает типовую БСП? Ну например я.
Я сделал уже несколько конфигураций без БСП. Они в продакшене. На них держится бизнес.
33 Гений 1С
 
гуру
20.02.26
18:57
(32) их можно скачать, купить, форкнуть?

(31) Волшебник, ну реально ты не догоняешь суть метода... ну может позже осознаешь, понимаю, он ломает стереотипы
34 Волшебник
 
20.02.26
18:57
Кто поддерживает типовую БСП? Ну например, Гений 1С
Причём в своей разработке с нуля.
Зачем, бля?!
35 Гений 1С
 
гуру
20.02.26
19:00
(34) не, я даже не знаю эту вашу БСП, но я видел ее уродливое лицо в типовых. Ни за шьто этого уродства в моей Ф3 небудет.
36 Волшебник
 
20.02.26
19:01
Гений 1С решил написать свою конфу на 1С, убивцу 1С, но изучает БСП.
Зачем?!

Гений 1С не мужик. Серёга, ты врёшь общественности.
37 Конструктор1С
 
20.02.26
19:01
(30) читай мануал и не люби мозг
38 Гений 1С
 
гуру
20.02.26
19:03
(36) я не изучаю БСП, с чего ты взял. RLS - это от платформы, а не от БСП.

Пример в (6) я привел как раз чтобы показать ее уродтсво.

(37) Сделай над собой усилие и осознай уже революционность рожденного сегодня в муках метода.
39 Волшебник
 
20.02.26
19:04
(38) Приведи пример элегантного решения RLS. Сабж не считается
40 Гений 1С
 
гуру
20.02.26
19:09
(39) в (24) же привел, смотри внимательно.
41 Волшебник
 
20.02.26
19:14
(40) низачот! см (26)
42 Гений 1С
 
гуру
20.02.26
19:15
(41) давай конкретнее, а то я че-то сарказм не выкупаю уже к концу рабочего дна.
43 Волшебник
 
20.02.26
19:16
(42) А ты бесплатнее относись к моим рекомендациям. Это ж всё на опыте выстрадано и заработано.
44 Гений 1С
 
гуру
20.02.26
19:16
(43) ну я там не увидел ничего интересного. отбор по списку доступных объектов это классика. что я должен там увидеть?
45 Волшебник
 
20.02.26
19:18
(44) Увидь обороты в отчётах, особенно с расшифровкой по регистратору. Сложи нач.остаток + приход - расход и получи конечный остаток
46 Конструктор1С
 
20.02.26
19:18
(38) сделай над собой усилие и прочти мануал. Только начал для себя открывать RLS и уже используешь его через одно место
47 Гений 1С
 
гуру
20.02.26
19:21
(46) Конструктор, расписываться в том, что ты не асилил, не надо. Я это и так понял. Жди когда другие придут и офигеют от счастья.
48 Волшебник
 
20.02.26
19:22
(47) Мы охренели от счастья, что твой гений дарит нам...
49 Гений 1С
 
гуру
20.02.26
20:12
(48) не, надо еще осознать, что именно, вот тогда и происходит отрыв башки.
Закон Брукера: Даже маленькая практика стоит большой теории.