Имя: Пароль:
1C
1С v8
Ускорение запроса к оборотке
0 kosvi
 
31.01.14
01:33
Доброго времени суток!

У нас нужно считать дебиторку по всем клиентам кроме 'своих'.
Своих я отбросил через оператор ГДЕ

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

Работать стало намного медленней.  

К сожалению, я не эксперт в SQL. Несмотря на это подскажите, плз, как можно оптимизировать запрос

Спасибо!
1 aka MIK
 
31.01.14
01:46
Выделяй своих во временную таблицу, индексируй по контрагенту и потом запрос объединяй с ВТ (только без иерархии)
2 GROOVY
 
31.01.14
01:46
Теперь типизируй субконто и установи отбор по субконто в парамерах врт.таблицы.
3 aka MIK
 
31.01.14
01:51
ВЫБРАТЬ
    Контрагенты.Ссылка КАК Ссылка
ПОМЕСТИТЬ СвоиКонтрагенты
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.Ссылка В ИЕРАРХИИ(&Ссылка)

ИНДЕКСИРОВАТЬ ПО
    Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ХозрасчетныйОбороты.СуммаОборот
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(
            &НачДата,
            &КонДата,
            Период,
            Счет = &Счет,
            ,
            Субконто1 В
                (ВЫБРАТЬ
                    СвоиКонтрагенты.Ссылка
                ИЗ
                    СвоиКонтрагенты КАК СвоиКонтрагенты),
            ,
            ) КАК ХозрасчетныйОбороты
4 hhhh
 
31.01.14
01:59
(0) вот так если

ГДЕ
|    ХозрасчетныйОбороты.Субконто1  НЕ В ИЕРАРХИИ (&Субконто1)


за .Ссылка руки нужно по самые плечи отрубать.
Основная теорема систематики: Новые системы плодят новые проблемы.