Форум "1с" (архив)
"Наш" Си для бухгалтеров
1С - Оптимизация запросов по быстродействиюКто-то когда-то занимался этим делом? Может быть есть ссылки, или любые наводки на подобную информацию? Запрос - на выборку информации о движении регистра остатков, подобного типа: ТекстЗапроса = "Буду благодарен за советы ;)
|
|
#1 сишник 23.06.03 17:05:54
дак запрос и так прост, ИМХО, оптимизировать ничего не получиться - и так классический СКЛ. |
|
#2
Кошастый
© 24.06.03 09:19:46
Дык, это и так понятно... просто в 1С-е много тонкостей, которые бывают совсем неочевидны, но до жути влияют на скорость выполнения. Вот я и думаю, может кто подскажет.. |
|
> Кошастый © 24.06.2003 10:19:00 ИМХО, реально оптимизировать можно в там, где есть много агрегатных функций и подзапросов. |
|
#4
Кошастый
© 02.07.03 16:17:44
Дипыч, я просто протащился от лингвистической конструкции "в там" ;))) |
|
это я по ходу соптимизировал предложение(изначально оно должно было быть подлиннее), а бекспейс забыл пару раз жать |
|
#6 Леший © 04.08.03 20:11:54
Оптимизацией приходится заниматься очень часто: сначала пишу отчет под конкретную конфигурацию (а встречаются очень разные) чтоб реализовать фунциональность отчета (по ТЗ), а потом оптимизирую по быстродействию. Но со временем стал писать отчеты, которые редко можно оптимизировать по быстродействию, разве только по функциональности (опыт кое-какой уже есть). По тексту запроса: Как я понял, это несколько измененный текст запроса из АБТ-шки (отчет "Текущие резервы"). Видимо, запрос призван вывести счета на дату (период тут не уместен, так как начальные остатки нигде не используются) по которым зарезервирован товар (указанный в реквизите "Тов") для контрагентов, перед которыми числится долг по выписанному счету на дату отчета(то бишь если по данному оплаченному счету произошла отгрузка товара на дату отчета, то переменная "ОплКол" должна быть равна нулю). Если задача именно такая, то запрос построен не верно. Выражение: "Регистр.Взаиморасчеты.Остаток(Счет.клиент, Счет, СуммаОсн"") > 0" проверяет остаток по регистру "Взаиморасчеты" на точку актуальности (ТА), а дата "ДатаПо" может быть почти произвольной ("ДатаПо" не может быть больше ТА). Это значит, что если отчет формируется на 01.08.2003г., а ТА равна сегодня, то в переменную "ОплКол" попадут значения зарезервированного товара по счетам которые оплачены не по состоянию на 01.08.2003, а на сегодняшний день. Кстати, при условии "Товар=Тов" выполненный зпрос будет пустым, если реквизит (поле ввода, список ввода) не заполнен. Чаще используется оператор "в" - "Условие(Товар в Тов)", в этом случае если реквизит "Тов" пустой, то запрос выполнится по всем товарам. Чтоб решить задачу придется выполнять два запроса. Реализовать это можно так (результаты запросов записываются в таблицу значений): Процедура Сформировать()Такая процедура выполнятся, несомненно дольше, чем приведенный текст запроса. Если задача состоит в ином, например, в формировании запроса исключительно на ТА, тогда действительно запрос можно оптимизировать по быстродействию: Процедура Сформировать()Запрос работает только с актуальными данными, а не обрабатывает заданный период (как в исходном тексте запроса). |
|
#7
Раби Ламерович
20.02.04 15:47:14
Господа хорошие, научите где бы бедному раввину найти достойный источник или пособие по запросам в 1С? Мир вашим винтам и мамам! |
|
> >Мир вашим винтам и мамам! а болтам? |
|
#9 Mim 18.01.05 10:52:31
вот это посмотрите |
Тема находится в архиве
Написать ответ |
|
