Имя: Пароль:
1C
 
Кто допиливал ограничение доступа RLS, мб подскажите? Не отрабатывает как надо. (скрины)
,
0 Медвеедка
 
21.11.19
14:02
Здравствуйте.

Начну с начала.

Суть в том, чтобы к одному значению справочника, ограничить доступ.

Сам справочник - банковские счета. Есть там счет с наименованием Яковлев. Вот мне надо чтобы этот счёт только 3 человека видели. Остальные нет.

Открываю статью (не буду ссылку оставлять, а то забанят ещё) и выполняю по пунктам.

1. Добавила в конфигурацию справочник ГруппыДоступаБанковскихСчетов и создала там реквизит ГруппаДоступа ссылочного типа на этот же справочник (делала это, т.к. в комментариях к статье было (пробовала и без него - ничего)) https://a.radikal.ru/a27/1911/14/e89b4b77df9c.jpg
2. В справочнике БанковскиеСчета добавила реквизит ГруппаДоступа с ссылкой на новый справочник https://d.radikal.ru/d22/1911/26/6c4ec64f8f50.jpg
3. В определяемый тип ЗначенияДоступа и ЗначениеДоступаСГруппамиЗначенийДоступаОбъект (без второго типа обновление ругалось) включил ссылки на БанковскиеСчета и ГруппыДоступаБанковскихСчетов.
4.В подписке на событие "ОбновитьГруппыЗначенийДоступа" поставила галку на БанковскиеСчета.
5. В общем модуле УправлениеДоступомПереопределяемый внесла такой код (выделен множеством +):



Процедура ПриЗаполненииВидовДоступа(ВидыДоступа) Экспорт
    
    ЗарплатаКадры.УправлениеДоступомЗаполнитьСвойстваВидаДоступа(ВидыДоступа);
    
     // ++++++++++++++++++++Наша вставка
    ВидДоступа = ВидыДоступа.Добавить();
    ВидДоступа.Имя = "ГруппыБанковскихСчетов"; // имя вида доступа (используется в ролях для RLS)
    ВидДоступа.Представление    = НСтр("ru = 'Группы банковских счетов'");
    ВидДоступа.ТипЗначений      = Тип("СправочникСсылка.БанковскиеСчета"); // критерий ограничения доступа
    ВидДоступа.ТипГруппЗначений = Тип("СправочникСсылка.ГруппыДоступаБанковскихСчетов"); // средство ограничения доступа
    // ---------------------------------------Наша вставка
    
    УправлениеДоступомБП.ЗаполнитьВидыДоступа(ВидыДоступа);
    // бит_Финанс Изменение кода. Начало. 09.02.2015{{
    бит_ПраваДоступаОсновной.ЗаполнитьСвойстваВидовДоступа(ВидыДоступа);
    // бит_Финанс Изменение кода. Конец. 09.02.2015}}
    РегламентированнаяОтчетность.ПриЗаполненииВидовДоступа(ВидыДоступа);
        
    //bt_04_0971_suyy_191217_N
    бит_стр_ОМТС_Сервер.УправлениеДоступомЗаполнитьСвойстваВидаДоступа(ВидыДоступа);
    //bt_04_0971_suyy_191217_K
    
КонецПроцедуры


Процедура ПриЗаполненииИспользованияВидаДоступа(ВидДоступа, Использование) Экспорт
    
    ЗарплатаКадры.УправлениеДоступомЗаполнитьИспользованиеВидаДоступа(ВидДоступа, Использование);
    
     // +++++++++++++++++++++++Наша вставка    
    Если ВидДоступа = "ГруппыБанковскихСчетов" Тогда
        Использование = Истина;
    КонецЕсли;
    // ---------------------------------------------Наша вставка
    
    //bt_04_0971_suyy_191217_N
    бит_стр_ОМТС_Сервер.УправлениеДоступомЗаполнитьИспользованиеВидаДоступа(ВидДоступа, Использование);
    //bt_04_0971_suyy_191217_K
    
КонецПроцедуры

Процедура ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание) Экспорт
        
    Описание = "";
    
    // +++++++++++++++++++++++++++Наша вставка
    // указание прав объектов метаданных, на которые распространяется RLS
    Описание = Описание + "
    |Справочник.БанковскиеСчета.Чтение.ГруппыБанковскихСчетов
    |Справочник.БанковскиеСчета.Изменение.ГруппыБанковскихСчетов
    |";
    // ---------------------------------------------------Наша вставка

    
    УправлениеДоступомБП.ЗаполнитьВидыОграниченийПравОбъектовМетаданных(Описание);
    
    РегламентированнаяОтчетность.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание);
    
    ЭлектронноеВзаимодействие.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание);
    
    //bt_04_0971_suyy_191217_N
    бит_стр_ОМТС_Сервер.ЗаполнитьВидыОграниченийПравОбъектовМетаданных(Описание);
    //bt_04_0971_suyy_191217_K
    
КонецПроцедуры





Дальше в режиме предприятия запускаю внешнюю обработку Обновление вспомогательных данных обновляю (БСП так понимаю?). Появляется новый вид доступа.

6. В новом справочнике создаю объект, называю его Пенза, делаю владельцем наш счет Яковлев. https://c.radikal.ru/c10/1911/9d/d84254725eda.jpg

7.Настраиваю новый профиль test с ограничением "все РАЗРЕШИТЬ, кроме..." добавляю ограничение Пенза.

8. Создаю нового пользователя (тест4) с минимальным набором ролей. Во всех ролях, кроме одной, выключаю чтение справочника БанковскиеСчета.
В одной роли, которая и осуществляет только доступ к справочнику, пишу такое ограничение:


#ПоЗначениям( "Справочник.БанковскиеСчета","Чтение","","ГруппыБанковскихСчетов","Ссылка","","","","","","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )


Не знаю надо ли, но могу кинуть шаблон (ПоЗначениям) который использовался.

Захожу под пользователем, лезу в банковские счета иии... ничего не убралось. БК Яковлев всё так же висит.

Настраиваю профиль "все ЗАПРЕТИТЬ, кроме..." и также свою Пензу оставляю.
Перезахожу под пользователем иии... убирается воообще ВСЁ. Что за хрень такая творится?

Я почему то грешу на не верную настройку ролей.

Ребяяят, помогите. Совсем с ног сбилась, пока всё это изучала. И в конце такая подлянка.
1 Медвеедка
 
21.11.19
14:35
неужели никто не настраивал?
2 sqr4
 
21.11.19
14:37
Фото давай к профилю
3 Медвеедка
 
21.11.19
14:42
(2) ммм, не поняла. Это ещё зачем?)
4 sqr4
 
21.11.19
14:45
(3) ИНаче тут не помогают
5 Медвеедка
 
21.11.19
14:49
(4) хммм, ну ок, сейчас будет вам фото
6 sqr4
 
21.11.19
14:52
(5) чем горячее фото, тем скорее помощь)))
7 Медвеедка
 
21.11.19
14:53
(6) я вас поняла, ахаха
8 Kigo_Kigo
 
21.11.19
14:54
Сча она выложит
https://www.sb.by/upload/resize_cache/slam.image/iblock/943/855_2000_1/943a57ebf96e1b0097ebd8f6a67b7de1.jpg
Бггггг
По факту RLS  еще сырая, 1С вкорячила, отладку по ней не сделал, по этому настрнока РЛС - это как хождение по минному полю
9 Медвеедка
 
21.11.19
14:54
(6) но таких к сожалению нет, сейчас что нить поприличнее найду
10 Медвеедка
 
21.11.19
14:56
(8) ахаха, смешно.
Но погодите, рлс как я знаю, уже давно применяется. Нежули 1С не доработала её нормально?

Хотя раз есть эта тема - нет, не доработала
11 Kigo_Kigo
 
21.11.19
14:59
(10) Да давно, но виот типа консоли отлаки или чтото подобного нет, по этому ставя где то его огранечение не знаешь на что наткнешся и как это лечить, никто не знает, потому как работает по какому то внутреннему алгоритму никому не известному и ладно бы выдавала конкретное сообщение, что и где ей не нравится, так фигачит стандарное"у пользователя недостаточно прав на исполнение операции над базой данных" , что  где когда, как отловить, загадка, я отказался от РЛС
12 Медвеедка
 
21.11.19
15:11
(6) вот вам и фото)
13 Kigo_Kigo
 
21.11.19
15:11
Это кстати как УРБД в свое время в 7-ке, сделали давно, но так и не допилили кстати, бросились на 8-ку, инфа собиралась по крупинкам, и только релизу к 25 было только понятно что как куда и зачем, пока ребята всю эту кухню на винтики не расковыряли и рассказали
14 Медвеедка
 
21.11.19
15:12
(11) а решали вообще вопросы с ограничением прав на какие-то не типовые справочники\документы? если да, то примерно как?
15 sqr4
 
21.11.19
15:17
(14) я бы с этого начал https://its.1c.ru/db/bsp301doc#content:73:1
16 Медвеедка
 
21.11.19
15:20
(15) смотрела, ну прям вообще не понятно там описано
17 cons24
 
21.11.19
17:45
(1) если речь про ссылку на infostart - то не банят за неё.

"Захожу под пользователем, лезу в банковские счета иии... ничего не убралось. БК Яковлев всё так же висит.
Настраиваю профиль "все ЗАПРЕТИТЬ, кроме..." и также свою Пензу оставляю.
Перезахожу под пользователем иии... убирается воообще ВСЁ."

Здесь всё логично: ставишь "все кроме" - не срабатывает это "кроме", ставишь "никого нельзя, можно только указанных" - ничего не видишь, т.к. "только указанных" не находит. Т.е. система не видит значение параметра. Почему? Ну тут много вариантов, я не знаю.

А вообще мне не понятно зачем городить огород с справочником ГруппыДоступаБанковскихСчетов. Вы собираетесь делать "вот эти и эти доступны тем-то, а эти и эти - тем-то"? На мой взгляд статья похожа на настройку ГруппыДоступаПартнеров/ФизЛиц/Номенклатуры в ERP. Вы хотите делить счета на группы, к которым давать доступ?
На мой взгляд в постановке задачи всё проще, деление счетов на группы не требуется - надо лишь ограничить доступ к _отдельным_ элементам. Достаточно сделать как для Организаций и Складов. Без отдельного справочника.
18 DeeK
 
21.11.19
18:00
а что консоль запросов открыть и собрать в кучу все, и проверить, не помогло?