Имя: Пароль:
1C
1С v8
Обработка получения представления.
0 Puzyrevskiy
 
21.07.20
12:00
Здравствуйте, дорогие Мисчане! В обработке получения представления справочника, реализован запрос такого вида:
ВЫБРАТЬ
СегментыКлиентовСрезПоследних.Клиент КАК Клиент,
ПРЕДСТАВЛЕНИЕ(СегментыКлиентовСрезПоследних.Сегмент) КАК Сегмент
ИЗ
РегистрСведений.СегментыКлиентов.СрезПоследних(, Клиент = &Клиент) КАК СегментыКлиентовСрезПоследних

при больших объемах считываемых данных данный запрос дает нагрузку в 0,5-0,8 секунд, что собственно мне не нравится, да и вообще писать в данном обработчике какие-либо запросы некамельфо, ибо обращений сюда много.
Внимание вопрос! Как оптимальней получать данные по сегментам и выводить их в представление? Возможно (как вариант), завести реквизит, куда бы заранее писались данные представления, а потом бы из этого реквизита подхватывались, что думаете?
1 D_E_S_131
 
21.07.20
12:20
Есть еще "ОбработкаПолученияПолейПредставления", если нужно вытащить какие-то данные, которых нет непосредственно в объекте.
2 DTX 4th
 
21.07.20
12:25
Сейчас посмотрел типовые отчеты в РТ2. Там нигде нет представлений. Почему? СКД как-то разруливает это дело?
3 lodger
 
21.07.20
12:31
система позволяет такие извращения, конечно. но зачем? просто "так хочет клиент"?
тут 2 основных пути - перевесить эту задачу на отчеты, который 1 раз для всего массива стянет срез последних, второй записать в элемент справочника.
есть дополнительные варианты - поставить этот запрос в модуль с повторновозвращаемыми данными, а где нужно дергать уже модуль. последние значения будут кешироваться.
4 lodger
 
21.07.20
12:32
в обработке получения данных представления... ну можете скулю приделать объем оперативки превышающий объем рабочей базы.
5 Йохохо
 
21.07.20
12:57
(2) потому что платформа по умолчанию всегда тащит запросом поля нужные для типового представления
6 acht
 
21.07.20
13:00
(0) > Мисчане... некамельфо
Бесталковая идея, Пузырь.
7 acht
 
21.07.20
13:02
Ты бярешь срес лефаго сначениа на дату, а претсавлениё ва перфых кышыруется, а ва втарых - по сцылке зправочника.
8 fisher
 
21.07.20
13:09
Да, срез последних в получении представления - это слишком сурово. Но можешь включить для регистра сведений хранение итогов среза последних - станет значительно быстрее.
Но брать из реквизита - оптимально.
9 fisher
 
21.07.20
13:13
(2) СКД грамотно разруливает получение представлений скопом. А вот если сам формируешь табличный документ с большим количеством ссылок и забыл про представления (выводишь ссылку вместо представления и платформа вынуждена сама получать представления), то можно удивиться разнице в быстродействии.
10 Puzyrevskiy
 
21.07.20
13:16
(8) Да, тут даже идея была такая, завести реквизит, первоначально заполнить его значениями из регистра, а потом реализовать регламентное на обновление этих сегментов в ночное время.
11 DTX 4th
 
21.07.20
13:50
(9) Что-то не думал об этом. Спасибо
В общем, слава СКД :)
12 D_E_S_131
 
21.07.20
14:22
(10) Не "регламентное обновление" уж тогда, а подписку на событие записи набора записей (или где там эти сегменты хранятся).
13 Йохохо
 
21.07.20
14:23
(9) платформа дополняет автоматом запросы к бд для получения типового представления
14 Puzyrevskiy
 
21.07.20
14:54
(12) да, тоже отличная мысль :) Спасибо!
15 Puzyrevskiy
 
21.07.20
14:55
Всем спасибо ребята!
16 fisher
 
21.07.20
15:00
(13) Обычные запросы представлениями не дополняются. А про СКД уже написано.