Имя: Пароль:
1C
1С v8
Глупый вопрос - а к дате время нельзя добавить?
0 Конфигуратор1с
 
28.08.12
15:12
Есть у меня дата 21.12.2012, хочу добавить к ней время 23:00:00 - ругается.
1 Нуф-Нуф
 
28.08.12
15:12
добавь 23*3600+0*60+0
2 pumbaEO
 
28.08.12
15:13
21.12.2012+23*60*60?
3 Конфигуратор1с
 
28.08.12
15:13
(1)да так и делаю, думал может можно просто прибавить дату к дате(((
4 Конфигуратор1с
 
28.08.12
15:13
Дата(Год(Выборка.дата),Месяц(Выборка.дата),День(Выборка.Дата),Час(УстанавливаемоеВремя),Минута(УстанавливаемоеВремя),Секунда(УстанавливаемоеВремя))
5 Конфигуратор1с
 
28.08.12
15:14
а хотелось бы Выборка.дата + УстанавливаемоеВремя
6 Reset
 
28.08.12
15:14
(3) Можно ;)
Дата=Дата+ (ДатаТолькоСВременем-Дата(1,1,1));
7 Нуф-Нуф
 
28.08.12
15:15
(5) запросто:
УстанавливаемоеВремя = 23*3600+0*60+0
НоваяДата = Выборка.дата + УстанавливаемоеВремя
8 andrewks
 
28.08.12
15:16
(0) у тебя время в каком виде?
9 Конфигуратор1с
 
28.08.12
15:27
Поле ввода с типом дата, часть даты время. То есть дата 01.01.0001 0:00:00
10 Конфигуратор1с
 
28.08.12
15:28
(6)ругается - не удалось преобразовать к типу число
11 andrewks
 
28.08.12
15:31
ТвояДата+(ТвоёВремя-Дата("01.01.0001 0:00:00"))
12 pavelul73
 
28.08.12
15:43
Как я сделал:
Есть дата1(формат дата и время) и есть дата2(формат дата и время). Мне нужно было к дате1 добавить время из даты 2.
ВремДата = (Формат(Дата1,"ДФ=dd.MM.yyyy")+" "+Формат(Дата2,"ДЛФ=T"));
       ДатаДок = Дт(ВремДата);

функция Дт(дат)
д=число(лев(дат,2));
м=Число(сред(дат,4,2));
г=Число(сред(дат,7,4));

поз=найти(дат," ");
если поз=0 Тогда
Возврат дата(г,м,д);
конецесли;    

дт=лев(дат,поз-1);    
тм=сред(дат,поз+1);

поз=найти(тм,":");
час=лев(тм,поз-1);
мин=сред(тм,4,2);
сек = сред(тм,7,2);
Возврат дата(г,м,д,час,мин,сек);
КонецФункции

Может и не совсем оптимально, но работаем стабильно. Только функцию дт напиши выше своей процедуры
13 andrewks
 
28.08.12
15:45
(12) это кандидат на самую жестяную жесть месяца по версии Мисты?
14 andrewks
 
28.08.12
15:45
(12) Дата1+(Дата2-НачалоДня(Дата2))
15 pavelul73
 
28.08.12
15:46
зато работает) писалось 3 минуты, нужно было срочно сделать, для одноразовой обработки)
16 pavelul73
 
28.08.12
15:48
нет, мне нужно было по другому:
пример дата1 = 23.08.2012 14:56:37 дата 2 = 27.08.2012 15:43:25
Должно было получится
дата = 23.08.2012 15:43:25
17 andrewks
 
28.08.12
15:48
(16) НачалоДня(Дата1)+(Дата2-НачалоДня(Дата2))
18 salvator
 
28.08.12
15:49
(15) Талант!
19 Повелитель
 
28.08.12
15:49
(1) Долго смотрел на это:
добавь 23*3600+0*60+0

развер 0*60 не равно 0? ))
20 pavelul73
 
28.08.12
15:50
ну да, так как ты написал, конечно лучше намного и быстрее, видимо не подумал как следует когда писал )
21 Нуф-Нуф
 
28.08.12
15:52
(19) равно. а из (1) разве можно сделать противоположный вывод?
22 Повелитель
 
28.08.12
15:53
(21) Нет, я просто не могу понять зачем там вторая часть написана.
23 Нуф-Нуф
 
28.08.12
15:55
(22) это формула. только в качестве переменных подставлены конкретные числа из сабжа для более быстрого понимания происходящего
24 Повелитель
 
28.08.12
15:56
(24) Теперь понял ))
25 Конфигуратор1с
 
28.08.12
16:36
(14) и (6) спасибо огромное - работает