Имя: Пароль:
1C
 
Оптимизация запроса
,
0 Масянька
 
15.03.21
15:28
День добрый!
УПП 8.1.0.17.
Есть отчет, который долго формируется. Проблема в этом запросе:

ВЫБРАТЬ
    Рег.Регистратор,
    Рег.Период КАК Период,
    СУММА(Рег.ВалютнаяСуммаДт) КАК ВалютнаяСуммаДт,
    СУММА(Рег.Сумма) КАК Сумма
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(, , Субконто1 = &Счет, , ) КАК Рег

СГРУППИРОВАТЬ ПО
    Рег.Регистратор,
    Рег.Период

УПОРЯДОЧИТЬ ПО
    Период

Смысл: выводится оплата по заданному счету.
Как я понимаю, проблема в том, что не задается период.
Есть ли вариант ускорить?
Спасибо.
1 Ёпрст
 
15.03.21
15:34
(0) сними режим совместимости и табличка ДвиженияССубконто заместо виртуальной, станет реальной.
И запрос, даже, неоптимальный..полетит
2 Ёпрст
 
15.03.21
15:35
начиная 15 релиза, при снятом режиме совместимости, так точно. На более ранних не помню, в 13 точно нет еще
3 mistеr
 
15.03.21
15:35
(0) 1. Вместо ДвиженияССубконто использовать ОборотыДтКт
2. Период задать и счета.
4 Classic
 
15.03.21
15:36
(0)
Зечм в данном запросе ДвиженияССубконто?
5 Classic
 
15.03.21
15:37
(3)+1
6 Масянька
 
15.03.21
15:41
(3) Какой период задавать? Вся оплата по счету (счет - основание).
7 Масянька
 
15.03.21
15:41
(4) Я не могу сказать - писано до меня.
8 Масянька
 
15.03.21
15:43
(2) Стоит "Режим совместимости = Версия 8.2.13".
9 DrShad
 
15.03.21
15:45
в УПП для этого есть регистры взаиморасчетов по документам
10 Ёпрст
 
15.03.21
15:45
(8) ну, на копии выстави 15, хотя бы Только, если база большая, то штатной реструктуризации можешь и не дождаться, нужно реструктуризировать через v2
11 Ёпрст
 
15.03.21
15:46
(9) Могли ручной операцией бахнуть или еще как, чего не будет в рег.накопления
12 Ёпрст
 
15.03.21
15:46
да и хз, как там учет ведут
13 DrShad
 
15.03.21
15:47
(11) вопрос не восстановлению учета )))
14 rsv
 
15.03.21
15:47
(0) субконто по всем счетам лопатит ... укажите еще счет или  список счетов .
Всяко быстрее.
15 fisher
 
15.03.21
15:47
(6) Из здравого смысла. От даты счета до максимального срока, в какие оплачиваются счета в нормальных ситуациях в конторе, например. Можно попробовать просто от даты счета по текущую. Условие на счета тоже может помочь.
16 Масянька
 
15.03.21
15:49
(9) Пустой. А оплата есть.
17 Ёпрст
 
15.03.21
15:50
(16) оплата каким документом ? Какие движения у этого дока ?
18 Ёпрст
 
15.03.21
15:50
ну и ..там же есть учитывать по док.расчетам или нет
19 Масянька
 
15.03.21
15:54
Щас период попробую.
20 mistеr
 
15.03.21
15:55
(3) + 3) выводить общую сумму, а детализацию по документам — в расшифровке.
21 Масянька
 
15.03.21
16:01
Спасибо!
Даты хватит.
22 Энштейн 1С
 
15.03.21
16:07
(21) Осторожно поэкспериментируй с индексами
23 Dmitrii
 
гуру
15.03.21
16:10
(0) Отсутствие периода в запросе - первая проблема. Запрос выбирает из всей таблицы регистра.
Вторая проблема - неоптимальное использование виртуальной таблицы.
Возможно, в вашем случае (если реально нужны данные без ограничения периода) оптимальнее сделать запрос к реальным (физическим) таблицам, а не к виртуальным.


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

СГРУППИРОВАТЬ ПО
    Хозрасчетный.Регистратор,
    Хозрасчетный.Период


Внимание! Данный пример запроса берёт все дебетовые обороты по расчетному счет (значение параметра &Счет). Вне зависимости от того каким субконто это значение указано - первым, вторым или третьим.
24 Масянька
 
15.03.21
16:13
(22) (23) Вам тоже спасибо.
Бухов очень устроило после задания периода.