|
Ускорение запроса - по хозрасчетному регистру | ☑ | ||
---|---|---|---|---|
0
Маленький Вопросик
07.02.15
✎
20:30
|
Товарищи, помогите хоть немного "ускорить" запрос по хозрасчетному регистру - остатки по счету 41.11
ОстаткиВмагазине = Новый Запрос("ВЫБРАТЬ | ХозрасчетныйОстатки.СуммаОстаток КАК СуммаНоменклатуры, | ХозрасчетныйОстатки.КоличествоОстаток КАК КоличествоНоменклатуры |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &Дата, | Счет = &Счет, | , | Субконто1 = &Номенклатура | И Субконто3 = &Склад) КАК ХозрасчетныйОстатки |ГДЕ | ХозрасчетныйОстатки.КоличествоОстаток >= &КоличествоОстаток"); ОстаткиВмагазине.УстановитьПараметр("Номенклатура", Номенклатура); ОстаткиВмагазине.УстановитьПараметр("Склад", Склад); ОстаткиВмагазине.УстановитьПараметр("Дата", Дата); ОстаткиВмагазине.УстановитьПараметр("Счет", СчетСклада); //41.11 ОстаткиВмагазине.УстановитьПараметр("КоличествоОстаток", КоличествоПоДокументу); ОстаткиПоНоменклатуре = ОстаткиВмагазине.Выполнить().Выгрузить(); Если ОстаткиПоНоменклатуре.Количество()=0 Тогда ВозвращаемНоменклатуру = ЗаменительНоменклатуры; Иначе ВозвращаемНоменклатуру = Номенклатура; КонецЕсли; |
|||
1
Dmitrii
гуру
07.02.15
✎
20:45
|
Запрос, как он есть сейчас больше не оптимизировать.
Только вот есть подозрение, что этот код в цикле делается. Тогда так делать не нужно. А еще можно написать запрос так, чтобы он сразу выдавал нужную номенклатуру, чтобы не надо было заниматься ерундой в виде выгрузки результата в ТЗ, проверки количество строк в ТЗ и т.п. |
|||
2
Armando
07.02.15
✎
20:46
|
Если бы склад был вторым субконто, было бы быстрее
|
|||
3
Рэйв
07.02.15
✎
20:47
|
Мне одному кажется, что ТС просто напоминает о себе и пиарится на пустом месте?6-)
|
|||
4
Маленький Вопросик
07.02.15
✎
20:51
|
Народ, подскажите как добавить проводку (ручная корректировка) не затерев существующие проводки.
|
|||
5
Маленький Вопросик
07.02.15
✎
20:52
|
(2) к сожалению идет партионный учет
|
|||
6
Рэйв
07.02.15
✎
20:53
|
(5)К сожалению, мы на одной планете. :-(
|
|||
7
Рэйв
07.02.15
✎
20:53
|
с тобой
|
|||
8
zmaximka
07.02.15
✎
21:32
|
установить еще отбор по второму субконто, тогда в индекс попадешь
|
|||
9
bolobol
07.02.15
✎
22:04
|
Это в файловой базе тормозит???
|
|||
10
bolobol
07.02.15
✎
22:05
|
А второе субконто, напомните, какое?
Не пора ли тут провести ревизию остатков, видимо - не закрывались с прошлого века ни разу. |
|||
11
RomanYS
07.02.15
✎
22:17
|
Если задать видыСубконто в параметрах, может стать заметно быстрее
|
|||
12
alle68
07.02.15
✎
22:20
|
(5) Не сожалей, быстрее не будет.
(8) Что за индекс такой волшебный? (10) А вот это весьма возможно. (11) Однозначно, хуже не будет! |
|||
13
GROOVY
07.02.15
✎
22:44
|
(0) Типизируйте субконто в параметрах ВТ. Больше тут вряд что-то ускорить не меняя метаданные можно.
|
|||
14
H A D G E H O G s
07.02.15
✎
22:53
|
(13) хе-хе..
Привет. |
|||
15
Маленький Вопросик
07.02.15
✎
22:53
|
41.11
Субконто1 = Номенклатура Субконто2 = Партия Субконто3 = Склад. База файловая тестовая - рабочая СКЛ. |
|||
16
Маленький Вопросик
07.02.15
✎
22:55
|
(13) можно правильный примерчик типизации значений в запросе?
|
|||
17
alle68
07.02.15
✎
23:03
|
(16) СП под рукой? Статья "Субконто".
|
|||
18
Dmitrii
гуру
07.02.15
✎
23:10
|
В данном случае типизация субконто в параметрах виртуальной таблицы скорее замедлит выполнение запроса.
Нужны остатки по 1-му и 3-му субконто. В параметрах ВТ придется указать массив из двух значений ПВХ.ВидыСубконто.Номенклатура и ПВХ.ВидыСубконто.Склады. Для построения виртуальной таблицы системе придется перекинуть 3-е субконто (Склады) на второе место. А это лишние накладные расходы. (0) А этот запрос точно не делается в цикле каком-нибудь (например, обхода строк табличной части)? |
|||
19
bolobol
07.02.15
✎
23:11
|
(16)
Массив.Добавить(ВидСубконто.Номенклатура) Массив.Добавить(ВидСубконто.Партии) Массив.Добавить(ВидСубконто.Склад) Типа того |
|||
20
bolobol
07.02.15
✎
23:13
|
А, не - проще можно:
Массив = Счёт4111.Субконто.ВыгрузитьКолонку(ВидыСубконто) (18) Ничего не замедлится, условие на третье - все три заданы. Нет проблемы. |
|||
21
GROOVY
07.02.15
✎
23:16
|
Так, наоборот, ему партии нафиг не нужны.
|
|||
22
Маленький Вопросик
07.02.15
✎
23:19
|
ОстаткиВмагазине = Новый Запрос("ВЫБРАТЬ
| ХозрасчетныйОстатки.СуммаОстаток КАК СуммаНоменклатуры, | ХозрасчетныйОстатки.КоличествоОстаток КАК КоличествоНоменклатуры |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &Дата, | Счет = &Счет, | &ВидыСубконто, | Субконто1 = &Номенклатура | И Субконто3 = &Склад) КАК ХозрасчетныйОстатки |ГДЕ | ХозрасчетныйОстатки.КоличествоОстаток >= &КоличествоОстаток"); Мас = Новый Массив; Мас.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура); Мас.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Партии); Мас.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады); ОстаткиВмагазине.УстановитьПараметр("ВидыСубконто", Мас); ОстаткиВмагазине.УстановитьПараметр("Номенклатура", Номенклатура); ОстаткиВмагазине.УстановитьПараметр("Склад", Склад); ОстаткиВмагазине.УстановитьПараметр("Дата", Дата); ОстаткиВмагазине.УстановитьПараметр("Счет", СчетСклада); ОстаткиВмагазине.УстановитьПараметр("КоличествоОстаток", КоличествоПоДокументу); |
|||
23
Маленький Вопросик
07.02.15
✎
23:20
|
что-то не сильно в скорости прибавило
|
|||
24
bolobol
07.02.15
✎
23:21
|
(23) А два пробовали задать, без партий и условие Субконто3 изменить на Субконто2?
|
|||
25
alle68
07.02.15
✎
23:22
|
(23) Субконто "Партии" убери. Заодно скажи, сколько раз в цикле эта процедура вызывается.
|
|||
26
bolobol
07.02.15
✎
23:24
|
Иначе, по-ходу, надо ТиИ делать, ибо заметить скорость выполнения такого запроса - это, мягко говоря, нужно на Пентиуме133 с ФДД базу читать...
|
|||
27
bolobol
07.02.15
✎
23:26
|
(25) Наверное, столько раз, сколько хватит для оценки, что этот запрос тормозит. Я сейчас на боевой базе, правда скульной, запустил его 10000 раз. Что 1 раз, что 10000 - одинаково - 1,5 секунды клиент висел в ожидании.
|
|||
28
Deon
07.02.15
✎
23:38
|
РЛС включен?
|
|||
29
Armando
07.02.15
✎
23:58
|
(0) Кстати, в параметры виртуальной таблицы добавь условие по организации.
|
|||
30
Deon
08.02.15
✎
00:04
|
Мне вот тоже кажется, что этому запросу особо тормозить и негде. Может проблема, всё же, где-то в другом месте?
|
|||
31
Reaper_1c
08.02.15
✎
01:50
|
итоги рассчитай...
|
|||
32
Reaper_1c
08.02.15
✎
01:50
|
точнее пересчитай. Нужно сделать пересчет итогов по регистру бухгалтерии.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |