Имя: Пароль:
1C
1С v8
Оптимизировать запрос
,
0 Gangar
 
10.06.15
12:00
Доброго дня, уважаемые!

Есть задумка, выполнять перед проведением уже проведённого документа контроль за изменением или удалением реквизитов.

Есть запрос:

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

СГРУППИРОВАТЬ ПО
    ПеремещениеЗапасовЗапасы.Номенклатура,
    ПеремещениеЗапасовЗапасы.Характеристика,
    ПеремещениеЗапасовЗапасы.Ссылка.ОрганизацияПолучатель,
    ПеремещениеЗапасовЗапасы.Ссылка.СтруктурнаяЕдиницаПолучатель
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЗапасыОбороты.Номенклатура КАК Номенклатура,
    ЗапасыОбороты.Характеристика КАК Характеристика,
    ЗапасыОбороты.КоличествоРасход КАК Расход,
    ЗапасыОбороты.Организация КАК Организация,
    ЗапасыОбороты.Регистратор КАК Регистратор,
    ЗапасыОбороты.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
    ЕСТЬNULL(ДокТЧ.Количество, 0) КАК Количество
ИЗ
    РегистрНакопления.Запасы.Обороты(, &ТочкаКонтроля, Авто, Партия = &Партия) КАК ЗапасыОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ ДокТЧ КАК ДокТЧ
        ПО ЗапасыОбороты.Номенклатура = ДокТЧ.Номенклатура
            И ЗапасыОбороты.Характеристика = ДокТЧ.Характеристика
ГДЕ
    (ЕСТЬNULL(ДокТЧ.Количество, 0) - ЗапасыОбороты.КоличествоРасход < 0
            ИЛИ НЕ ЗапасыОбороты.СтруктурнаяЕдиница = ДокТЧ.СтруктурнаяЕдиница
            ИЛИ НЕ ЗапасыОбороты.Организация = ДокТЧ.Организация)

СГРУППИРОВАТЬ ПО
    ЗапасыОбороты.Номенклатура,
    ЗапасыОбороты.Характеристика,
    ЗапасыОбороты.Регистратор,
    ЗапасыОбороты.Организация,
    ЗапасыОбороты.СтруктурнаяЕдиница,
    ЗапасыОбороты.КоличествоРасход,
    ДокТЧ.Количество
ИТОГИ
    СУММА(Расход),
    СУММА(Количество)
ПО
    Номенклатура
АВТОУПОРЯДОЧИВАНИЕ

Беда в том, что запрос долго выполняется.
Как можно ускорить и оптимизировать данный костыль?
1 ДенисЧ
 
10.06.15
12:01
я ни слова не скажу про параметры виртуальной таблицы...
2 SeraFim
 
10.06.15
12:04
(1) и про индексирование никому ничего не говори)
3 Ёпрст
 
10.06.15
12:16
И... зачем там ИТОГИ ?..
4 vicof
 
10.06.15
12:17
5 Fragster
 
гуру
10.06.15
12:17
обороты за весь период?
6 Gangar
 
10.06.15
12:29
(5) с неизвестной даты (оператор изменил дату в документе) по текущую дату.
(3) что бы в выборке сразу проверить не изменили ли количество в документе на меньшее
7 Ёпрст
 
10.06.15
12:35
(5) ну а чо ?
Не на счетах же считать :)
8 fisher
 
10.06.15
12:39
Не понял, какое отношение к контролю изменений реквизитов документа имеет регистр накопления.
9 Лефмихалыч
 
10.06.15
12:54
1. Маленькая таблица должна быть слева от соединения
2. Ограничь результат виртуальной таблицы путем использования отборов виртуальной таблицы
3. Если хочешь контролировать изменения реквизитов, то соединять надо с табличной частью из объекта проводимого документа, а не с регистром
10 ILM
 
гуру
10.06.15
12:55
Меня ждет обеспеченная старость, буду вот такой код исправлять и такие запросы оптимизировать.
11 fisher
 
10.06.15
12:58
(10) Твои представления об обеспеченной старости похожи на мои об аде для одинэсников.
12 ILM
 
гуру
10.06.15
13:05
(11) Это если программировать не любишь)))
13 AlexITGround_
серый
 
10.06.15
13:17
(0) Полоска длинная, а такие "шедевры" пишешь. Достоин ответа в (4).
AdBlock убивает бесплатный контент. 1Сергей