Имя: Пароль:
1C
1С v8
Оптимизация ДС
,
0 Jokerman
 
10.09.12
17:10
В форме списка есть ДС с произвольным запросом:

ВЫБРАТЬ
   ДокументСчетДоговор.Ссылка,
   ДокументСчетДоговор.Номер,
   ДокументСчетДоговор.Дата,
   ДокументСчетДоговор.ЦентрУчета,
   ДокументСчетДоговор.Контрагент,
   ДокументСчетДоговор.Договор,
   ДокументСчетДоговор.ДоговорДистрибьюторский,
   ДокументСчетДоговор.ПроцентПредоплаты,
   ДокументСчетДоговор.СкладОтгрузки,
   ДокументСчетДоговор.Комментарий,
   ДокументСчетДоговор.Ответственный,
   ДокументСчетДоговор.СуммаДоговора,
   Оплата.СуммаОборотДт КАК Оплата,
   Отгрузка.СуммаОборотДт КАК Отгрузка,
   Оплата.СуммаОборотДт - Отгрузка.СуммаОборотДт КАК Остаток
ИЗ
   Документ.СчетДоговор КАК ДокументСчетДоговор
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(&НачДата, &КонДата, , Счет В ИЕРАРХИИ (&РасчетныеСчета), , Организация = &Организация, КорСчет В ИЕРАРХИИ (&СчетаКонтрагентов), ) КАК Оплата
       ПО ДокументСчетДоговор.Контрагент = Оплата.КорСубконто1
           И ДокументСчетДоговор.Договор = Оплата.КорСубконто2
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(&НачДата, &КонДата, , Счет В ИЕРАРХИИ (&СчетаКонтрагентов), , Организация = &Организация, КорСчет В ИЕРАРХИИ (&СчетаДоходов), ) КАК Отгрузка
       ПО ДокументСчетДоговор.Контрагент = Отгрузка.Субконто1
           И ДокументСчетДоговор.Договор = Отгрузка.Субконто2

Тормозит очень прилично при открытии или прокручивании списка. Я не могу понять как выполняется запрос, данные из регистра бухгалтерии подгружаются только для отображенных документов? Если да, то почему медленно так отображается, если нет то как сделать, чтобы только по отображаемым. Галка "Динамическое считывание данных стоит".
1 H A D G E H O G s
 
10.09.12
17:12
Не пишите так.
2 Jokerman
 
10.09.12
17:13
Основная Таблица указана - Таблица документа
3 Jokerman
 
10.09.12
17:13
(1) Позвольте угадать - много связей?
4 H A D G E H O G s
 
10.09.12
17:14
(3) Оборотная таблица без фильтров по коррсчету (контрагент, договор)
5 Lexusss
 
10.09.12
17:14
SQL?
6 H A D G E H O G s
 
10.09.12
17:15
Ну и можно извратиться и уйти от 2 таблиц оборотов к одной
7 H A D G E H O G s
 
10.09.12
17:16
КорСчет В ИЕРАРХИИ (&СчетаКонтрагентов) заменить на
КорСчет В (&СчетаКонтрагентовПолностью)
8 H A D G E H O G s
 
10.09.12
17:16
Пишите в 1С, требуйте ВТ в ДС.
9 Jokerman
 
10.09.12
17:19
(7) Не понял смысл, у меня любой субсчет может быть
(8) Слышал, что можно использовать, даже показали, но прикрутить не смог(это в не этом случае)
10 Jokerman
 
10.09.12
17:20
(5) Да, но сейчас тестирую в ФС
11 rphosts
 
10.09.12
17:26
замена "В Иерархии" на "В" уже должна дать выхлоп но конечно не фантастичекий
12 rphosts
 
10.09.12
17:26
период для запроса какой? если не кратен месяцу - будут тормоза
13 Jokerman
 
10.09.12
17:29
Забавно убрал "Динамическое считывание данных" - скорость прилично взлетела !!! Хех ..
14 H A D G E H O G s
 
10.09.12
17:40
(9) Можно, но не как Основную таблицу
15 H A D G E H O G s
 
10.09.12
17:41
(13) Потому что у тебя 1 раз считается Оборот.
16 H A D G E H O G s
 
10.09.12
17:42
А при динамическом - как прокручиваешь и каждый прокрут Оборот считается, без фильтра по Контрагенту и Договору
17 Lexusss
 
10.09.12
17:44
(10) Поставь на SQL и возрадуйся! Движок файловой базы игнорирует индексы, если фильтр накладывается более, чем по одному значению поля. Без этого работать указанная конструкция не будет
18 Lexusss
 
10.09.12
17:44
И верни дин считывание
19 Jokerman
 
10.09.12
17:49
(15) меня это больше устроит, поставлю лучше кнопу "обновить", т.к. так раньше было в обычной форме. (16) спасибо вы ответили на мой вопрос, значит запрос по оборотам по всему списку делается, тока зачем? Отбразил порцию документов, выполнил запрос по выведенной порции и вывел (это я типа умный, так себе представляю)!
20 Jokerman
 
10.09.12
17:49
(18) спасибо будем отпробывать!
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn