Имя: Пароль:
1C
 
RLS на чтение через парсинг
0 Гений 1С
 
гуру
08.04.21
08:42
Что-нибудь делал нормальные RLS на чтение, через парсинг типовых ролей.
Т.е. выгрузку их в XML, там обработать, добавить свои шаблоны - и вуаля!?
1 Momus
 
08.04.21
08:44
"Т.е. выгрузку их в XML, там обработать, добавить свои шаблоны - и вуаля!?" - делал
"Что-нибудь делал нормальные RLS на чтение, через парсинг типовых ролей." - это как?
2 Гений 1С
 
гуру
08.04.21
08:53
(1) роли можно выгрузить в XML и там пропарсить
3 Йохохо
 
08.04.21
08:56
"Что-нибудь делал" какое пренебрежение, какое уничижение!1
4 Гений 1С
 
гуру
08.04.21
08:57
(3) "Кто-нибудь"
5 Momus
 
08.04.21
09:03
(2) а цель какая? Чем типовое "Все ограничения доступа" не устроило?
6 TormozIT
 
гуру
08.04.21
09:12
7 Вафель
 
08.04.21
09:13
Сейчас РЛС пишется в модулях менеджеров
8 Ненавижу 1С
 
гуру
08.04.21
09:16
"нормальные RLS на чтение" - а какое нормальное?
9 Гений 1С
 
гуру
08.04.21
09:43
(6) это через парсинг? Нужно через командную строку. Обновились - прогнали конфу, нужные дефиниции встали в RLS
(8) нормальные, это не от 1С. ;-) Самописные.

Я вот, кстати, давно просил 1С вместо "бантиков" сделать программную генерацию RLS.
10 Гений 1С
 
гуру
08.04.21
09:44
(7) RLS на чтение? Рилли?
(5) не гибкое.
11 Вафель
 
08.04.21
09:44
(9) так они и сделали
12 Вафель
 
08.04.21
09:45
(10) да на чтение. это новый производительный вариант
13 Гений 1С
 
гуру
08.04.21
09:45
(6) плохо документашка написана. По картинке не понятен принцип редактирования RLS
14 Гений 1С
 
гуру
08.04.21
09:45
(12) а как он работает на регистрах накопления?
15 Гений 1С
 
гуру
08.04.21
09:46
ну например, если надо отфильтровать по контрагенту движения документов реализации?
16 Вафель
 
08.04.21
09:46
примерно так

Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
    
    Ограничение.Текст =
    "РазрешитьЧтениеИзменение
    |ГДЕ
    |    ЗначениеРазрешено(Склад)";
    
КонецПроцедуры
17 Гений 1С
 
гуру
08.04.21
09:49
(16) RLS стало возможно менять программно? или там в коде RLS зашито обращение к каким-либо регистрам?
18 Гений 1С
 
гуру
08.04.21
09:51
(16) это платформенная шняга? На ИТС что-то не пишется про версию релиза, с которой работает
19 Гений 1С
 
гуру
08.04.21
09:51
20 fisher
 
08.04.21
09:53
Я выкидывал типовые RLS и писал свои, берущие данные из настроек прав БСП, но с ограниченной функциональностью.
21 Гений 1С
 
гуру
08.04.21
09:53
(20) добавлял новые роли или заменял в шаблонах? меня интересует решение, удобное при обновлениях типовых
22 fisher
 
08.04.21
09:54
(21) Добавлял новые. Это для нетленки было.
23 Гений 1С
 
гуру
08.04.21
09:55
Мне кажется, проще оставить типовые роли, на них многое завязано. Но выгрузить их в XML, убить там все ненужные RLS на чтение, подменить своими. Ну а изменения контролировать конечно же подписками, а не RLS.
24 Гений 1С
 
гуру
08.04.21
09:55
(22) понятно. Меня больше интересует в контексте, чтобы можно было нормально обновлять релизы.
25 fisher
 
08.04.21
09:56
(16) Хм... А каким механизмом платформы потом применяется программно сформированное ограничение доступа?
26 Гений 1С
 
гуру
08.04.21
09:58
(25) это не платформенное, это БСП. но мне тоже любопытно, как они сырой текст втсавляют в запрос RLS
27 Вафель
 
08.04.21
09:59
(26) они сырой текст используют для заполнения регистров доступных данных.ю
а рлс уже работает по этим регистрам
28 fisher
 
08.04.21
10:04
(27) Понятно. То есть это просто правила заполнения регистров доступных данных.
29 Гений 1С
 
гуру
08.04.21
10:36
(27) Я такое встречал в Документообороте, потом поднял проект в одно рыло на 100 часов по переписыванию рассчетных прав доступа на динамические. Тупиковый путь.
30 Гений 1С
 
гуру
08.04.21
10:55
Вот они, RLS, родимые, в выгруженных файлах конфигурации:

<object>
        <name>InformationRegister.МестонахождениеОСБухгалтерскийУчет</name>
        <right>
            <name>Read</name>
            <value>true</value>
            <restrictionByCondition>
                <condition>#Если &amp;ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрСведенийМестонахождениеОСБухгалтерскийУчет", "Организация", "", "", "", "")
#Иначе
// ОсновноеУсловиеЧтение
// Можно читать если есть доступ к (по или)
// Организации
#ПоЗначениям("РегистрСведений.МестонахождениеОСБухгалтерскийУчет", "Чтение", "",
"Организации", "Организация",
"","",
"","",
"","",
"","","","","","","","",
"","","","","","","","",
"","","","","","","",""
)
#КонецЕсли</condition>
            </restrictionByCondition>
        </right>
        <right>
            <name>View</name>
            <value>true</value>
        </right>
    </object>