0
Armando
30.11.11
✎
19:40
|
Уважаемые, своя голова варить перестала. Надеюсь на вашу.
Имеем следующее:
Самописка на БСП. Есть справочник ДоговорыКонтрагентов с реквизитом ссылающимся на некий БизнесПроцесс. Поле составное (два разных бизнес процесса).
Доступ к справочнику реализован через группы доступа (справочник "Группы доступа") с видом доступа "Пользователи". Так же доступ на чтение дополнительно должен предоставляться за пределами группы доступа, у кого есть задача от бизнес процесса в указанном выше реквизите справочника договоров. Сейчас в базе грубо 1300 договоров, на каждый договор примерно 4 задачи, всего задач ~7500.
Колдую над RLS:
#ПоЗначениямРасширенный("Справочник.ДоговорыКонтрагентов", "Чтение", "",
"
ЛЕВОЕ СОЕДИНЕНИЕ Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсполнителиЗадач КАК ИсполнителиЗадач
ПО (ВЫБОР
КОГДА ЗадачаИсполнителя.Исполнитель = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
ТОГДА ЗадачаИсполнителя.РольИсполнителя = ИсполнителиЗадач.РольИсполнителя
ИНАЧЕ ЛОЖЬ
КОНЕЦ)
И ЗадачаИсполнителя.БизнесПроцесс ССЫЛКА БизнесПроцесс.СогласованиеДоговора
ПО (ВЫБОР
КОГДА ЗадачаИсполнителя.БизнесПроцесс ССЫЛКА БизнесПроцесс.СогласованиеДоговора
ТОГДА ВЫРАЗИТЬ(Т.БизнесПроцессСогласование КАК БизнесПроцесс.СогласованиеДоговора) = ВЫРАЗИТЬ(ЗадачаИсполнителя.БизнесПроцесс КАК БизнесПроцесс.СогласованиеДоговора)
ИНАЧЕ ЛОЖЬ
КОНЕЦ)
",
"",
"Пользователи","Т.Автор","ИЛИ",
"Условие","
ВЫБОР
КОГДА ЗадачаИсполнителя.Ссылка ЕСТЬ NULL
ТОГДА ЛОЖЬ
КОГДА ЗадачаИсполнителя.РольИсполнителя = ЗНАЧЕНИЕ(Справочник.РолиИсполнителей.ПустаяСсылка)
ТОГДА ЗадачаИсполнителя.Исполнитель = &ТекущийПользователь
ИНАЧЕ ИсполнителиЗадач.Исполнитель = &ТекущийПользователь
КОНЕЦ
","",
"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","")
Получаю тормоза. Список договоров открывается ~25 секунд. Если в RLS вставляю условие (НЕ ЗадачаИсполнителя.Выполнена), скорость открытия списка возрастает в несколько раз (4-6 секунд), но все-равно не комфортно работать.
Посоветуйте, пожалуйста, как и что можно перекроить, сохранив требуемую функциональность?
|
|