|
Оптимизация запроса на СКД (ускорить выборку данных) | ☑ | ||
---|---|---|---|---|
0
ac13
21.02.19
✎
10:58
|
В первом наборе данных:
ВЫБРАТЬ
Во втором наборе данных ВЫБРАТЬ
Связь полей наборов по параметрам &Дата и &номенклатура. Формируется долго. Можно как-то ускорить выборку, чтобы в результате получить цены на каждую дату продажи? |
|||
1
palsergeich
21.02.19
✎
11:01
|
В таком виде нет.
Только переписывать. Связь наборов через параметр = запрос в цикле |
|||
2
ac13
21.02.19
✎
11:07
|
(1) Понял. А как можно переписать?
|
|||
3
palsergeich
21.02.19
✎
11:11
|
Есть такая задача - получить значение среза последних на дату не исползуя виртуальную таблицу.
1) отказаться от связи через параметр. 2) подумать как прикрутить подсказку |
|||
4
ам794123
21.02.19
✎
11:15
|
(0) объедини оба набора в одном запросе, непонятно зачем два набора
|
|||
5
palsergeich
21.02.19
✎
11:16
|
(4) не выйдет. Точнее данные будут не соответствовать ожидаемым. Там срез последних на дату каждого документа.
То есть для каждой строки надо новое значение. |
|||
6
ам794123
21.02.19
✎
11:18
|
(5) понятно
|
|||
7
ac13
26.02.19
✎
09:37
|
Нашел в интернете оптимизированный способ выборки цен.
В одном наборе данный выбираем и Продажи и Цены, связь с условием: ЦеныНоменклатурыКонтрагентов.Период В
И вот какая тут получается проблема: для некоторых позиций у меня есть записи Период 31.12.2018 23:59:59 Цена 1 230,00 Период 31.12.2018 23:59:59 Цена 2 500,00 Период 31.12.2018 23:59:59 Цена 1 100,00 потому что выборка из регистра "Цены номенклатуры контрагентов", максимальный период одинаковый и у меня утраивает выборку, как избежать подобной ситуации? |
|||
8
ac13
26.02.19
✎
09:42
|
Добавил еще одну связь с условием и получилось:
ЦеныНоменклатурыКонтрагентов.Период В
|
|||
9
catena
26.02.19
✎
09:42
|
(7)Зависит от того, какой из этих трех цен вы хотите видеть.
|
|||
10
ac13
26.02.19
✎
10:38
|
(8) как оказалось, с таким условием вообще ничего не отбирает
|
|||
11
ac13
26.02.19
✎
10:59
|
В общем отобрать одну запись в ситуации когда в регистре три таких записи не удается:
Период 31.12.2018 23:59:59 Цена 1 230,00 Период 31.12.2018 23:59:59 Цена 2 500,00 Период 31.12.2018 23:59:59 Цена 1 100,00 (9) любую, максимальную или среднюю |
|||
12
_Дайвер_
26.02.19
✎
11:19
|
Тебе надо в документе продажи брать цену номенклатуры(цена = сумма / количество), и сравнить с прайсом на дату документа. так же предусмотреть вид цены, и ситуацию когда в одном документе будет одна и та же номенклатура разбита на несколько строк
|
|||
13
catena
26.02.19
✎
11:23
|
(11)Ну и группируй по МАКСИМУМ или СРЕДНЕЕ
|
|||
14
toypaul
гуру
26.02.19
✎
11:27
|
Я бы сделал так.
Выбрал все цены через объединение остатков на начальную дата и за период. Затем сгруппировал бы по Номенклатура, Период с нужной функцией. И только потом эти обработанные цены цеплял бы к регистру продаж. Если все это делается на СКД, то отбор по номенклатуре к такому запросу должен примениться автоматически. |
|||
15
toypaul
гуру
26.02.19
✎
11:27
|
"через объединение остатков на начальную дата" - через объединение цен на начальную дату периода
|
|||
16
Конструктор1С
26.02.19
✎
11:37
|
По-моему СКД это дело умеет оптимизировать, но только если ты ей немного развяжешь руки - пропишешь условия в {}
|
|||
17
ac13
26.02.19
✎
12:08
|
(13) так с этим и нет проблем)
|
|||
18
catena
26.02.19
✎
12:11
|
(17)"В общем отобрать одну запись в ситуации когда в регистре три таких записи не удается"
" так с этим и нет проблем)" Определитесь... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |