Имя: Пароль:
1C
1С v8
Периоды в запросе
0 Not1C
 
27.07.14
12:11
Добрый день. Я не волшебник, я только учусь.
Из двух регистров Остатки товаров и Продажи нужно получить выборку данных, соединив их
Номенклатура КоличествоОстаток КоличествоОборот ВычисляемоеПоле
Но мне это нужно сделать для нескольких периодов (текущий месяц, предыдущий месяц, и т.д.). Я сделал для одного периода. Как прицепить остальные?
ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток
ПОМЕСТИТЬ Остатки
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&КонДата, ) КАК ТоварыНаСкладахОстатки
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Остатки.Номенклатура,
    Остатки.КоличествоОстаток,
    ВЫБОР
        КОГДА Обороты.КоличествоОборот ЕСТЬ NULL
            ТОГДА 0
        ИНАЧЕ Обороты.КоличествоОборот
    КОНЕЦ КАК Оборот,
    ВЫБОР
        КОГДА ВЫБОР
                КОГДА Обороты.КоличествоОборот ЕСТЬ NULL
                    ТОГДА 0
                ИНАЧЕ Обороты.КоличествоОборот
            КОНЕЦ > 0
            ТОГДА Остатки.КоличествоОстаток / ВЫБОР
                    КОГДА Обороты.КоличествоОборот ЕСТЬ NULL
                        ТОГДА 0
                    ИНАЧЕ Обороты.КоличествоОборот
                КОНЕЦ
        ИНАЧЕ 0
    КОНЕЦ КАК Поле1
ПОМЕСТИТЬ ОстаткиОбороты
ИЗ
    Остатки КАК Остатки
        ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
        ПО Остатки.Номенклатура = Обороты.Номенклатура
1 Not1C
 
27.07.14
12:15
Править мой код не прошу, покажите на  самом простом примере, если можно
2 Not1C
 
27.07.14
12:16
пробовал "Период ПЕРИОДАМИ", но не получилось
3 Митор
 
27.07.14
12:18
Только шаманством
4 nightangel48
 
27.07.14
13:04
а если формировать текст запроса программно, либо циклом запросить, сделать поле текпериод, потом в результате этих запросов собрать итоговую таблицу
5 mikecool
 
27.07.14
13:13
вот здесь
           ТОГДА Остатки.КоличествоОстаток / ВЫБОР
                    КОГДА Обороты.КоличествоОборот ЕСТЬ NULL
                        ТОГДА 0
                    ИНАЧЕ Обороты.КоличествоОборот
                КОНЕЦ
на ж0пу нарываешься
6 mikecool
 
27.07.14
13:15
период для всех запросов - один, который содержит предыдущий и тек месяц
в запросе - выбор когда период = предмесяц тогда количество как оборотпредмесяц
и т.п.