Имя: Пароль:
1C
 
Почему так не работает в запросе? Пишет неверные параметы Дата-время?
,
0 Гений 1С
 
гуру
06.02.23
16:11
ПО ТПодсчеты.Дата МЕЖДУ
ДАТАВРЕМЯ(ГОД(&НачалоДня), МЕСЯЦ(&НачалоДня), ДЕНЬ(&НачалоДня), ЧАС(Т.ВремяНачала), МИНУТА(Т.ВремяНачала), СЕКУНДА(Т.ВремяНачала))
И ДАТАВРЕМЯ(ГОД(&НачалоДня), МЕСЯЦ(&НачалоДня), ДЕНЬ(&НачалоДня), ЧАС(Т.ВремяОкончания), МИНУТА(Т.ВремяОкончания), СЕКУНДА(Т.ВремяОкончания))
1 Kassern
 
06.02.23
16:12
(0) Гениально!
2 Garykom
 
гуру
06.02.23
16:14
(0) ыыы
3 Kassern
 
06.02.23
16:15
Дайте угадаю, наверное вы неправильные параметры суете в конструкцию ДатаВремя?)
4 Mort
 
06.02.23
16:16
То что ДАТАВРЕМЯ не функция, а литерал разве что на заборах не пишут.
5 Kassern
 
06.02.23
16:19
Предлагаю вам гениальное решение))
ДОБАВИТЬКДАТЕ(&НачалоДня, СЕКУНДА, РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1, 1, 1), &Время, СЕКУНДА)) - Как дата с временем)
6 Garykom
 
гуру
06.02.23
16:19
(0) Два условия сделай
МЕЖДУ НачалоПериода(&НачалоДня, День) И КонецПериода(&НачалоДня, День)
и второе на время
7 Mort
 
06.02.23
16:21
Но гениальность в (0) необходимо развить:

.... МЕЖДУ

ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), ГОД,  ГОД(&НачалоДня)), МЕСЯЦ,  МЕСЯЦ(&НачалоДня))... и т.д.
8 RomanYS
 
06.02.23
16:22
(5) Не, гениально будет текст запроса кодом изменять)))
9 Kassern
 
06.02.23
16:25
(8) Не, ну а что? Работать же будет))
ПО ТПодсчеты.Дата МЕЖДУ
ДОБАВИТЬКДАТЕ(&НачалоДня, СЕКУНДА, РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1, 1, 1), Т.ВремяНачала, СЕКУНДА))
И ДОБАВИТЬКДАТЕ(&НачалоДня, СЕКУНДА, РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1, 1, 1),Т.ВремяОкончания, СЕКУНДА))
10 Гений 1С
 
гуру
06.02.23
16:58
(5) я так и переписал в итоге: https://geniy1s.ru/manipulyaczii-so-vremenem/
11 Гений 1С
 
гуру
06.02.23
16:59
(8) не получится, там нужно от другой таблицы считать время, если ДатаВремя - это литерал, не сработает.
12 magicSan
 
06.02.23
19:26
(10) какой ужас, он ещё и сайты делает.
13 Сергиус
 
06.02.23
20:34
(0)А чего бы просто две даты не передавать на начало и конец дня?
14 Гений 1С
 
гуру
06.02.23
21:04
(13) потому что там интервалов много, в регистре сидят
15 Said_We
 
07.02.23
13:17
(14) Тогда параметры вообще не нужны, если у вас уже есть готовые даты в регистре.
16 Гений 1С
 
гуру
07.02.23
15:25
(15) ну текущий момент времени однозначно надо передать.
17 magicSan
 
07.02.23
15:30
(16) "&ТекущееВремя МЕЖДУ Т.ВремяНачала И Т.ВремяОкончания" вот из этого ты такое нагородил - зачем?

у тебя же банально проверка на нахождение в регистре записи
18 Гений 1С
 
гуру
07.02.23
15:33
(17) мне нужно проверять только те интервалы, которые входят в текущее время
19 Конструктор1С
 
07.02.23
15:53
(0) очередное хениальное дно
20 magicSan
 
08.02.23
07:02
(18) во первых интервалы не входят во время во вторых

"В регистре _ИнтервалыПодсчетаКассы хранится время начала и окончания, когда надо подсчитывать кассу.

В регистре _ПодсчетыКассы хранятся отметки о подсчете кассы.

Нужно в запросе понимать, нужно ли в текущий момент напоминать пользователю о том, что кассу нужно посчитать. Если интервал открыт, то нужно, но если в этот интервал пользователь уже посчитал кассу, не нужно"

зачем первый регистр вообще нужен?
21 НафНаф
 
08.02.23
07:58
Если бы автор спроектировал регистры так, чтобы в них хранилось число секунд от начала даты, то проблем было бы меньше. Такой вот архитектор.
Кстати, в 1С нет вычисляемых свойств объектов, что говорит том, что 1С вынуждает либо дублировать код, либо хранить эти вычисляемые данные.