Имя: Пароль:
1C
 
Получение документов, которые сделали движения по регистру в минус
0 breezee
 
07.06.19
12:15
Коллеги, здравствуйте
Накидал запрос, который выводит документы, которые пишут в минус по регистру "ТоварыНаСкладах" (документы отобраны заранее, находятся в параметре &МассивТН) Это массив, в котором только документы Требование-накладная (ссылки на документы, конечно).
У меня какое-то ощущение, что я что-то сделал не так.
Я не могу понять что, но что-то было в памяти о том, что есть особенность при работе с остатками и оборотами (про то что начальный остаток и конечный обязательно в СКД надо выводить). Можете, пожалуйста, посмотреть запрос и сказать, есть ли какие-то подводные камни в нём? Запрос будет выполняться под пользователем с полными правами
ВЫБРАТЬ
    ТребованиеНакладнаяМатериалы.Ссылка КАК ДокументТребованиеНакладная,
    ТребованиеНакладнаяМатериалы.Номенклатура,
    ТребованиеНакладнаяМатериалы.СерияНоменклатуры,
    ТребованиеНакладнаяМатериалы.Ссылка.Склад
ПОМЕСТИТЬ ВТ_ТребованийНакладных
ИЗ
    Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
ГДЕ
    ТребованиеНакладнаяМатериалы.Ссылка В(&МассивТН)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК ТН,
    ТоварыНаСкладахОстаткиИОбороты.Период,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры КАК СерияНоменклатуры,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
ИЗ
    ВТ_ТребованийНакладных КАК ВТ_ТребованийНакладных
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
                ,
                ,
                Регистратор,
                ,
                (Склад, Номенклатура, СерияНоменклатуры) В
                    (ВЫБРАТЬ
                        ВТ_ТребованийНакладных.Склад,
                        ВТ_ТребованийНакладных.Номенклатура,
                        ВТ_ТребованийНакладных.СерияНоменклатуры
                    ИЗ
                        ВТ_ТребованийНакладных КАК ВТ_ТребованийНакладных)) КАК ТоварыНаСкладахОстаткиИОбороты
        ПО ВТ_ТребованийНакладных.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура
            И ВТ_ТребованийНакладных.СерияНоменклатуры = ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры
ГДЕ
    ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная
    И ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток < 0
    И ТоварыНаСкладахОстаткиИОбороты.Регистратор В
            (ВЫБРАТЬ
                ВТ_ТребованийНакладных.ДокументТребованиеНакладная
            ИЗ
                ВТ_ТребованийНакладных КАК ВТ_ТребованийНакладных)
1 breezee
 
07.06.19
12:16
(0) Запрос не на СКД, фразу про СКД вспомнил просто...
2 breezee
 
07.06.19
12:19
Соединение по складу между таблицами увидел что не добавил сейчас, поправил
3 Nuobu
 
07.06.19
12:21
Единственное - не знаю, зачем тут левое соединение, Если есть отбор  в параметрах таблицы в секции "ГдЕ"?
4 breezee
 
07.06.19
12:26
(3) Согласен, переделал на внутреннее
5 Nuobu
 
07.06.19
13:53
(4) Не, ты не понял.
У тебя отбор стоит в параметрах виртуальной таблицы.
Тебе вообще соединение не нужно.
Юзай просто ТоварыНаСкладах вообще без соединения.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан