|
Ускоряем запрос к хозрасчетному | ☑ | ||
---|---|---|---|---|
0
web_profiler
10.02.14
✎
17:04
|
Запрос достал уже - время выполнения 6 секунд.
Подскажите, мож как-то его ускорить можно? ВЫБРАТЬ ХозрасчетныйДвиженияССубконто.СубконтоКт1.НовыйВидАлкоголя КАК Код, ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент.ВидЛицензии КАК Кому, СУММА(ХозрасчетныйДвиженияССубконто.СубконтоКт1.Емкость * ХозрасчетныйДвиженияССубконто.КоличествоКт / 1000) КАК ОбъемРасход ИЗ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода, , , ) КАК ХозрасчетныйДвиженияССубконто ГДЕ ХозрасчетныйДвиженияССубконто.СчетКт = &СчетКт И ХозрасчетныйДвиженияССубконто.СубконтоКт1.НовыйВидАлкоголя = &Код СГРУППИРОВАТЬ ПО ХозрасчетныйДвиженияССубконто.СубконтоКт1.НовыйВидАлкоголя, ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент.ВидЛицензии |
|||
1
Yea-Yea
10.02.14
✎
17:04
|
бомба!
|
|||
2
Yea-Yea
10.02.14
✎
17:05
|
ну-с хлопцы оптимизаторы, вперед!
|
|||
3
web_profiler
10.02.14
✎
17:05
|
я так подозреваю - проблема тут
ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент.ВидЛицензии КАК Кому |
|||
4
web_profiler
10.02.14
✎
17:05
|
чем больше вложенность - тем тормознее
|
|||
5
Ненавижу 1С
гуру
10.02.14
✎
17:05
|
используйте вместо ГДЕ условия виртуальной таблицы
|
|||
6
hhhh
10.02.14
✎
17:06
|
(3) да, за эту строчку в вас 80 пуль надо вогнать. Причем из крупнокалиберного пулемета.
|
|||
7
ДенисЧ
10.02.14
✎
17:06
|
А ВЫРАЗИЬТ где?
|
|||
8
web_profiler
10.02.14
✎
17:06
|
(6) согласен, уже вытаскиваю
|
|||
9
vicof
10.02.14
✎
17:07
|
(4) Да ты гений
Виды субконто ограничь и приводу регистратор к нужному виду |
|||
10
Ненавижу 1С
гуру
10.02.14
✎
17:07
|
Контрагента никак не вытащить из оборотов например?
|
|||
11
vicof
10.02.14
✎
17:07
|
(6) +100
|
|||
12
web_profiler
10.02.14
✎
17:08
|
(7) в смысле?
|
|||
13
web_profiler
10.02.14
✎
17:09
|
(9) каким образом, подскажи, пожалуйста
|
|||
14
Maxus43
10.02.14
✎
17:11
|
(13) ВЫРАЗИТЬ
|
|||
15
vicof
10.02.14
✎
17:11
|
Параметром виртуальной таблицы + (7)
|
|||
16
web_profiler
10.02.14
✎
17:12
|
(10) с 6 сек до 0.639
|
|||
17
web_profiler
10.02.14
✎
17:12
|
(14) так где выразить использовать
|
|||
18
web_profiler
10.02.14
✎
17:12
|
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.СубконтоКт1.НовыйВидАлкоголя КАК Код, ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент.ВидЛицензии КАК Кому, СУММА(ХозрасчетныйДвиженияССубконто.СубконтоКт1.Емкость * ХозрасчетныйДвиженияССубконто.КоличествоКт / 1000) КАК ОбъемРасход, ХозрасчетныйДвиженияССубконто.Регистратор ИЗ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( &НачалоПериода, &КонецПериода, СчетКт = &СчетКт И СубконтоКт1.НовыйВидАлкоголя = &Код, , ) КАК ХозрасчетныйДвиженияССубконто СГРУППИРОВАТЬ ПО ХозрасчетныйДвиженияССубконто.СубконтоКт1.НовыйВидАлкоголя, ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент.ВидЛицензии, ХозрасчетныйДвиженияССубконто.Регистратор |
|||
19
web_profiler
10.02.14
✎
17:12
|
это 0.63 сек
|
|||
20
web_profiler
10.02.14
✎
17:13
|
(13) куда ВЫРАЗИТЬ применить?
|
|||
21
vicof
10.02.14
✎
17:14
|
(20) на регистратор
|
|||
22
Адский плющ
10.02.14
✎
17:14
|
Перепиши на таблицу "Обороты", это первое с чего надо начать, имхо.
|
|||
23
web_profiler
10.02.14
✎
17:18
|
Выразить(ХозрасчетныйДвиженияССубконто.СубконтоКт1.НовыйВидАлкоголя КАК чего???) Число() что-ли?
|
|||
24
web_profiler
10.02.14
✎
17:20
|
ХЕЛП!!! куда ВЫРАЗИТЬ применить???
ВЫБРАТЬ ХозрасчетныйДвиженияССубконто.СубконтоКт1.НовыйВидАлкоголя КАК Код, ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент.ВидЛицензии КАК Кому, СУММА(ХозрасчетныйДвиженияССубконто.СубконтоКт1.Емкость * ХозрасчетныйДвиженияССубконто.КоличествоКт / 1000) КАК ОбъемРасход ИЗ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( &НачалоПериода, &КонецПериода, СчетКт = &СчетКт И СубконтоКт1.НовыйВидАлкоголя = &Код, , ) КАК ХозрасчетныйДвиженияССубконто СГРУППИРОВАТЬ ПО ХозрасчетныйДвиженияССубконто.СубконтоКт1.НовыйВидАлкоголя, ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент.ВидЛицензии |
|||
25
Yea-Yea
10.02.14
✎
17:21
|
условия в параметры виртуальной таблицы, а "СубконтоКт1.НовыйВидАлкоголя = &Код" заменить предварительным получением списка значений субконто по условию
|
|||
26
web_profiler
10.02.14
✎
17:23
|
ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент.ВидЛицензии КАК СТРОКА(10)) КАК Кому
процес не ускорило |
|||
27
vicof
10.02.14
✎
17:23
|
(24) Чо кричишь, как маленький? в (21) все написано
|
|||
28
web_profiler
10.02.14
✎
17:24
|
(27) сделал (26)
|
|||
29
vicof
10.02.14
✎
17:25
|
(26) А ты почитать что-нибудь пробовал про оптимизацию? Про составные типы, например.
|
|||
30
vicof
10.02.14
✎
17:25
|
+(29) или надо разжевать и в рот положить?
|
|||
31
web_profiler
10.02.14
✎
17:26
|
(30) :) если не трудно
|
|||
32
H A D G E H O G s
10.02.14
✎
17:26
|
СУММА(ХозрасчетныйДвиженияССубконто.СубконтоКт1.Емкость * ХозрасчетныйДвиженияССубконто.КоличествоКт / 1000) КАК ОбъемРасход
на СУММА(ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.СубконтоКт1 как Справочник.Номенклатура).Емкость * ХозрасчетныйДвиженияССубконто.КоличествоКт / 1000) КАК ОбъемРасход |
|||
33
vicof
10.02.14
✎
17:28
|
(32) там еще регистратор есть
|
|||
34
vicof
10.02.14
✎
17:29
|
(32) Кстати, так можно не писать, а в виртуальной таблице наложить условие на субконто
|
|||
35
H A D G E H O G s
10.02.14
✎
17:30
|
(33) Там их может быть много разных. Я же не знаю че там за жесть алкогольная у автора.
|
|||
36
H A D G E H O G s
10.02.14
✎
17:30
|
(34) Я знаю. Автор просил ВЫРАЗИТЬ()
|
|||
37
Лефмихалыч
10.02.14
✎
17:31
|
этот запрос надо еще в цикл засунуть.
Для верности. |
|||
38
web_profiler
10.02.14
✎
17:32
|
ну че вы все меня обс... те? ичимся я
|
|||
39
web_profiler
10.02.14
✎
17:33
|
(34) а как в виртуальной таблице наложить условие на субконто?
|
|||
40
web_profiler
10.02.14
✎
17:33
|
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( &НачалоПериода, &КонецПериода, СчетКт = &СчетКт И СубконтоКт1.НовыйВидАлкоголя = &Код, , ) КАК ХозрасчетныйДвиженияССубконто |
|||
41
vicof
10.02.14
✎
17:34
|
(40) 3000р. и расскажу
|
|||
42
web_profiler
10.02.14
✎
17:35
|
Да кстати - никакого ускорения = 0.644 сек
ВЫБРАТЬ ХозрасчетныйДвиженияССубконто.СубконтоКт1.НовыйВидАлкоголя КАК Код, ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент.ВидЛицензии КАК СТРОКА(10)) КАК Кому, СУММА(ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК Справочник.Номенклатура).Емкость * ХозрасчетныйДвиженияССубконто.КоличествоКт / 1000) КАК ОбъемРасход ИЗ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( &НачалоПериода, &КонецПериода, СчетКт = &СчетКт И СубконтоКт1.НовыйВидАлкоголя = &Код, , ) КАК ХозрасчетныйДвиженияССубконто СГРУППИРОВАТЬ ПО ХозрасчетныйДвиженияССубконто.СубконтоКт1.НовыйВидАлкоголя, ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент.ВидЛицензии КАК СТРОКА(10)) |
|||
43
web_profiler
10.02.14
✎
17:36
|
видимо - дальше уже некуда... :(
|
|||
44
GROOVY
10.02.14
✎
17:37
|
(ушел писать курс по запросам...)
|
|||
45
Адский плющ
10.02.14
✎
17:37
|
(ушел в запой...)
|
|||
46
Yea-Yea
10.02.14
✎
17:39
|
(42) ужаснах
|
|||
47
vicof
10.02.14
✎
17:39
|
(44) Еще один?
|
|||
48
GROOVY
10.02.14
✎
17:40
|
(47) Да, с свистелками и перделками. С скриншотами профайлера и объяснениям почему "Субконто1." и "Ссылка." это ацкий пистец.
|
|||
49
Лефмихалыч
10.02.14
✎
17:41
|
(42) почитай мануал. Хоть какой-нибудь. Хотя бы курсы какие-нить укради хотя бы
|
|||
50
wms
10.02.14
✎
17:42
|
тут косяки не делай много точек
ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент.ВидЛицензии вложенный сделай на отбор нужных контрагентов |
|||
51
wms
10.02.14
✎
17:42
|
или пакетный
|
|||
52
Лефмихалыч
10.02.14
✎
17:45
|
(48) зачем?.. Автороподобные нубы его не осилят - инфа 146%
|
|||
53
GROOVY
10.02.14
✎
17:45
|
(52) В ветках можно будет на него ссылаться...
|
|||
54
Yea-Yea
10.02.14
✎
17:47
|
ВЫБРАТЬ
Номенклатура.Ссылка КАК Субконто ПОМЕСТИТЬ ТаблицаСубконто ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ ИСТИНА ИНДЕКСИРОВАТЬ ПО Субконто ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор, ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК Субконто ПОМЕСТИТЬ ИтоговаяТаблица ИЗ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( &НачалоПериода, &ОкончаниеПериода, СчетКт = &СчетКт И СубконтоКт1 В (ВЫБРАТЬ ТаблицаСубконто.Субконто ИЗ ТаблицаСубконто КАК ТаблицаСубконто), , ) КАК ХозрасчетныйДвиженияССубконто ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ИтоговаяТаблица.Регистратор, ИтоговаяТаблица.Субконто ИЗ ИтоговаяТаблица КАК ИтоговаяТаблица |
|||
55
Yea-Yea
10.02.14
✎
17:48
|
как-то так. думаю головы хватит чтобы свои хотелки на костяк накрутить
|
|||
56
Лефмихалыч
10.02.14
✎
17:49
|
(54) отбор по видам субконто где?
|
|||
57
H A D G E H O G s
10.02.14
✎
17:49
|
(55) Херово
|
|||
58
H A D G E H O G s
10.02.14
✎
17:50
|
3 вт не нужна, в первой - добавить отбор по коду АП, и неуверен, насчет индексирования.
|
|||
59
Лефмихалыч
10.02.14
✎
17:51
|
+(56) йяпромазал - в движениях с субконто нет такого параметра
|
|||
60
GROOVY
10.02.14
✎
17:52
|
(59) Мне так не понятно, нафига ДвиженияССубконто выбирать, если есть обороты?
|
|||
61
Yea-Yea
10.02.14
✎
17:52
|
(58) там "ГДЕ ИСТИНА" - это как раз место для условия автора.
а третий запрос - для группировок и суммирования по полям через точку |
|||
62
H A D G E H O G s
10.02.14
✎
17:54
|
(61) Где там суммирование?
|
|||
63
Лефмихалыч
10.02.14
✎
17:54
|
+(58) индекс нафиг не нужен, т.к. в этой таблице не может быть много элементов и в ней ни кто ничего не ищет.
И ВЫРАЗИТЬ субконто все равно надо (60) ага. То есть вопрос, зачем эти двнные из БУ получать и почему не из отдельного регистра накопления, специально под это заточенного, тебя не волнует? :) |
|||
64
H A D G E H O G s
10.02.14
✎
17:55
|
(63) Тоесть, типовые невсчет?
|
|||
65
Yea-Yea
10.02.14
✎
17:56
|
(62) в сабже есть
|
|||
66
Лефмихалыч
10.02.14
✎
17:57
|
(64) типовые на кол. От одного малюсенького регистра ни кто не умрет
|
|||
67
H A D G E H O G s
10.02.14
✎
17:58
|
(65) Его можно выполнить в 2 запросе.
|
|||
68
GROOVY
10.02.14
✎
17:58
|
(66) +1
|
|||
69
Yea-Yea
10.02.14
✎
18:01
|
(67) я предпочитаю разбивать.
|
|||
70
Yea-Yea
10.02.14
✎
18:04
|
кстати да. хозрасчетный не для этого придуман. так что +1 к дополнительному регистру
|
|||
71
web_profiler
10.02.14
✎
18:07
|
Павел, играем дальше ..
ВЫБРАТЬ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).НовыйВидАлкоголя КАК Код, СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток * ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).Емкость / 1000) КАК НачОстаток, СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт * ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).Емкость / 1000) КАК Приход, СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт * ХозрасчетныйОстаткиИОбороты.Субконто1.Емкость / 1000) КАК Расход, СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток * ХозрасчетныйОстаткиИОбороты.Субконто1.Емкость / 1000) КАК КонОстаток ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, , Счет.Ссылка = &Ссылка, , Субконто1.НовыйВидАлкоголя = &Кодик) КАК ХозрасчетныйОстаткиИОбороты СГРУППИРОВАТЬ ПО ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).НовыйВидАлкоголя УПОРЯДОЧИТЬ ПО Код |
|||
72
web_profiler
10.02.14
✎
18:08
|
2,3 сек выполнение и тут уже есть обороты
|
|||
73
web_profiler
10.02.14
✎
18:09
|
а че значит Субконто1 и Ссылка - плохо???
|
|||
74
web_profiler
10.02.14
✎
18:09
|
(48) ???
|
|||
75
hhhh
10.02.14
✎
18:12
|
(71) ну самую главную ВЫРАЗИТЬ забыл? ХозрасчетныйОстаткиИОбороты.Субконто1.Емкость
|
|||
76
web_profiler
10.02.14
✎
18:27
|
во я дибил!!!
Счет.Ссылка = &Ссылка жесть какая, как я мог так писать??? Счет = &Ссылка - увеличение скорости с 2.3 до 0.6 сек |
|||
77
GROOVY
10.02.14
✎
18:28
|
web_profiler, не я ушел методичку дописывать к курсу по запросам. Играйте без меня.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |