|
Как быстрее получать цены из регистра сведений | ☑ | ||
---|---|---|---|---|
0
Double_Medved
16.04.13
✎
12:13
|
УТ11, был тут написанный не мной и не типовой документ, в котором табличная часть номенклатуры и при открытии он перебирает все строки номенклатуры и для каждой строки ищет ее последнюю цену и выводит. Не суть зачем, суть в том что это медленно сделано. Грубо говоря цены для сотни сток он ищет минут 5. Я хочу это ускорить. Сейчас в цикле перебираются строки и для каждой для нахождения цены вызывается процедура:
&НаСервере Функция ПолучитьТекущуюЦену(Номенклатура,ВидЦены); Старая = РегистрыСведений.ЦеныНоменклатуры.ПолучитьПоследнее(,Новый Структура("Номенклатура, ВидЦены",Номенклатура,ВидЦены)).Цена; Возврат (Старая); КонецФункции Подскажите как можно ускорить? |
|||
1
Wobland
16.04.13
✎
12:13
|
взять и запросить
|
|||
2
1Сергей
16.04.13
✎
12:13
|
запаросом
|
|||
3
Wobland
16.04.13
✎
12:15
|
ТЧ левое РС...
|
|||
4
vip67
16.04.13
✎
12:17
|
перенести получение цены для всей ТЧ на сервер, чтобы быстрее.
но настораживает - что при открытии содержимое документа МЕНЯЕТСЯ. т.е. сам документ по себе не содержит достоверной информации. Я бы понял - при создании или заполнении менять данные - но не при каждом открытии. |
|||
5
MSII
16.04.13
✎
12:19
|
(4) А где написано, что документ меняется?
|
|||
6
Double_Medved
16.04.13
✎
12:21
|
(4) там все еще более непросто. Поля которые меняются при открытии - они как бы в нем и не хранятся и ни на что не влияют - это просто цены из регистра.
|
|||
7
MSII
16.04.13
✎
12:22
|
(3) А если в параметры таблицы СрезПоследних номенклатуру засунуть, не быстрее будет?
|
|||
8
Double_Medved
16.04.13
✎
12:24
|
(7) быстрее, но тут получается что потом цены в регистре могут измениться а поля нет и данные будут неверные.
|
|||
9
Double_Medved
16.04.13
✎
12:24
|
А блин выходит запрос по любому быстрее всех этих методов?
|
|||
10
1Сергей
16.04.13
✎
12:25
|
(8) юзай динамический список
|
|||
11
MSII
16.04.13
✎
12:27
|
(8) Ты меня не понял, ну да ладно, я у автора (3) спросил.
|
|||
12
1Сергей
16.04.13
✎
12:35
|
(11) что лучше, один запрос по всем номенклатурам или 100500 маленьких запросов по каждой номенклатуре?
|
|||
13
Михаил Козлов
16.04.13
✎
12:36
|
По-видимому, цены просто выводятся на экран.
1. Получить запросом по всех номеклатуре из ТЧ. Предусмотреть возможность получения цен при изменении ТЧ (добавление/изменение состава ТЧ). 2. Получать цены по мере необходимости (в ПриПолученииДанных табличного поля). Можно предусмотреть локалный кэш, чтобы не получать несколко раз по одной и той же номенклатуре. Может оказаться чуть быстрее, если строк в ТЧ много, а выводится 20. |
|||
14
H A D G E H O G s
16.04.13
✎
12:39
|
** зевает.
|
|||
15
MSII
16.04.13
✎
12:39
|
(12) Один запрос. Его и обсуждаем. В (3) предложено соединять ТЧ с РС, в (7) отбирать из РС через параметры виртуальной таблицы. Что лучше?
|
|||
16
H A D G E H O G s
16.04.13
✎
12:42
|
У автора - УФ.
ДинамическийСписок такой динамический, что лучше без него. ТЗ на форму, константу ДатаВремя в конфигурацию, ПриЗаписи РС. ЦеныНоменклатуры, ставить ДатуВремя последнего изменения, в форме - таймер, смотрит время константы с временем в форме, при несовпадении - обновляет ТЗ и время в форме. Фсе. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |