Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

подскажите как правильно сравнить дату

подскажите как правильно сравнить дату
Я
   dvrk
 
26.05.21 - 08:11
Привет, есть реквизит с типом дата, как сравнить, что та дата была больше чем 3 месяца назад?
 
 Партнерская программа EFSOL Oblako
   Bigbro
 
1 - 26.05.21 - 08:13
посчитать количество дней в месяцах между датами, умножить на 86400, сравнить полученное с разницей дат.
   SleepyHead
 
2 - 26.05.21 - 08:13
(0) Вычисли дату, которая была три месяца назад, и сравни с ней.

Ваш Кэп.
   Йохохо
 
3 - 26.05.21 - 08:14
   Bigbro
 
4 - 26.05.21 - 08:16
главный вопрос что такое "3 месяца назад".
для 31 мая это будет 28 февраля?
а для 30 апреля - 31 января?
а для 15го?
а если нет то как?
   SleepyHead
 
5 - 26.05.21 - 08:17
(4) Во валит ))
   DimVad
 
6 - 26.05.21 - 08:20
НачалоДня_ = НачалоДня(МойРеквизит);
Если НачалоДня_ > ДобавитьМесяц(НачалоДня_, -3) Тогда
Сообщить("А он больше...");
Иначе
Сообщить("Фиг вам...");
КонецЕсли;
   Йохохо
 
7 - 26.05.21 - 08:21
(6) шедевр
   DimVad
 
8 - 26.05.21 - 08:21
(6) Не проснуляся :
Конечно, ДобавитьМесяц(НачалоДня(ТекущаяДата()))
   Dotoshin
 
9 - 26.05.21 - 08:22
(4) Сдается мне, что нужно сравнить текущее значение реквизита с тем которое было три месяца назад в этом же реквизите.
Думаю если нет истории изменения этого реквизита, то без машины времени тут не обойтись...
   dvrk
 
10 - 26.05.21 - 08:24
(9) не, мне надо знать датасоздания больше или меньше 3 месяцев
   DimVad
 
11 - 26.05.21 - 08:27
(10) Ну, датасоздания содержит дату и время
Значит НачалоДня_ = НачалоДня(МойРеквизит) - то, что проверяем
т.е. сравниваем с ДобавитьМесяц(НачалоДня(ТекущаяДата()), -3)
   Bigbro
 
12 - 26.05.21 - 08:28
(10) на (4) ответ есть?
   Dotoshin
 
13 - 26.05.21 - 08:28
(10) А три месяца от какого момента надо отсчитывать?
   DimVad
 
14 - 26.05.21 - 08:28
Я после "штурма". Пойду дальше спать. Извините, если что...
   dvrk
 
15 - 26.05.21 - 08:29
(13) в которорый обработку запусккают
   lodger
 
16 - 26.05.21 - 08:30
(10)
ЗапросКонтр = новый запрос("выбрать
Спрконтрагент.ссылка,
Выбор когда Спрконтрагент.ТвойРеквизит > &ГраницаДаты тогда "ОнЖеСтарый" иначе "ОнЖеНовый" конец как СостояниеКонтры
из
справочники.контрагенты как Спрконтрагент");
ЗапросКонтр.УстановитьПараметр("ГраницаДаты",ДобавитьМесяц(НачалоДня(ТекущаяДата()), -3));
   Bigbro
 
17 - 26.05.21 - 08:33
3 месяца июнь июль август = 92 дня назад
3 месяца февраль март апрель = 89 дней назад
можно просто принять что 3 месяца = 90 дней.
есть еще варианты, с добавитьмесяц(,-3), как тут уже предлагали.
выбор за тобой.
   Dotoshin
 
18 - 26.05.21 - 08:33
(15) Ну тогда (11)
   dvrk
 
19 - 26.05.21 - 08:34
спасибо!
   dvrk
 
20 - 26.05.21 - 08:47
(12) да хз, я уж думаю просто 90 дней пойдёт
   dvrk
 
21 - 26.05.21 - 08:54
(17) а, вы уже это и написали) извиняюсь
   DrZombi
 
22 - 26.05.21 - 09:09
(0) Через запрос

ВЫБРАТЬ
    &ДатаТекущая КАК ДатаТекущая,
    НАЧАЛОПЕРИОДА(&ДатаТекущая, МЕСЯЦ) КАК ДатаНачалоМесяца,
    ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&ДатаТекущая, МЕСЯЦ), МЕСЯЦ, -3) КАК ДатаПрошлого
   Bigbro
 
23 - 26.05.21 - 09:10
(20) лучше уточнить у того кто ставит задачу.
даже если это просто тестовое задание.
а если реальная потребность - у бизнес пользователей может быть совершенно разное понимание что такое 3 месяца назад, лучше убедиться что вы понимаете этот термин одинаково.
   dvrk
 
24 - 26.05.21 - 10:26
(23) да сказали 90 дней норм (22) спасибо


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.