Имя: Пароль:
1C
1С v8
Сравнение дат в запросе
,
0 akhmadey
 
14.06.17
11:41
В запросе нужно сравнить две даты, в одной из которых должно быть фиксированное время. Например, Поле Документ.Дата нужно сравнить с датой, в которой непосредственно дата из поля Документ.Дата, а время фиксированное (например, 22:00). Вариант с ДАТАВРЕМЯ(ВЫРАЗИТЬ(ГОД(Документ.Дата) КАК ЧИСЛО (4,0)), ВЫРАЗИТЬ(МЕСЯЦ(Документ.Дата) КАК ЧИСЛО (4,0)), ВЫРАЗИТЬ(ДЕНЬ(Документ.Дата) КАК ЧИСЛО (4,0)), 22, 0, 0) приводит к ошибке Неверные параметры "ДАТАВРЕМЯ". Есть ли еще какие варианты? Заранее благодарен.
1 Волшебник
 
модератор
14.06.17
11:46
Количество скобок неправильное
3 Timon1405
 
14.06.17
11:48
1) внутри ДАТАВРЕМЯ нельзя применять функции
2) РАЗНОСТЬДАТ не подходит?
4 Lexey_
 
14.06.17
11:49
(0) ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(Документ.Дата, ДЕНЬ), ЧАС, 22)
5 Лефмихалыч
 
14.06.17
11:51
>сравнить две даты
в результате этого сравнения что должно быть? Ответ на какой вопрос ты сравнением получаешь?
6 akhmadey
 
14.06.17
11:54
(5) Это условие отбора в запросе, то есть ГДЕ
7 Рэйв
 
14.06.17
11:59
(6)На больше/меньше даты и так прекрасно сравниваются, разность дает количество секнд.
Чего надо то?
8 Лефмихалыч
 
14.06.17
12:00
(6) данублин! тебе что в ГДЕ узнать-то надо? Ты хочешь отобрать те записи, у которых время 22:00?
9 Лефмихалыч
 
14.06.17
12:29
ГДЕ
   Документ.Дата-НачалоПериода(Документ.Дата, день) = 22*60*60

вот это условие отберет все даты, у которых время равно 22 часа.
10 Рэйв
 
14.06.17
12:44
Скорее так:
ГДЕ
    РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ЗаказМФПеремещение.Дата, ДЕНЬ), ЗаказМФПеремещение.Дата, СЕКУНДА) = 22 * 3600
11 Лефмихалыч
 
14.06.17
13:00
(10) я вечно путаюсь в параметрах РазностьДат, по этому без подсказки не берусь. А конфигуратора под руками сейчас нет.
12 Рэйв
 
14.06.17
13:16
(11)Да, у них альтернативная логика, что от второго параметра отнимается первый:-)
13 akhmadey
 
14.06.17
13:20
(4) Лучше всего сработало (4). Всем большое спасибо за помощь.
14 HEKPOH
 
14.06.17
13:27
(13) т.е. вариант из (10) не всегда давал правильный результат? :)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн