|
Оптимизация запроса 1С УТ | ☑ | ||
---|---|---|---|---|
0
crisalis
12.08.16
✎
15:51
|
Доброго время суток, помогите что то сделать с запросом, работает, но не оптимально, заранее благодарен, вот это чудо:
ВЫБРАТЬ
|
|||
1
vicof
12.08.16
✎
16:15
|
Убрать вложенные запросы, убрать обращения через точку, при обращении к регистратору использовать ВЫРАЗИТЬ,
использовать параметры виртуальных таблиц, индексировать измерения, по которых идут соединения и условия |
|||
2
crisalis
12.08.16
✎
16:41
|
(1) "убрать обращения через точку" - это как ?
|
|||
3
vicof
12.08.16
✎
16:44
|
ТоварыНаСкладахОбороты.Регистратор.ДокументПередачи.Сделка
как - это уже вопрос фантазии. Писать сделку в регистр отдельнеым измерением, не учитывать вообще, еще чонить. |
|||
4
crisalis
12.08.16
✎
16:45
|
(1) "Убрать вложенные запросы" - имеется ввиду только вложенные запросы или пакетный запрос тоже попадает под раздачу
|
|||
5
crisalis
12.08.16
✎
16:57
|
(3) оххх, измерение это конечно хорошо , но нет, это потом проведения каждого регистратора исправлять, как то стрёмно.
|
|||
6
Fragster
гуру
12.08.16
✎
17:00
|
(5) можно перед записью набора сделать подписку, в которой заполнять доп. измерение/ресурс/реквизит
|
|||
7
Широкий
12.08.16
✎
17:00
|
ВЫРАЗИТЬ где??
|
|||
8
crisalis
12.08.16
✎
17:01
|
(1) а вот за ВЫРАЗИТЬ спасибо , как-то не приходилось использовать, до сих пор.
|
|||
9
youalex
12.08.16
✎
17:01
|
в первом запросе вообще непонято зачем вложенный запрос. Если даже не вдаваться, то объединение - также помещается в Вт.
Что за условие "группОтгрузка.Сделка = &Заказ" ? Может быть стоит логику от него начинать строить? |
|||
10
youalex
12.08.16
✎
17:03
|
(7) как "выражать", если там три типа может быть (судя по условиям ССЫЛКА). Через ОБЪЕДИНИТЬ ВСЕ ?
|
|||
11
crisalis
12.08.16
✎
17:05
|
(9) группОтгрузка.Сделка = &Заказ - это для того чтобы получить по одному заказу (чтобы сверить) , этот код я добавил в консольке, в запросе в базе его нет
|
|||
12
crisalis
12.08.16
✎
17:06
|
(10) с ВЫРАЗИТЬ
ВЫБОР
|
|||
13
youalex
12.08.16
✎
17:09
|
(12) смысл? Выражать нужно поля до точки, т..е до неявного соединения.
Т.е. ВЫРАЗИТЬ(ТоварыНаСкладахОбороты.Регистратор КАК документ.РеализацияТоваровУслуг).Сделка |
|||
14
crisalis
12.08.16
✎
17:10
|
(9) "в первом запросе вообще непонято зачем вложенный запрос" - для группировки, я понял что вы имеете ввиду сейчас исправлю
|
|||
15
youalex
12.08.16
✎
17:10
|
Возможно, стоит посмотреть в сторону регистра на Продажи, там есть поле ЗаказПокупателя.
|
|||
16
youalex
12.08.16
✎
17:12
|
(14) там же ничего не группируется, нет агрегатных полей, "сгруппировать" можно через ОБЪЕДИНИТЬ (не ОБЪЕДИНИТЬ ВСЕ)
|
|||
17
youalex
12.08.16
✎
17:17
|
+ во втором пакете запроса группировать тоже не нужно, т.к. используются только измерения; вирт. таблица Обороты и так должна сгруппировать по ним
(тут могу наврать) |
|||
18
crisalis
12.08.16
✎
17:37
|
(13)
|
|||
19
youalex
12.08.16
✎
17:43
|
(18)
ДокументПередачи - по идее тоже нужно выражать (посмотрите сколько типов у этого реквизита д-та РасходныйОрдерНаТовары) Т.е. ВЫРАЗИТЬ(ВЫРАЗИТЬ(ТоварыНаСкладахОбороты.Регистратор КАК Документ.РасходныйОрдерНаТовары).ДокументПередачи КАК Документ.РеализацияТоваровУслуг).Сделка жесть конечно) Я бы сделал явными соединениями с таблицами документов |
|||
20
aleks_default
12.08.16
✎
17:47
|
Обороты вобще не нужны, лучше обращение к реальной таблице
|
|||
21
crisalis
12.08.16
✎
17:52
|
(20) и что потом самому группировать и суммировать ?
|
|||
22
crisalis
12.08.16
✎
17:53
|
(21) почему не нужны , там сразу получаю искомую сумму
|
|||
23
aleks_default
12.08.16
✎
17:54
|
(22)А ты там что-то суммируешь? Там вообще количества нет в конечной таблице. Только сделка.
|
|||
24
crisalis
12.08.16
✎
17:55
|
(23) так есть суммарасход
|
|||
25
aleks_default
12.08.16
✎
17:58
|
Я про
РегистрНакопления.ТоварыНаСкладах.Обороты где тут сумма или количество? |
|||
26
crisalis
12.08.16
✎
18:43
|
(19) 4 типа
(25) понял, надо поправить, изначально там было количество потом я убрал Скажите а может я вообще не правильно все делаю- мне надо получить таблицу заказов и "сумму отгрузки" (это как объяснил мне бухгалтер все реализации и реализации с проведёнными документами расходный ордер на товары) |
|||
27
crisalis
12.08.16
✎
18:44
|
(26) если нет расходого ордера то не учитывать плюс к этому надо учесть и возвраты
|
|||
28
youalex
12.08.16
✎
20:35
|
(26) посмотри в сторону регистров Продажи , Заказы.
|
|||
29
crisalis
15.08.16
✎
12:55
|
(28) Продажи мне тоже подходят , ведь реализация делает движения по регистру Продажи если даже расходный ордер на основании Реализации не проведен. А может склеить Продажи и ПродажиСебестоимость ? Подтолкните пожалуйста , как сделать лучше
|
|||
30
ViSo76
15.08.16
✎
14:05
|
(0) Топикастр весёлый парень... пишет такие расчудесные запросы просто ужас...
1. В начале напиши что хочешь получить, каково задание. 2. Что за тема со всеми движениями по складам за всё время существование базы ( ТоварыНаСкладах )? PS: Где скорее всего будет выполнена после поднятия с диска всех движений... |
|||
31
crisalis
15.08.16
✎
14:10
|
(30) (1) хочу получить сумму отгрузки (это сумма всех документов реализация со склада и по ордеру (только учесть что если нет расходного ордера тогда не включать эти расходные в выборку) - возвраты)
|
|||
32
crisalis
15.08.16
✎
14:13
|
(30) 2. это чтобы потом слеить по сделке "ЗаказПокупателя" и получить итоговою таблицу :
ЗаказаПокупателя|СуммаЗаказа|СуммаСУчетомКорр|СуммаОтгрузки |
|||
33
ViSo76
15.08.16
✎
14:39
|
Во первых всегда есть интерес смотреть за период ( нужно учитывать ), во вторых движения по складу не только расход, но и приход, перемещения, списания и по этому:
Нужно взять регистр накопления Продажи, в нём фиксируются как продажи, так и возвраты ( Скорее всего возврат у вас создаётся на основе РН, а не заказа что не принципиально ). Так же есть ссылка на ЗаказПокупателя ( чтобы взять сумму начального заказа ). Скорее всего РасходныйОрдерНаТовары так же делается на основании РН, по этому не составляет труда соединить движения взятые из "Продажи" свернуть, чтобы получить сумму и регистратор ( РН ), и затем соединить уже с "Ордером", для проверки факта отгрузки. PS: УТ10 явно |
|||
34
crisalis
15.08.16
✎
14:44
|
Вот так вроде бы быстрее получилось:
|
|||
35
floody
15.08.16
✎
16:59
|
В этой ситуации нужно получать инфу из регистров. Как например ваш запрос учитывает корректировки?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |