Имя: Пароль:
1C
1С v8
v8: Знатокам БСП. Реализация прав доступа или бамагите с RLS
0 Armando
 
30.11.11
19:40
Уважаемые, своя голова варить перестала. Надеюсь на вашу.

Имеем следующее:
Самописка на БСП. Есть справочник ДоговорыКонтрагентов с реквизитом ссылающимся на некий БизнесПроцесс. Поле составное (два разных бизнес процесса).
Доступ к справочнику реализован через группы доступа (справочник "Группы доступа") с видом доступа "Пользователи". Так же доступ на чтение дополнительно должен предоставляться за пределами группы доступа, у кого есть задача от бизнес процесса в указанном выше реквизите справочника договоров. Сейчас в базе грубо 1300 договоров, на каждый договор примерно 4 задачи, всего задач ~7500.

Колдую над RLS:
#ПоЗначениямРасширенный("Справочник.ДоговорыКонтрагентов", "Чтение", "",
"
ЛЕВОЕ СОЕДИНЕНИЕ Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
   ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсполнителиЗадач КАК ИсполнителиЗадач
   ПО (ВЫБОР
           КОГДА ЗадачаИсполнителя.Исполнитель = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
                   ТОГДА ЗадачаИсполнителя.РольИсполнителя = ИсполнителиЗадач.РольИсполнителя
           ИНАЧЕ ЛОЖЬ
       КОНЕЦ)
       И ЗадачаИсполнителя.БизнесПроцесс ССЫЛКА БизнесПроцесс.СогласованиеДоговора
ПО (ВЫБОР
       КОГДА ЗадачаИсполнителя.БизнесПроцесс ССЫЛКА БизнесПроцесс.СогласованиеДоговора
           ТОГДА ВЫРАЗИТЬ(Т.БизнесПроцессСогласование КАК БизнесПроцесс.СогласованиеДоговора) = ВЫРАЗИТЬ(ЗадачаИсполнителя.БизнесПроцесс КАК БизнесПроцесс.СогласованиеДоговора)
       ИНАЧЕ ЛОЖЬ
   КОНЕЦ)
",
"",
"Пользователи","Т.Автор","ИЛИ",
"Условие","
ВЫБОР
   КОГДА ЗадачаИсполнителя.Ссылка ЕСТЬ NULL
       ТОГДА ЛОЖЬ
   КОГДА ЗадачаИсполнителя.РольИсполнителя = ЗНАЧЕНИЕ(Справочник.РолиИсполнителей.ПустаяСсылка)
       ТОГДА ЗадачаИсполнителя.Исполнитель = &ТекущийПользователь
   ИНАЧЕ ИсполнителиЗадач.Исполнитель = &ТекущийПользователь
КОНЕЦ
","",
"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","")

Получаю тормоза. Список договоров открывается ~25 секунд. Если в RLS вставляю условие (НЕ ЗадачаИсполнителя.Выполнена), скорость открытия списка возрастает в несколько раз (4-6 секунд), но все-равно не комфортно работать.


Посоветуйте, пожалуйста, как и что можно перекроить, сохранив требуемую функциональность?
1 Armando
 
30.11.11
20:15
На файловой версии больше двух минут открывается оО
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn