Имя: Пароль:
1C
1С v8
Оптимизация запроса
,
0 SRM1C
 
09.04.17
13:06
привет.
Есть документ, в нем в ТЧ список номенклатуры к списанию, регистр с остатками номенклатуры, написал запрос, т.к запросы писал мало, не уверен в его правильности, прошу указать ошибки, недочеты.

ВЫБРАТЬ
        ВозвратМатериаловИзЭксплуатацииМатериалы.Ссылка.ПодразделениеОрганизации,
        ВозвратМатериаловИзЭксплуатацииМатериалы.Номенклатура,
        ВозвратМатериаловИзЭксплуатацииМатериалы.ХарактеристикаНоменклатуры,
        ВозвратМатериаловИзЭксплуатацииМатериалы.СерияНоменклатуры,
        ВозвратМатериаловИзЭксплуатацииМатериалы.ФизЛицо,
        ВозвратМатериаловИзЭксплуатацииМатериалы.Количество,
        ЕСТЬNULL(МатериалыВЭксплуатацииОстатки.КоличествоОстаток, 0) КАК ОстатокВЭксплуатации
    ИЗ
        Документ.ВозвратМатериаловИзЭксплуатации.Материалы КАК ВозвратМатериаловИзЭксплуатацииМатериалы
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.МатериалыВЭксплуатации.Остатки(&МоментВремени, ) КАК МатериалыВЭксплуатацииОстатки
            ПО ВозвратМатериаловИзЭксплуатацииМатериалы.Номенклатура = МатериалыВЭксплуатацииОстатки.Номенклатура
                И ВозвратМатериаловИзЭксплуатацииМатериалы.ФизЛицо = МатериалыВЭксплуатацииОстатки.ФизЛицо
                И ВозвратМатериаловИзЭксплуатацииМатериалы.Ссылка.ПодразделениеОрганизации = МатериалыВЭксплуатацииОстатки.Подразделение
                И ВозвратМатериаловИзЭксплуатацииМатериалы.ХарактеристикаНоменклатуры = МатериалыВЭксплуатацииОстатки.ХарактеристикаНоменклатуры
    ГДЕ
        ВозвратМатериаловИзЭксплуатацииМатериалы.Ссылка = &Ссылка
1 mistеr
 
09.04.17
13:53
(0) Если данных в регистре немного, и так сойдет.

А вообще рекомендуется отборы по измерениям пропихивать в параметры ВТ. И яыное соединение с шапкой документа вместо неявного.
2 SRM1C
 
09.04.17
15:24
Так чтоль ?

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

СГРУППИРОВАТЬ ПО
ВозвратМатериаловИзЭксплуатацииМатериалы.Ссылка.ПодразделениеОрганизации,
ВозвратМатериаловИзЭксплуатацииМатериалы.Номенклатура,
ВозвратМатериаловИзЭксплуатацииМатериалы.ХарактеристикаНоменклатуры,
ВозвратМатериаловИзЭксплуатацииМатериалы.ФизЛицо,
ВозвратМатериаловИзЭксплуатацииМатериалы.Ссылка.Подразделение
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
МатериалыВЭксплуатацииОстатки.Подразделение,
МатериалыВЭксплуатацииОстатки.Номенклатура,
МатериалыВЭксплуатацииОстатки.ХарактеристикаНоменклатуры,
МатериалыВЭксплуатацииОстатки.СерияНоменклатуры,
МатериалыВЭксплуатацииОстатки.ФизЛицо,
МатериалыВЭксплуатацииОстатки.КоличествоОстаток
ИЗ
РегистрНакопления.МатериалыВЭксплуатации.Остатки(
   &МоментВремени,
   Номенклатура В
     (ВЫБРАТЬ
      КСписанию.Номенклатура
     ИЗ
      КСписанию КАК КСписанию)
    И ФизЛицо В
     (ВЫБРАТЬ
      КСписанию.ФизЛицо
     ИЗ
      КСписанию КАК КСписанию)
    И ХарактеристикаНоменклатуры В
     (ВЫБРАТЬ
      КСписанию.ХарактеристикаНоменклатуры
     ИЗ
      КСписанию КАК КСписанию)
    И Подразделение В
     (ВЫБРАТЬ
      КСписанию.Подразделение
     ИЗ
      КСписанию КАК КСписанию)) КАК МатериалыВЭксплуатацииОстатки
3 mistеr
 
09.04.17
15:35
(2) Не совсем.

ГДЕ (Номенклатура, ХарактеристикаНоменклатуры, ФизЛицо, Подразделение) В (ВЫБРАТЬ Номенклатура, ХарактеристикаНоменклатуры, ФизЛицо, Подразделение ИЗ КСписанию)
4 Лефмихалыч
 
09.04.17
17:51
(0) вот это (3) не читай. Козлёночком станешь.
Это бред.
5 Лефмихалыч
 
09.04.17
17:53
в (2)  - почти.
Только, во-первых, левое соединение в временной таблицей нужно. А, во-вторых, параметры виртуальной таблицы должны быть, как в (3), только без слова "ГДЕ".
6 Лефмихалыч
 
09.04.17
17:54
РегистрНакопления.МатериалыВЭксплуатации.Остатки(
   &МоментВремени, (Номенклатура, ХарактеристикаНоменклатуры, ФизЛицо, Подразделение) В (ВЫБРАТЬ Номенклатура, ХарактеристикаНоменклатуры, ФизЛицо, Подразделение ИЗ КСписанию))
7 breezee
 
09.04.17
18:54
Чем явное соединение лучше неявного?
8 SRM1C
 
09.04.17
19:08
(6)
Так лучше будет ?
а то там получается солянка из параметров хорошая, номенклатура будет искаться в 5 параметрах ВТ.
Либо я что-то не понимаю?
9 RomanYS
 
09.04.17
19:11
(8) Не понимаешь. Искаться будут совпадения по набору измерений. Порядок (измерений) должен совпадать.
10 SRM1C
 
09.04.17
19:37
(9) Спасибо, буду знать.