Имя: Пароль:
1C
1С v8
Оптимизация запроса 1С
0 bfss-732
 
04.06.20
14:16
Всем привет!
В параметре регистра бухгалтерии есть условие, как думаете как можно оптимизировать:

Организация = &Организация
    И (СчетДт В ИЕРАРХИИ (&СчетГруппа)
            И СубконтоДт1 В
                (ВЫБРАТЬ
                    ВТ_Контрагенты.Контрагент
                ИЗ
                    ВТ_Контрагенты)
        ИЛИ СчетКт В ИЕРАРХИИ (&СчетГруппа)
            И СубконтоКт1 В
                (ВЫБРАТЬ
                    ВТ_Контрагенты.Контрагент
                ИЗ
                    ВТ_Контрагенты))
1 Dmitry1c
 
04.06.20
14:16
Сделать объединение ВЫБРАТЬ ОБЪЕДИНИТЬ ВЫБРАТЬ вместо ИЛИ
2 bfss-732
 
04.06.20
14:18
(1) это как?
3 Волшебник
 
модератор
04.06.20
14:19
(1) Лучше ОБЪЕДИНИТЬ ВСЕ, а то потом начинается...
4 Dmitry1c
 
04.06.20
14:20
(2) это на 2й курс вуза ИТ, предмет "Базы данных"
5 ИУБиПовиц
 
04.06.20
14:21
Можно еще попробовать в иерархии, заменить на в списке, а в список зафигачить все что входит в группу счетов
6 RomanYS
 
04.06.20
14:25
(0) а что за виртуальная таблица РБ, где условия на счета вместе с другими условиями? Вроде там везде отдельные параметры для условий на счета
7 bfss-732
 
04.06.20
14:29
(6) Налоговый
8 bfss-732
 
04.06.20
14:30
Вот и я читаю:
2.1. При обращении к виртуальной таблице следует передавать в условия наиболее простые конструкции, например, “Измерение = Значение”. Не рекомендуется использовать подзапросы и соединения(*) в параметрах виртуальной таблицы, так как это приводит к медленной работе запроса.
9 ASU_Diamond
 
04.06.20
14:32
(8) делаешь 2 запроса с простым условием и объединяешь их результаты.
10 RomanYS
 
04.06.20
14:35
(7) Вопрос какая виртуальная таблица, а не какой регистр.
Нужно просто выбрать правильную ВТ и твоё условие станет предельно простым
Организация = &Организация
    И Счет В ИЕРАРХИИ (&СчетГруппа)
    И Субконто1 В
                (ВЫБРАТЬ
                    ВТ_Контрагенты.Контрагент
                ИЗ
                    ВТ_Контрагенты)
11 RomanYS
 
04.06.20
14:36
+(10) покажи запрос полностью или опиши конечную цель
12 RomanYS
 
04.06.20
14:43
(0)параметр ВидыСубконто задан у ВТ?
Он может гораздо больше влиять на производительность чем остальное
13 bfss-732
 
04.06.20
14:59
(11) показать движения по счету из группы 68 Налоги и сборы для контрагентов, по которым осуществлялись закупки в EUR
14 RomanYS
 
04.06.20
15:06
(13) 68 - это расчеты с бюджетом. Откуда там контрагенты и расчеты в валюте?
Речь про НДС налогового агента или что?
15 bfss-732
 
04.06.20
15:24
(14) да
16 RomanYS
 
04.06.20
16:18
(15) бери таблицу оборотов и условие как в (10). Только условие на счет отдельно в соответствующий параметр.
Обязательно явно указать вид субконто.
"В ИЕРАРХИИ" заменить на "=", субсчёт же у тебя один
17 bfss-732
 
14.07.20
22:58
(16) два субсчета
18 Ёпрст
 
14.07.20
23:19
(0) план вы инднксполнения запроса то погляди, для начала. Если очень надо, создай свой покрывающий индекс для этого запроса
19 vi0
 
15.07.20
02:51
(5) такие вещи часто сама платформа делает
Это видно в плане запроса