|
долго проводиться возврат от покупателя в ут 10.3 | ☑ | ||
---|---|---|---|---|
0
rinaty17
05.06.14
✎
15:38
|
Добрый день форумчане!)
после поисков нашел запрос который долго отрабатывает, который находиться в общем модуле УчетНДС.СформироватьДвиженияПоНДС() код: ИначеЕсли ЭтоВозвратОтПокупателя тогда ЗапросРасходныхОрдеров = Новый Запрос; ЗапросРасходныхОрдеров.Текст = "ВЫБРАТЬ | ВЫБОР | КОГДА ПартииТоваровНаСкладах.ДокументДвижения <> НЕОПРЕДЕЛЕНО | ТОГДА ПартииТоваровНаСкладах.ДокументДвижения | ИНАЧЕ ПартииТоваровНаСкладах.Регистратор | КОНЕЦ КАК Регистратор, | ВЫБОР | КОГДА ПартииТоваровНаСкладах.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары | ТОГДА ПартииТоваровНаСкладах.Регистратор | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ КАК РасходныйОрдерНаТовары |ИЗ | РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах |ГДЕ | ПартииТоваровНаСкладах.ВидДвижения = &ВидДвиженияРасход | И ПартииТоваровНаСкладах.КодОперации В(&КодыСписание) | И (ПартииТоваровНаСкладах.Регистратор В (&МассивРегистраторов) | ИЛИ ПартииТоваровНаСкладах.ДокументДвижения В (&МассивРегистраторов)) | И ПартииТоваровНаСкладах.Период < &Период | |СГРУППИРОВАТЬ ПО | ВЫБОР | КОГДА ПартииТоваровНаСкладах.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары | ТОГДА ПартииТоваровНаСкладах.Регистратор | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ, | ВЫБОР | КОГДА ПартииТоваровНаСкладах.ДокументДвижения <> НЕОПРЕДЕЛЕНО | ТОГДА ПартииТоваровНаСкладах.ДокументДвижения | ИНАЧЕ ПартииТоваровНаСкладах.Регистратор | КОНЕЦ |ИТОГИ ПО | Регистратор"; МассивРеализация = Новый Массив; КодыОпераций = Перечисления.КодыОперацийПартииТоваров; МассивРеализация.Добавить(КодыОпераций.ПередачаТарыКонтрагенту); МассивРеализация.Добавить(КодыОпераций.Реализация); МассивРеализация.Добавить(КодыОпераций.РеализацияКомиссия); МассивРеализация.Добавить(КодыОпераций.РеализацияРозница); ЗапросРасходныхОрдеров.УстановитьПараметр("КодыСписание",МассивРеализация); МассивРегистраторов = ТаблицаСписания.ВыгрузитьКолонку("ДокументПередачи"); ЗапросРасходныхОрдеров.УстановитьПараметр("МассивРегистраторов",МассивРегистраторов); // Возврат не может быть раньше реализации ЗапросРасходныхОрдеров.УстановитьПараметр("Период",СтруктураПараметров.Период); ЗапросРасходныхОрдеров.УстановитьПараметр("ВидДвиженияРасход",ВидДвиженияНакопления.Расход); ДеревоРасходныхОрдеров = ЗапросРасходныхОрдеров.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); СтруктураПараметров.Вставить("ДеревоРасходныхОрдеров",ДеревоРасходныхОрдеров); РаспределеннаяТаблицаСписания = РаспределитьПартииПоТаблицеСписания(ТаблицаПартий, ТаблицаСписания, СтруктураШапкиДокумента, СтруктураПараметров); УчетНДСФормированиеДвижений.ДвиженияВозвратаТоваровОтПокупателяПоРегистрамПодсистемыНДС(СтруктураШапкиДокумента, СтруктураПараметров, РаспределеннаяТаблицаСписания, Отказ, Заголовок); Возврат; |
|||
1
Fragster
гуру
05.06.14
✎
15:39
|
тормозит вот это:
| И (ПартииТоваровНаСкладах.Регистратор В (&МассивРегистраторов) | ИЛИ ПартииТоваровНаСкладах.ДокументДвижения В (&МассивРегистраторов)) замени на объединение с каждым условием по отдельности |
|||
2
Fragster
гуру
05.06.14
✎
15:40
|
причем не "Объединить все", а просто "объединить"
|
|||
3
rinaty17
05.06.14
✎
15:40
|
МассивРегистраторов содержит 1 строку со значением неопределено, и из - за этого запрос мне возвращает все документы где ПартииТоваровНаСкладах.ДокументДвижения = неопределено, а это все реализации за весь период
|
|||
4
Fragster
гуру
05.06.14
✎
15:42
|
(3) ну типа автоподбор партии, все дела...
|
|||
5
vis_tmp
05.06.14
✎
15:43
|
Там не ограничен список номенклатур.
Сделай это и будет быстро. |
|||
6
Fragster
гуру
05.06.14
✎
15:46
|
(5) вообще да, странно, что не ограинчили. может это допиленный кусок какой-то?
|
|||
7
Fragster
гуру
05.06.14
✎
15:47
|
я просто как вижу "ИЛИ" по разным полям рядом со словами "тормозит" "долго" или "медленно", сразу на него думаю
|
|||
8
Fragster
гуру
05.06.14
✎
15:47
|
(7)+ остальное пропускаю на автомате
|
|||
9
rinaty17
05.06.14
✎
15:48
|
(6) я тоже думал что модуль допиленный, сравнил с стандартной последнего обновления модуль 1 в 1
|
|||
10
rinaty17
05.06.14
✎
15:49
|
клиент не пользуется документом РасходныйОрдерНаТовары, и не будет пользоваться, может тогда лучше сразу вернуть с запроса неопределено?
|
|||
11
vis_tmp
05.06.14
✎
16:06
|
(6) Нет, это типовой.
Я на форуме 1С спрашивал, разработчик признавал. Там добавить 3 строки буквально. |
|||
12
rinaty17
05.06.14
✎
16:13
|
(11)если объемы базы небольшие то да поможет, в моем случае особого ускорения не дал, документов очень много
|
|||
13
vis_tmp
05.06.14
✎
16:47
|
(12) У меня именно на больших базах этот тормоз исчез после добавления условия на товары.
|
|||
14
vis_tmp
05.06.14
✎
16:47
|
(12) А ты как сделал?
|
|||
15
rinaty17
05.06.14
✎
17:02
|
(14)
в условии где добавил строку | И ПартииТоваровНаСкладах.Номенклатура В(&Номенклатура) и параметр ЗапросРасходныхОрдеров.УстановитьПараметр("Номенклатура",ТаблицаСписания.ВыгрузитьКолонку("Номенклатура")); |
|||
16
vis_tmp
06.06.14
✎
06:24
|
(15) Да, аналогично.
А в "МассивРегистраторов" у тебя что ? |
|||
17
rinaty17
06.06.14
✎
09:21
|
(16) МассивРегистраторов содержит 1 строку со значением неопределено, и из - за этого запрос мне возвращает все документы где ПартииТоваровНаСкладах.ДокументДвижения = неопределено, а это все реализации за весь период около 700000 док.
|
|||
18
vis_tmp
10.06.14
✎
12:32
|
Ну как, добился чего-нибудь?
|
|||
19
rinaty17
11.06.14
✎
11:47
|
(18) так как клиент не работает с расходными ордерами на товары, поставил условие если МассивРегистраторов содержит 1 строку со значением неопределено тогда не вычисляет запрос а возвращет непределено, иначе по стандартному пути
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |