Имя: Пароль:
1C
1С v8
Запрос, с точки зрения производительности как правильно?
0 mxs089
 
09.06.17
13:07
1.
ВЫБРАТЬ
    ОприходованиеТовары.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ВТ_Товары
ИЗ
    Документ.Оприходование.Товары КАК ОприходованиеТовары
ГДЕ
    ОприходованиеТовары.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОприходованиеТовары.Номенклатура КАК Номенклатура,
    ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    Документ.Оприходование.Товары КАК ОприходованиеТовары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
                &МоментВремени,
                Номенклатура В
                    (ВЫБРАТЬ
                        ВТ_Товары.Номенклатура КАК Номенклатура
                    ИЗ
                        ВТ_Товары КАК ВТ_Товары)) КАК ОстаткиНоменклатурыОстатки
        ПО ОприходованиеТовары.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура

2.
ВЫБРАТЬ
    ОприходованиеТовары.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ВТ_Товары
ИЗ
    Документ.Оприходование.Товары КАК ОприходованиеТовары
ГДЕ
    ОприходованиеТовары.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОприходованиеТовары.Номенклатура КАК Номенклатура,
    ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    Документ.Оприходование.Товары КАК ОприходованиеТовары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
                &МоментВремени,) КАК ОстаткиНоменклатурыОстатки
        ПО ОприходованиеТовары.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
1 toypaul
 
гуру
09.06.17
13:08
первый
2 toypaul
 
гуру
09.06.17
13:09
за 2й на сдаче экзамена сразу уволят без права пересдачи :)
3 mxs089
 
09.06.17
13:13
(2) нет
4 Ц_У
 
09.06.17
13:16
(2) за оба уволил бы
5 piter3
 
09.06.17
13:18
А зачем в обоих вариантах опять дергать док?Есть же вт со списком ном-ры
6 Redkiy
 
09.06.17
13:20
(3) уже проверял?
7 mxs089
 
09.06.17
13:23
(5) да, верно
8 mxs089
 
09.06.17
13:23
(6) уточнял
9 Redkiy
 
09.06.17
13:24
(5) и соединение там лишнее
10 mxs089
 
09.06.17
13:24
(4) поясни
11 Redkiy
 
09.06.17
13:27
второй запрос
ВЫБРАТЬ
    Остатки.Номенклатура,
    Остатки.КоличествоОстаток
ИЗ
    РегистрНакопления.ОстаткиНоменклатуры.Остатки(
                &МоментВремени,
                Номенклатура В (ВЫБРАТЬ * ИЗ ВТ_Товары)) КАК Остатки
12 Ц_У
 
09.06.17
13:31
(10) ответы (5) и (9)
13 mxs089
 
09.06.17
13:31
(11) я думаю, это зависит от контекста задачи
14 mxs089
 
09.06.17
13:32
(12) понятно, с документом согласен, интересно было про параметры и соединение
15 mxs089
 
09.06.17
13:34
это не контроль остатков
16 vi0
 
09.06.17
13:43
(11) и зачем звездочка?
17 Redkiy
 
09.06.17
13:46
(16) писать быстрее
в ВТ одно поле, т.ч. на скорость не влияет
18 Лефмихалыч
 
09.06.17
14:18
(0) оба запроса - гогно потому, что в каждом из них отсутствует отбор по ссылке во втором запросе пакета. Они умножают ВСЕ документы на остатки одного и того же.

За отсутствие отборов в параметрах виртуальной таблице на экзамене снимают то ли балл, то ли - два. Должны, во всяком случае.
19 Митяйский
 
09.06.17
14:27
(11) А разве в этом случае не потеряются строки, где по номенклатуре остаток 0?
20 vi0
 
09.06.17
15:38
(17) в общем звездочки в продакте - плохая практика
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.