Имя: Пароль:
1C
1С v8
Помогите оптимизировать RLS в УПП
0 leonidkorolev
 
07.12.12
10:04
В документе Начисление зарплаты сотрудникам организации в роли для расчетчика есть такой кусок кода (см. ниже).
Наткнулся на него после жалобы расчетчика что документ проводится 20 минут.
Идёт обращение ко всем документам начисления, а в этих документа ко всем таб. частям, а в этих таб. частях ко всем строкам.
Для средней компании за пару лет это будет выборка тыщ на 100.
Если я правильно понял, то проблема из-за невозможности обращения к ТекущейТаблице во вложенных запросах.
Это всё мои предположения, может я ошибаюсь. Как можно оптимизировать этот кусок.

#Если &ИспользоватьОграничениеПоФизическиеЛица #Тогда
                               КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ФизическиеЛица)
                                   ТОГДА ВЫБОР
                                           КОГДА (НЕ 1 В
                                                       (ВЫБРАТЬ ПЕРВЫЕ 1
                                                           1
                                                       ИЗ
                                                       
                                                       (
                                                       ВЫБРАТЬ Ссылка, ФизЛицо ИЗ Документ.НачислениеЗарплатыРаботникамОрганизаций.Начисления
                                                       ОБЪЕДИНИТЬ ВСЕ
                                                       ВЫБРАТЬ Ссылка, ФизЛицо ИЗ Документ.НачислениеЗарплатыРаботникамОрганизаций.ДополнительныеНачисления
                                                       ОБЪЕДИНИТЬ ВСЕ
                                                       ВЫБРАТЬ Ссылка, ФизЛицо ИЗ Документ.НачислениеЗарплатыРаботникамОрганизаций.ДоговорыНаВыполнениеРабот
                                                       ОБЪЕДИНИТЬ ВСЕ
                                                       ВЫБРАТЬ Ссылка, ФизЛицо ИЗ Документ.НачислениеЗарплатыРаботникамОрганизаций.Удержания
                                                       ОБЪЕДИНИТЬ ВСЕ
                                                       ВЫБРАТЬ Ссылка, ФизЛицо ИЗ Документ.НачислениеЗарплатыРаботникамОрганизаций.НДФЛ
                                                       ОБЪЕДИНИТЬ ВСЕ
                                                       ВЫБРАТЬ Ссылка, ФизЛицо ИЗ Документ.НачислениеЗарплатыРаботникамОрганизаций.ПогашениеЗаймов                                                        
                                                           
                                                       ) КАК СодержимоеТаблЧастей
                                                           
                                                           ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
                                                               ПО
                                                                   ФизическиеЛица.Ссылка = СодержимоеТаблЧастей.ФизЛицо ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                                               ПО
                                                                   НастройкиПравДоступаПользователей.ОбъектДоступа = ФизическиеЛица.ГруппаДоступаФизическогоЛица
                                                                       И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ФизическиеЛица)
                                                                       И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ФизическиеЛицаДанные)
                                                                       И НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                       ГДЕ
                                                           СодержимоеТаблЧастей.Ссылка = ТекущаяТаблица.Ссылка
                                                           И НастройкиПравДоступаПользователей.ОбластьДанных ЕСТЬ NULL ))
                                               ТОГДА ИСТИНА
                                           ИНАЧЕ ЛОЖЬ
                                       КОНЕЦ
                               #КонецЕсли
1 Lexusss
 
07.12.12
10:07
Смотри в SQL план выполнения запроса.
2 Нуф-Нуф
 
07.12.12
10:09
отказаться от рлс
3 Maxus43
 
07.12.12
10:09
вынести в привелигированый например запись в регистры по этому документу
4 Maxus43
 
07.12.12
10:10
"оптимизировать RLS" - даже не смешно
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.