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