Имя: Пароль:
1C
1С v8
Получить остатки на все дни из регистра накопления. В ЗАПРОСЕ ИМЕННО
,
0 чувак
 
25.05.22
12:57
Допустим в запросе указан период месяц. Необходимо получить остатки на каждый день, не важно были остатки или нет.
Такое возможно?
1 shuhard
 
25.05.22
13:02
2 Tatitutu
 
25.05.22
13:21
(1) не то - ключевое слово "на каждый день"
3 чувак
 
25.05.22
13:22
Вот так решил, кому если надо

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

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

ИНДЕКСИРОВАТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    0 КАК Цифра
ПОМЕСТИТЬ ТабЦифр

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    1

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    2

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    3

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    4

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    5

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    6

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    7

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    8

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, ТабЦифр1.Цифра + 10 * ТабЦифр2.Цифра + 100 * ТабЦифр3.Цифра + 1000 * ТабЦифр4.Цифра) КАК День
ПОМЕСТИТЬ ТабДней
ИЗ
    ТабЦифр КАК ТабЦифр1,
    ТабЦифр КАК ТабЦифр2,
    ТабЦифр КАК ТабЦифр3,
    ТабЦифр КАК ТабЦифр4
ГДЕ
    ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, ТабЦифр1.Цифра + 10 * ТабЦифр2.Цифра + 100 * ТабЦифр3.Цифра + 1000 * ТабЦифр4.Цифра) <= &ДатаОкончания

ИНДЕКСИРОВАТЬ ПО
    День
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТабДней.День КАК День
ПОМЕСТИТЬ втДни
ИЗ
    ТабДней КАК ТабДней

ИНДЕКСИРОВАТЬ ПО
    День
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ втНоменклатура
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.Ссылка В
            (ВЫБРАТЬ
                втОстатки.Номенклатура
            ИЗ
                втОстатки КАК втОстатки)

ИНДЕКСИРОВАТЬ ПО
    Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втДни.День КАК День,
    Р_ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    СУММА(ВЫБОР
            КОГДА Р_ТоварыНаСкладахОстаткиИОбороты.Период = &ДатаНачала
                ТОГДА Р_ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
            КОГДА Р_ТоварыНаСкладахОстаткиИОбороты.Период <= втДни.День
                ТОГДА Р_ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот
            ИНАЧЕ 0
        КОНЕЦ) КАК КонечныйОстаток
ИЗ
    втДни КАК втДни,
    РегистрНакопления.Р_ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, День, , Организация = &Организация) КАК Р_ТоварыНаСкладахОстаткиИОбороты

СГРУППИРОВАТЬ ПО
    Р_ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    втДни.День

УПОРЯДОЧИТЬ ПО
    Номенклатура,
    День
4 yopQua
 
25.05.22
13:59
(2) и почему не то?
(3) пейсанина, с календарем красивее и короче реализация
5 yopQua
 
25.05.22
14:02
ВЫБРАТЬ
    Календарь.ДатаКалендаря КАК Период
ПОМЕСТИТЬ ВТ
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК Календарь
ГДЕ
    Календарь.ДатаКалендаря МЕЖДУ &Начало И &Конец
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ.Период КАК Период,
    ОстаткиИОбороты.Оборудование,
ОстаткиИОбороты.СерияНоменклатуры,
    СУММА(ВЫБОР
            КОГДА ОстаткиИОбороты.Период = &Начало
                ТОГДА ОстаткиИОбороты.КоличествоКонечныйОстаток
            ИНАЧЕ ВЫБОР
                    КОГДА ОстаткиИОбороты.Период <= ВТ.Период
                        ТОГДА ОстаткиИОбороты.КоличествоОборот
                    ИНАЧЕ 0
                КОНЕЦ
        КОНЕЦ) КАК КоличествоКонечныйОстаток
ИЗ
    ВТ КАК ВТ
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиИОбороты(&Начало, &Конец, День, , ) КАК ОстаткиИОбороты
        ПО (ОстаткиИОбороты.Период <= ВТ.Период)

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