Имя: Пароль:
1C
 
СКД Отчёт. помогите пожалуйста.
0 TemkaTV
 
26.04.16
11:37
привет всем:) вопрос собственно следующий. Пишу отчёт на СКД. Дело в том. Таблица ОстатковИОборотов. Соответственно &ДатаНачала, &ДатаКонец. как сделать так, чтобы при вводе значение даты начала и даты конца, Начальный остаток и конечный - соответствовали датам параметров? Нужно сделать в разрезе документа Акта и Решения соответственно. PS Акт - ставит в резерв товар, Решения - снимает с резерва. Запрос написанный мной.. :
1 TemkaTV
 
26.04.16
11:37
ВЫБРАТЬ
    Акты_Решения.Регистратор,
    Акты_Решения.Номенклатура,
    МАКСИМУМ(Акты_Решения.ОстатокРезерваПоДокументуШт) КАК ОстатокРезерваПоДокументуШт,
    МАКСИМУМ(Акты_Решения.ВРезервеПриход) КАК ВРезервеПриход,
    МАКСИМУМ(Акты_Решения.ВРезервеРасход) КАК ВРезервеРасход,
    МИНИМУМ(Акты_Решения.ВРезервеНачальныйОстаток) КАК ВРезервеНачальныйОстаток,
    СУММА(ВЫБОР
            КОГДА ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены
                ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
        КОНЕЦ) КАК Цена,
    СУММА(Акты_Решения.ВРезервеПриход * ВЫБОР
            КОГДА ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены
                ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
        КОНЕЦ) КАК ПриходРуб,
    СУММА(Акты_Решения.ОстатокРезерваПоДокументуШт * ВЫБОР
            КОГДА ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены
                ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
        КОНЕЦ) КАК ОстатокРезерваПоДокументуРуб,
    СУММА(Акты_Решения.ВРезервеНачальныйОстаток * ВЫБОР
            КОГДА ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены
                ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
        КОНЕЦ) КАК НачальныйОстатокРуб,
    СУММА(Акты_Решения.ВРезервеРасход * ВЫБОР
            КОГДА ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены
                ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
        КОНЕЦ) КАК РасходРуб
ИЗ
    (ВЫБРАТЬ
        Акты.Регистратор КАК Регистратор,
        ЕСТЬNULL(Акты.ВРезервеНачальныйОстаток, 0) + (ЕСТЬNULL(Акты.ВРезервеПриход, 0) - ЕСТЬNULL(Решения.ВРезервеРасход, 0)) КАК ОстатокРезерваПоДокументуШт,
        Акты.Номенклатура КАК Номенклатура,
        Решения.Номенклатура КАК Номенклатура1,
        Акты.ВРезервеПриход КАК ВРезервеПриход,
        Решения.ВРезервеРасход КАК ВРезервеРасход,
        Акты.ВРезервеНачальныйОстаток КАК ВРезервеНачальныйОстаток
    ИЗ
        (ВЫБРАТЬ
            СвободныеОстаткиОстаткиИОбороты.Регистратор КАК Регистратор,
            СУММА(СвободныеОстаткиОстаткиИОбороты.ВРезервеСоСкладаНачальныйОстаток) КАК ВРезервеНачальныйОстаток,
            СУММА(СвободныеОстаткиОстаткиИОбороты.ВРезервеСоСкладаПриход) КАК ВРезервеПриход,
            СУММА(СвободныеОстаткиОстаткиИОбороты.ВРезервеСоСкладаРасход) КАК ВРезервеРасход,
            СУММА(СвободныеОстаткиОстаткиИОбороты.ВРезервеСоСкладаКонечныйОстаток) КАК ВРезервеКонечныйОстаток,
            СвободныеОстаткиОстаткиИОбороты.Номенклатура КАК Номенклатура
        ИЗ
            РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК СвободныеОстаткиОстаткиИОбороты
        ГДЕ
            СвободныеОстаткиОстаткиИОбороты.Регистратор ССЫЛКА Документ.АктПриемаТМЦ
        
        СГРУППИРОВАТЬ ПО
            СвободныеОстаткиОстаткиИОбороты.Регистратор,
            СвободныеОстаткиОстаткиИОбороты.Номенклатура) КАК Акты
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                СвободныеОстаткиОстаткиИОбороты.Регистратор КАК Регистратор,
                СУММА(СвободныеОстаткиОстаткиИОбороты.ВРезервеСоСкладаНачальныйОстаток) КАК ВРезервеНачальныйОстаток,
                СУММА(СвободныеОстаткиОстаткиИОбороты.ВРезервеСоСкладаПриход) КАК ВРезервеПриход,
                СУММА(СвободныеОстаткиОстаткиИОбороты.ВРезервеСоСкладаРасход) КАК ВРезервеРасход,
                СУММА(СвободныеОстаткиОстаткиИОбороты.ВРезервеСоСкладаКонечныйОстаток) КАК ВРезервеКонечныйОстаток,
                СвободныеОстаткиОстаткиИОбороты.Регистратор.ДокументОснования КАК АктИзРешения,
                СвободныеОстаткиОстаткиИОбороты.Номенклатура КАК Номенклатура
            ИЗ
                РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК СвободныеОстаткиОстаткиИОбороты
            ГДЕ
                СвободныеОстаткиОстаткиИОбороты.Регистратор ССЫЛКА Документ.РешенияПоАктамПриемаТМЦ
            
            СГРУППИРОВАТЬ ПО
                СвободныеОстаткиОстаткиИОбороты.Регистратор,
                СвободныеОстаткиОстаткиИОбороты.Регистратор.ДокументОснования,
                СвободныеОстаткиОстаткиИОбороты.Номенклатура) КАК Решения
            ПО Акты.Регистратор = Решения.АктИзРешения
                И Акты.Номенклатура = Решения.Номенклатура
    ГДЕ
        ЕСТЬNULL(Акты.ВРезервеПриход, 0) - ЕСТЬNULL(Решения.ВРезервеРасход, 0) >= 0
    
    СГРУППИРОВАТЬ ПО
        Акты.Номенклатура,
        Акты.Регистратор,
        Решения.Номенклатура,
        Акты.ВРезервеПриход,
        Акты.ВРезервеНачальныйОстаток,
        Решения.ВРезервеРасход,
        ЕСТЬNULL(Акты.ВРезервеНачальныйОстаток, 0) + (ЕСТЬNULL(Акты.ВРезервеПриход, 0) - ЕСТЬNULL(Решения.ВРезервеРасход, 0))) КАК Акты_Решения
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
        ПО Акты_Решения.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура

СГРУППИРОВАТЬ ПО
    Акты_Решения.Номенклатура,
    Акты_Решения.Регистратор

УПОРЯДОЧИТЬ ПО
    Акты_Решения.Номенклатура
2 Mankubus
 
26.04.16
11:38
{&ДатаНачала} и {&ДатаКонец}
3 TemkaTV
 
26.04.16
11:45
здесь?
          РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК СвободныеОстаткиОстаткиИОбороты
4 TemkaTV
 
26.04.16
11:45
(2)