Имя: Пароль:
1C
1С v8
Как можно посчитать разницу во времени?
0 Yrii-ay
 
11.05.17
15:22
время между 26.01.2017 11:25:09 и 26.01.2017 15:15:00 то есть разница  получается 3.50  в общем вот что я делаю:
РАЗНОСТЬДАТ(НарядНаПроизводствоПечатники.ВремяНачалаФактическое, НарядНаПроизводствоПечатники.ВремяЗавершенияФактическое, МИНУТА)
Но получается 4 часа ровно когда нужно 3.50?? Как мне победить это, подскажите программисты?
1 SSSSS_AAAAA
 
11.05.17
15:25
(0) Правильно округлять?
2 Yrii-ay
 
11.05.17
15:27
Ну да, на выходе должно получится 3.50
3 Yrii-ay
 
11.05.17
15:27
а получается 4 часа
4 b_ru
 
11.05.17
15:27
У тебя же минуты, а не часы в разности дат.
5 Yrii-ay
 
11.05.17
15:29
точно, РАЗНОСТЬДАТ(НарядНаПроизводствоПечатники.ВремяНачалаФактическое, НарядНаПроизводствоПечатники.ВремяЗавершенияФактическое, Час)
6 mkalimulin
 
11.05.17
15:29
(3) 4 часа минут? Это сколько будет в литрах?
7 b_ru
 
11.05.17
15:31
а минут сколько показывает? Может разность минут поделить на 60?
8 Одинесю
 
11.05.17
15:32
(7) А как же он получил 4 часа, только так.
9 dezss
 
11.05.17
15:32
(7) ты аккуратней...а то он будет спрашивать, как так...3 часа 83 минуты получилось...
10 dezss
 
11.05.17
15:33
(8) он скорей всего неправильно округлял...
11 Yrii-ay
 
11.05.17
15:33
(7) 3,833333
12 mkalimulin
 
11.05.17
15:36
(11) В 1С есть такая палочка: "/"
и такая палочка: "%"
13 dezss
 
11.05.17
15:38
(12) в запросах такой палочки нет %
14 b_ru
 
11.05.17
15:39
Я бы вообще не стал такое делать в запросе.
15 dezss
 
11.05.17
15:39
(11) если хочешь в часах-минутах выражать, то бери целую часть и потом дописывай остаток от деления. И будет тебе щастье.
16 dezss
 
11.05.17
15:39
(14) а почему?
17 b_ru
 
11.05.17
15:40
(16) Потому что это связано с представлением данных для пользователя, а не с обработкой.
18 dezss
 
11.05.17
15:44
(17) а это можно победить как-то оформлением, чтобы не пробегать по элементам отбора?
19 b_ru
 
11.05.17
15:45
(18) Дак элементарно "ДФ='ЧЧ:мм'"
20 dezss
 
11.05.17
15:45
(17) к тому же, отчет для этого самого представления и нужен
(19) для разности дат?
21 SSSSS_AAAAA
 
11.05.17
15:46
(7) Минут показывает 230. Что и есть 3.83 часа. Округляюшиеся до 4. При правильном переводе в 60-ричную систему как раз и получаются нужные 3 часа 50 минут. Но для этого надо вспомнить школьный курс математики.
22 dezss
 
11.05.17
15:48
(21) ну тут будет чуть-чуть не школьный курс...специфика 1с и ограничения в запросах заставляют думать)
23 Yrii-ay
 
11.05.17
15:50
Благодарю за ответы
24 b_ru
 
11.05.17
16:04
(20) Нет, для обычного минуса
25 dezss
 
11.05.17
16:07
(24) и для числа он преобразует?
Прям щас попробую...интересно стало...
26 dezss
 
11.05.17
16:10
(24) а ты это сам пробовал?
вот что у меня получилось
Формат(Дата(2017,05,11,16,10,00) - Дата(2017,05,11,14,25,00),"ДФ=""ЧЧ:мм""")    "6 300"    Строка
27 h-sp
 
11.05.17
16:15
(26) приколист, что ли? Так попробуй

Формат(Дата(1,1,1) + (Дата(2017,05,11,16,10,00) - Дата(2017,05,11,14,25,00)),"ДФ=""ЧЧ:мм""")
28 dezss
 
11.05.17
16:19
(27) опа...нипадумал....спасибо, зопейсал...
а если надо в том чсиле и с днями, месяцами и т.д., то надо вычитать этот лишний ден, месяц и год...хм...
29 dezss
 
11.05.17
16:20
(28) а это уже, кстати, довольно геморно...хоть и не понятно, понадобится ли такое...
30 SSSSS_AAAAA
 
11.05.17
16:25
(28) А вот насчет месяцев и лет обломайся. Ибо они переменной длины. И алгоритмов расчета в месяцах и годах несколько в зависимости от предметной области.
31 dezss
 
11.05.17
16:38
(30) так об этом я и написал, слишком много вариативности, поэтому вычисление - наше все, оно более универсально.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.