Имя: Пароль:
1C
1С v8
соединить дату и время
0 Папай
 
10.12.19
15:14
Добрый день.подскажите как соединить 2 еременные содержащие дату и время.это два разных реквизита
04.11.2019  0:00:00    и 01,01,2019 10:00:00. где первое это дата.почему то везде прописал что только дата, но все равно тащит еще и время.а вторая переменная только время но почему то тащите еще и дату хотя указал что только время.как то можно их корректно соединить и получить:04.11.2019 10:00:00
1 Rovan
 
гуру
10.12.19
15:15
получить кол-во секунд во 2м и прибавить к 1му
2 b_ru
 
10.12.19
15:16
РеквизитДата + РеквизитВремя - Дата(2019,01,01)

Если у тебя реквизит время действтительно от начала года отсчитывается, а не от начала учета времени
3 Папай
 
10.12.19
15:16
(1)спасибо за идею а как прибавить?
4 Папай
 
10.12.19
15:17
(2)пардон ошибся 01,01,0001
5 Папай
 
10.12.19
15:18
так указывает где сугубо время якобы без даты
6 b_ru
 
10.12.19
15:41
(4) Ну тогда просто РеквизитДата + РеквизитВремя
Тип ДатаВремя в 1С это просто количество секунд, прошедшее с начала 1970 года, с ним можно делать любую арифметику.
7 arsik
 
гуру
10.12.19
15:43
РеквизитДата + РеквизитВремя - НачалоДня(РеквизитВремя)
8 arsik
 
гуру
10.12.19
15:46
+ (7) Вру. Правильно так.
РеквизитДата + (РеквизитВремя - НачалоДня(РеквизитВремя))
9 mistеr
 
10.12.19
15:46
(6) Ну-ну. Сам-то пробовал свою "арифметику"?
10 vova1122
 
10.12.19
15:50
(6) спутал с Юних-Датой
11 Папай
 
10.12.19
15:55
спасибо попробую
12 b_ru
 
10.12.19
16:17
Да действительно компилятор не умеет кастить Дату к числу. Вроде раньше умел.
Ну тогда наверное короче чем

РеквизитДата + Час(РеквизитВремя) * 3600 + Минута(РеквизитВремя) * 60 + Секунда(РеквизитВремя)

не получится
13 hhhh
 
10.12.19
16:31
(12) читай (8)
14 b_ru
 
10.12.19
16:34
(13) Не работает (8)
15 singlych
 
10.12.19
17:03
(14) он умеет вычитать дату из даты и прибавлять к дате число, со скобками работает
по крайней мере на 8.3.15
16 b_ru
 
10.12.19
17:17
(15) А на 8.3.12 не работает и со скобками, результат от вычитания двух дат там получается тоже дата, которую нельзя прибавить к дате.
И я почти уверен, что на какой-то раннеей версии 8.3 работало сложение дат. В общем, полагаться не стоит.
17 Александр Б
 
10.12.19
18:23
(16) Результат от вычитания дат - число секунд как разница между датами.
Проверил, "Дата + (Время - НачалоДня(Время))" - работает.
18 Александр Б
 
10.12.19
18:24
(17) Причём проверил на 8.2.19 даже.
19 fisher
 
10.12.19
18:30
(16) Ересь какая-то. Никогда даты нельзя было складывать. Всегда разница дат возвращала разницу в секундах. Всегда к дате можно было прибавлять секунды. Это у тебя какая-то ложная память или ты с приоритетами операций начудил.
20 fisher
 
10.12.19
18:31
У меня тоже 8.3.12. Все работает.
21 mistеr
 
10.12.19
18:49
Мораль: не все, что можно вычитать, можно складывать.
22 fisher
 
11.12.19
10:23
(21) Более того, даже сложение не всегда коммутативно :)
23 palsergeich
 
11.12.19
10:31
(19) время - начало дня как раз и будет число.
Которое потом прибавляется к дате, так что все ок)
24 fisher
 
11.12.19
10:37
(23) Что такое "время - начало дня"? В 1С нет типа "время".
А НачалоДня() возвращает тип "Дата".
В каком месте появляется тип "Число"?
25 fisher
 
11.12.19
10:41
(18) Или ты имел в виду разницу даты с текущим временем и даты начала дня в секундах? Ну так я против этого ничего и не имел. Это у b_ru не работало.
26 fisher
 
11.12.19
10:41
Тьфу, (25) было к (23)
27 8 bit
 
11.12.19
10:45
(0) не УАТ ли это случайно?
28 НЕА123
 
11.12.19
10:53
Дата(Формат(ТолькоДата,"ДФ=dd.MM.yyyy")+" "+Формат(ТолькоВремя,"ДФ=чч:мм:сс"))