Имя: Пароль:
1C
1С v8
Получить остатки на список дат
0 Zupbp
 
10.10.19
10:03
Вот пример получения остатков на кажду дату периода:

ВЫБРАТЬ РАЗЛИЧНЫЕ
    КурсыВалют.Период КАК Период
ПОМЕСТИТЬ Дни
ИЗ
    РегистрСведений.КурсыВалют КАК КурсыВалют
ГДЕ
    КурсыВалют.Период МЕЖДУ &НачалоПериода И &КонецПериода
;

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

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


Мне нужно получить остатки на каждую дату записи из временной таблицы:

ВЫБРАТЬ
    РегистрЗаписиИзменений.ДатаЗаписи КАК ДатаЗаписи
ПОМЕСТИТЬ Дни
ИЗ
    РегистрСведений.РегистрЗаписиИзменений КАК РегистрЗаписиИзменений
ГДЕ
    РегистрЗаписиИзменений.Объект = &Объект
1 hhhh
 
10.10.19
10:19
(0) вот это

ИЗ
    Дни КАК Дни,
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , ) КАК Движения

хрень какая-то. Напиши соединение, хотя бы левое.
2 Deon
 
10.10.19
10:20
(1) Не, тут всё нормально. Это полное соединение без условий
3 Deon
 
10.10.19
10:20
(0) А в чём затык-то?
4 ptiz
 
10.10.19
10:21
(0) А вопрос в чем? Что не работает?
5 Deon
 
10.10.19
10:22
(1) Хотя, конечно, условие Движения.Период <= Дни.Период лучше бы засунуть в левое соединение, а не в выбор
6 Deon
 
10.10.19
10:23
(4) Подозреваю, что нет параметров &НачалоПериода и &КонецПериода
7 Zupbp
 
10.10.19
10:31
(6) Именно. У меня в первой виртуальной таблице отбирается список дат по условию. И надо получить остатки на каждую из этих дат. Параметров периода нет.
8 Zupbp
 
10.10.19
10:31
(1) Это рабочий вариант.
9 Deon
 
10.10.19
10:40
(7) Как вариант, первым запросом вытащить максимум и мунимум ДатаЗаписи из регистра, которые и засунуть во 2й запрос по остаткам
10 Консультант Баранов
 
10.10.19
10:45
Условие не верное

Надо так

КОГДА Движения.Период = &НачалоПериода
                ТОГДА Движения.КоличествоКонечныйОстаток
КОГДА Движения.Период <= Дни.Период

ИНАЧЕ 0
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.