|
v7: Обработка итогов на:.... зависает на долго |
☑ |
0
serpentt
20.06.22
✎
09:14
|
Здравствуйте, база SQL. Запрос простой 1Совский(черный)
ПЕРИОД С НачДата По КонДата;
Фирма = Регистр.Покупатели.Фирма;
ДоговорВладелец = Регистр.Покупатели.Договор.Владелец;
я_ТипУчета = Регистр.Покупатели.я_ТипУчета;
Себестоимость = Регистр.Покупатели.Себестоимость;
СуммаВал = Регистр.Покупатели.СуммаВал;
Группировка Фирма;
Группировка ДоговорВладелец Без Групп;
Группировка я_ТипУчета;
Группировка Документ;
Функция НачОстСебестоимость = НачОст(Себестоимость);
Функция ПриходСебестоимость = Приход(Себестоимость);
Функция РасходСебестоимость = Расход(Себестоимость);
Функция КонОстСуммаВал = КонОст(СуммаВал);
Функция КонОстСебестоимость = КонОст(Себестоимость);
Условие (ДоговорВладелец = Фильтр1);
Условие (Фирма = Фильтр2);
Если строить запрос на даты с окрнчанием ТочкаАктуальности... то отчет строится быстро(поясняю)
ТА 20-06-22
Периоды НачДата = Любаядата и КонДата = ТА.... ВСЕ ок
но если делать запрос с ДатаКонца меньше ТА, то запрос уходит в долгое плавание и в строке состояния висит сообщение "Обработка итогов на: "
Куда подсмотреть? почему именно так происходит.
Прямые запросы на 1С++ строятся без проблем.
|
|
1
Builder
20.06.22
✎
09:32
|
(0) Это норма :)
Итоги хранятся на определенный период, как правило месяц.
На остальные даты рассчитываются = Начост + Приход - Расход.
Если регистр не закрыт или неправильно сделан или много движений - так и будет.
|
|
2
serpentt
20.06.22
✎
09:35
|
(1) Спасибо, буду дальше разбираться.
|
|
3
Злопчинский
20.06.22
✎
10:13
|
С учётом измерения я-типучета вангую что регистр таки не закрыт...
|
|
4
Харлампий Дымба
20.06.22
✎
22:43
|
С учётом знака "равно" в условиях
Условие (ДоговорВладелец = Фильтр1);
Условие (Фирма = Фильтр2);
видно, что
Группировка Фирма;
Группировка ДоговорВладелец Без Групп;
явно лишнее. А это уже серьёзное ускорение.
Не большой знаток ОУ, но думаю, что КонОст(Себестоимость) можно в запросе не считать, так как всё-равно для Группировки "Документ" НачОст() и КонОст() не определены и их придётся считать вручную по приходу и расходу документа, а также начальному остатку от группировки я_ТипУчета. Так что тут можно уже в момент обхода итогов посчитать КонОст = Начост + Приход - Расход.
|
|
5
uno-group
21.06.22
✎
10:51
|
Если дата = концу периода то тоже должно быстро считаться.
можно попробовать Фильтр1 перед выполением запроса обработать и загнать в фильтр2 список договоров по контрагенту.
Договор = Регистр.Покупатели.Договор;
и фильтр по договорам сделать
|
|