Имя: Пароль:
1C
1С v8
Запрос работает слишком медленно
🠗 (Волшебник 21.11.2017 17:31)
0 mariakw
 
21.11.17
17:29
Добрый день.
Для отчета на скд написан запрос, но выполняется он долго.
Посмотрите, пожалуйста, что можно улучшить и оптимизировать в нем? Заранее спасибо за помощь)

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Отбор.Свойство КАК ИмяОтбор,
    Отбор.Значение КАК ЗначениеОтбор,
    Горизонталь.Свойство КАК ИмяГоризонталь,
    Горизонталь.Значение КАК ЗначениеГоризонталь,
    ВЫБОР
        КОГДА Отбор.Объект.Владелец ЕСТЬ NULL
            ТОГДА Горизонталь.Объект.Владелец
        ИНАЧЕ Отбор.Объект.Владелец
    КОНЕЦ КАК НоменклатураОГ,
    ВЫБОР
        КОГДА Отбор.Объект ЕСТЬ NULL
            ТОГДА Горизонталь.Объект
        ИНАЧЕ Отбор.Объект
    КОНЕЦ КАК ВсеХарактеристикиОГ
ПОМЕСТИТЬ ОтборГоризонт
ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК Горизонталь
        ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК Отбор
        ПО Горизонталь.Объект = Отбор.Объект
            И Горизонталь.Объект.Владелец = Отбор.Объект.Владелец
ГДЕ
    Горизонталь.Свойство = &Горизонталь
    И Отбор.Свойство = &Отбор
    И Горизонталь.Объект.Ссылка ССЫЛКА Справочник.ХарактеристикиНоменклатуры
    И Отбор.Объект.Ссылка ССЫЛКА Справочник.ХарактеристикиНоменклатуры
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ЗначенияСвойствОбъектов.Свойство КАК ИмяДоп,
    ЗначенияСвойствОбъектов.Значение КАК ЗначениеДоп,
    ЗначенияСвойствОбъектов.Объект КАК ВсеХарактеристикиДоп,
    ЗначенияСвойствОбъектов.Объект.Владелец КАК НоменклатураДоп
ПОМЕСТИТЬ Доп
ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
    ЗначенияСвойствОбъектов.Свойство = &Доп
    И ЗначенияСвойствОбъектов.Объект.Ссылка ССЫЛКА Справочник.ХарактеристикиНоменклатуры
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВЫБОР
        КОГДА ОтборГоризонт.НоменклатураОГ ЕСТЬ NULL
            ТОГДА Вертикаль.НоменклатураВертикаль
        ИНАЧЕ ОтборГоризонт.НоменклатураОГ
    КОНЕЦ КАК Номенклатура,
    ВЫРАЗИТЬ(Вертикаль.НоменклатураВертикаль.НаименованиеПолное КАК СТРОКА(100)) КАК ПолноеНаименование,
    ВЫБОР
        КОГДА ОтборГоризонт.ВсеХарактеристикиОГ ЕСТЬ NULL
            ТОГДА Вертикаль.ВсеХарактеристикиВертикаль
        ИНАЧЕ ОтборГоризонт.ВсеХарактеристикиОГ
    КОНЕЦ КАК ВсеХарактеристики,
    ОтборГоризонт.ИмяОтбор,
    ОтборГоризонт.ЗначениеОтбор КАК ЗначениеОтбор,
    Вертикаль.ИмяВертикаль,
    Вертикаль.ЗначениеВертикаль КАК ЗначениеВертикаль,
    ОтборГоризонт.ИмяГоризонталь,
    ОтборГоризонт.ЗначениеГоризонталь КАК ЗначениеГоризонталь,
    Вертикаль.Остаток,
    Вертикаль.Изменение,
    Доп.ЗначениеДоп
ИЗ
    Вертикаль КАК Вертикаль
        ПОЛНОЕ СОЕДИНЕНИЕ Доп КАК Доп
        ПО Вертикаль.НоменклатураВертикаль = Доп.НоменклатураДоп
            И Вертикаль.ВсеХарактеристикиВертикаль = Доп.ВсеХарактеристикиДоп
        ПОЛНОЕ СОЕДИНЕНИЕ ОтборГоризонт КАК ОтборГоризонт
        ПО Вертикаль.ВсеХарактеристикиВертикаль = ОтборГоризонт.ВсеХарактеристикиОГ
            И Вертикаль.НоменклатураВертикаль = ОтборГоризонт.НоменклатураОГ";
1 Волшебник
 
модератор
21.11.17
17:32
тормозит ПОЛНОЕ СОЕДИНЕНИЕ
2 Волшебник
 
модератор
21.11.17
17:32
ещё тормозит вот это
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , , ,
3 mariakw
 
21.11.17
17:34
(2) в запросе параметры даты не заданы, но запрос используется в отчете на скд, и там параметры проставляются. Данные запрашиваются за текущий месяц только.
4 Lolipop
 
21.11.17
17:38
(3) Не понял. Так параметр в виртуальный регистр не передается.
5 Lolipop
 
21.11.17
17:39
(3) Отбираются все данные по идее, а потом уже из всех данных СКД фильтрует их
6 Lolipop
 
21.11.17
17:39
Я бы еще объекты проиндексировал
7 AlvlSpb
 
21.11.17
20:02
(5) С чего такой вывод? Как раз наоборот, обязательно вывести параметры даты в вирт таблицу