![]() |
|
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 список договоров по контрагенту. Договор = Регистр.Покупатели.Договор; и фильтр по договорам сделать |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |