Имя: Пароль:
1C
1С v8
Получить остаток на дату
0 prilforreal
 
03.01.19
14:54
С новым годом миста! Пишу обработку, столкнулся с проблемой установки даты для получения остатка на нее же, уже сломал голову, помогите понять в чем же беда?

НачалоПериода=Дата(2018, 12, 1);
    КонецПериода=Дата(2018, 12, 31);
    ПарДата=(КонецДня(Дата(2018,12,31)));
    
    Макет = ЭтотОбъект.ПолучитьМакет("Макет");
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПотолкиОбороты.Период,
        |    ПотолкиОбороты.Заказчик КАК Дилер,
        |    СУММА(ПотолкиОбороты.Площадь) КАК Площадь,
        |    РасчетыОстатки.Контрагент,
        |    РасчетыОстатки.БалансОстаток
        |ИЗ
        |    РегистрНакопления.Расчеты.Остатки(&ПарДата, ) КАК РасчетыОстатки
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Потолки.Обороты(, , Месяц, ) КАК ПотолкиОбороты
        |        ПО РасчетыОстатки.Контрагент = ПотолкиОбороты.Заказчик
        |ГДЕ
        |    ПотолкиОбороты.Период МЕЖДУ &НачалоПериода И &КонецПериода
        |    И РасчетыОстатки.БалансОстаток >= 0
        |
        |СГРУППИРОВАТЬ ПО
        |    ПотолкиОбороты.Заказчик,
        |    ПотолкиОбороты.Период,
        |    РасчетыОстатки.Контрагент,
        |    РасчетыОстатки.БалансОстаток";
    
    Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
    Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
    Запрос.УстановитьПараметр("ПарДата", ПарДата);    
    РезультатЗапроса = Запрос.Выполнить();
1 IvanGorbunov
 
03.01.19
14:55
А в чем беда то?
2 prilforreal
 
03.01.19
14:56
Нужно получить остаток в регистре расчеты на дату ПарДата, (1) Беда в том, что проверяет остаток на текущий момент
3 prilforreal
 
03.01.19
15:04
(1) Не работают одновременно 2 условия, проверка положительного баланса и дата проверки баланса
4 Chameleon1980
 
03.01.19
15:24
для начала выкинь
ПотолкиОбороты.Период МЕЖДУ &НачалоПериода И &КонецПериода
и сделай
через параметры ВТ

условие
РасчетыОстатки.БалансОстаток >= 0

перенеси в соединение
5 Valery
 
03.01.19
21:07
а что у тебя условия не в параметрах регистров?
6 Valery
 
03.01.19
21:18
надо учесть, что конец дня это 23.59.59 начало последней секунды, а в секунде можно еще кучу документов поместить. может их и не захватывает?
7 Дмитрий
 
04.01.19
09:05
Запрос.УстановитьПараметр("ПарДата", новый граница(ПарДата, видницы.включая));
8 Дмитрий
 
04.01.19
09:06
(7) *ВидГраницы