Имя: Пароль:
1C
1С v8
РЛС. Тупит динамический список. Как понять, почему?
0 bolobol
 
06.12.19
14:57
День добрый!

Имеется РЛС, без него - всё летает, но нет отбора из 100К+ объектов.

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

Открываю под пользователем с РЛС: 29 - 229 секунд.

Что проверять? Что делать?

Спасибо!
1 ДенисЧ
 
06.12.19
14:59
Ловить чрез ТЖ запрос и наслаждаться им.
2 FIXXXL
 
06.12.19
15:15
(0) в РЛС "ИЛИ" используется для соединения параметров?
3 bolobol
 
06.12.19
15:20
(2) Да, как без них
4 fisher
 
06.12.19
15:20
"без него - всё летает, но нет отбора..."
В смысле, нет отбора?
5 BeerHelpsMeWin
 
06.12.19
15:22
Покажи условие из РЛС.
6 bolobol
 
06.12.19
15:22
И шаблон используется: #ПоЗначениямИНаборамРасширенный(

Ограничение: Пользователи
Все запрещены, всегда разрешён текущий пользователь (из описания)


(4) Нет РЛС-а - нет отбора = доступны все 100К+ записей.
7 fisher
 
06.12.19
15:34
(6) Ну, у меня стандартный совет. Не использовать типовые РЛС :)
8 sqr4
 
06.12.19
15:36
(7) Стоит еще фузину посоветовать
9 fisher
 
06.12.19
15:37
Если РЛС простой, но можно на старте из настроек прав пользователя получить список доступных ему объектов и запихать их в параметр сеанса вида "ФаксированныйМассив". Тогда в РЛС достаточно прописать условие на вхождение поля таблицы в этот массив. Будет летать.
10 bolobol
 
06.12.19
15:53
Беда-то в том, что типовые РЛС во всех остальных местах нормально отрабатывают, даже там, где не просто Пользователь = ТекущийПользователь, а где доступные физические лица по сотрудникам организаций контролируются.
Но вот там шаблон #ПоЗначениям
Шаблон #ПоЗначениямРасширенный (не помню где) - тоже шустр
А вот #ПоЗначениямИНаборамРасширенный( - вдруг стал тупить неподетски...
11 fisher
 
06.12.19
16:03
(10) Дык работа у него такая - тормозить. В доке черным по белому и пишут: "Шаблоны с модификатором РасширенноеИЛИ работают медленнее"
Что, как бы, очевидно.
12 FIXXXL
 
06.12.19
16:14
(11) "медленнее" мягко сказано... раз в 10 удавалось раскачать скорость запросов при отказе от ИЛИ в РЛС
13 Шоколадный глаз
 
06.12.19
16:17
(0) У тебя даже в нике ошибка, как ты кодишь?
14 bolobol
 
06.12.19
16:25
Просто запрос (в несколько упрощённом виде) и со всеми ИЛИями выполняется мгновенно
И это через интерпретатор!

РЛС же - на уровне платформы - должен же ну раза в два быстрее мгновения тогда работать... Разве нет?

Попробую переписать на тупое ВЫБРАТЬ ГДЕ ТекущийПользователь там, там или там, без шаблона, и поищу использование #ПоЗначениямРасширенный, осмотрю примеры нормальной работы.

Спасибо.
15 Fragster
 
гуру
06.12.19
16:31
если новая БСП, то можно поискать в настройке прав что-то типа "Использовать производительный режим РЛС" или что-то типа того. В общем, галочка "не тормозить" в 1с появилась
16 Fragster
 
гуру
06.12.19
16:31
побочным эффектом является немгновенный пересчет разрешений
17 palsergeich
 
06.12.19
16:32
(14) в первом приближении да, но если рассмотреть детально, то при ЛЮБОМ запросе у тебя все говно из РЛС сначала собирается потом пристраивается сбоку к запросу.
Получаются веселые запросили, особенно когда РЛС дублируется
18 fisher
 
06.12.19
16:37
(14) > Разве нет?
Нет.
Интерпретатор тут не при чем. Запрос выполняет СУБД. Из консоли ты выполняешь просто запрос, а при декларации этого же запроса в динамическом списке на результирующий запрос накладывается логика порционной выборки данных, которую от сложных условий колбасит.
19 fisher
 
06.12.19
16:38
Да и как правильно сказали, RLS работает не как чистый фильтр ГДЕ, а используется для получения вычисляемого поля доступа, по которому уже производится отбор
20 Fragster
 
гуру
06.12.19
16:40
особенно классная штука сортировка по представлениюсправочника, на котором также RLS
21 palsergeich
 
06.12.19
16:42
Если сложное условие то реально проще и правильнее ИМХО сделать свой РЛС, интегрировать его с подсистемой УправлениеДоступом, если необходимо, разница при грамотной проектировке до нескольких порядков.
22 Fragster
 
гуру
06.12.19
17:08
23 fisher
 
06.12.19
17:37
(22) А чего оно делает в "производительном" режиме в двух словах? За счет чего оптимизация?
24 Fragster
 
гуру
06.12.19
17:42
(23) ну там вместо прилепливания запроса из шаблона, который меняется в зависимости от заполненных параметров шаблона (он же #ПоЗначениям(...)) прилепляется один более менее стандартный запрос, который обращается к служебному регистру с ключами аналитики, из-за этого получается стабильное количество соединяемых таблиц. побочный эффект - обновление при изменении прав с небольшой задержкой.
25 fisher
 
06.12.19
18:12
(24) Т.е. они наконец-то реализовали предрасчет ключей аналитики, вместо того чтобы вычислять их в каждом RLS снова и снова? Аллилуйя.
26 palsergeich
 
06.12.19
21:33
(25) угу, они взяли идею из ДО и переложили на БСП, в ДО ключи доступа уже давненько
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.