Имя: Пароль:
1C
1С v8
Как установить период в запросе
0 UUmmmmm
 
28.09.19
17:30
Подскажите пожалуйста,  мне  нужно получить продажи мастера от начала года и до конца прошлого месяца от заданной даты, как это указать?

Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ПродажиОбороты.ВыручкаОборот КАК ВыручкаОборот
                   |ИЗ
                   |    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , Мастер = &Мастер) КАК ПродажиОбороты";
    Запрос.УстановитьПараметр("Мастер",         Мастер);
    Запрос.УстановитьПараметр("НачалоПериода",      );
    Запрос.УстановитьПараметр("КонецПериода",      );
1 ДенисЧ
 
28.09.19
17:40
Запрос.УстановитьПараметр("НачалоПериода", НачалоГода(ВыбДата)     );
    Запрос.УстановитьПараметр("КонецПериода",    КонецМесяца(НачалоМесяца(ВыбДата)-1)  );
2 UUmmmmm
 
28.09.19
18:13
(1) Спасибо, работает
3 RomanYS
 
28.09.19
18:14
(1) а зачем КонецМесяца()?
(НачалоМесяца(ВыбДата)-1) вроде достаточно
4 ДенисЧ
 
28.09.19
18:14
(3) Чтобы  точно помасть в конец месяца, а не в начало последней секунды.
Я обычно так делаю, чтобы не париться
5 ПесДобряк
 
28.09.19
18:17
(4) Это где про такое можно прочитать?

Я всегда думал, что дата есть дата. И только обектом Граница можно указывать границы секунды.

Тем более, что это актуально для остатков, обороты берут целиком.
6 ДенисЧ
 
28.09.19
18:19
(5) Плевать, написано это или нет. Главное, что я так делаю и меня устраивает
7 RomanYS
 
28.09.19
18:19
(4) Это одна и та же дата.

Дробные секунды вроде поддерживаются в самом типе Дата. Но в базу не сохраняются, и КонецМесяца возвращает те же 23:59:59
8 RomanYS
 
28.09.19
18:21
(6) У тебя похоже запасы СП закончились)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн