Имя: Пароль:
1C
1C 7.7
v7: Время между двумя датами (учитывать рабочее время)
0 vova1122
 
15.08.17
15:18
Может кто делал такое. Есть 4 реквизита (2 даты и 2 реквизита времени к этим датам)
Нужно найти разность по времени между этими датами, только исключить из этого времени нерабочие часы (например учитывать только 8-ми часовой рабочий день)
1 vova1122
 
15.08.17
15:30
Есть дата и время начала работ, время и дата окончания работ. Нужно узнать сколько всего по времени делалась работа. (именно делалась. Ведь когда работник спал то работа естественно не выполнялась)
2 Волшебник
 
модератор
15.08.17
15:30
Запрограммируй.
3 Волшебник
 
модератор
15.08.17
15:33
Заведи НачалоРабочегоДня и КонецРабочегоДня.
Пусть они хранят часы и минуты.
И ДлительностьДня в часах, чтобы легче было считать

Далее рассчитай три интервала:
1) НачалоПериода - НачалоРабочегоДня в рабочих часах/минутах
2) КонецРабочегоДня - КонецПериода
3) (КонецПредыдущегоДня - НачалоСледующегоДня) в днях * ДлительностьДня
Всё сложи.
4 vova1122
 
15.08.17
15:36
(3) еще нужно исключить Субботу и Воскресенье
5 piter3
 
15.08.17
15:38
(4) календарь или производственный календарь есть в бд?
6 vova1122
 
15.08.17
15:40
(5) нет. база самописная. Календаря нет.
7 piter3
 
15.08.17
15:41
(6) сделай,проще будет
8 Волшебник
 
модератор
15.08.17
15:42
(4) Ну раз нужно, то сделай, конечно.
9 vova1122
 
15.08.17
15:42
(7) можно сделать, хотя ради одной хотелки еще и календарь вести....
10 Волшебник
 
модератор
15.08.17
15:42
Ещё больничные надо пропускать.
11 vova1122
 
15.08.17
15:43
(10) это уже лишнее
12 piter3
 
15.08.17
15:43
(9) нет ну можно попробовать из внешних ресурсов брать
13 МихаилМ
 
15.08.17
15:43
была похожая задача на олимпиаде по программированию для 8-классников .районный тур. время решения 7 минут. решить в 1 формулу
14 Волшебник
 
модератор
15.08.17
15:44
(11) Тогда расчёт будет неточный. Сотрудник в отпуске или болеет, а ты ему рабочее время считаешь.
15 El_Duke
 
гуру
15.08.17
15:45
(11) Это не лишнее, а самое главное
Без учета неявок у тебя все время будет рабочим. Чел мог бухой в прогуле валяться, а ему насчитается как за отработанное время
16 vova1122
 
15.08.17
15:46
(14) не рабочее время. А время выполнения конкретного задания.  Это задание может выполнять или другой человек, или целая бригада работников. Нужно узнать время за сколько это задание сделано, а кто его делал - неважно.
17 Волшебник
 
модератор
15.08.17
16:00
(16) Надо, так надо. Приступай.
18 vova1122
 
15.08.17
16:11
(17) это понятно. Думал может кто-то делал такое. чтобы не изобретать велосипед с квадратными колесами....
19 Волшебник
 
модератор
15.08.17
20:07
(18) У нас на восьмёрке всё работает.
21 vova1122
 
16.08.17
11:07
(19) да слышал я что разность дат в восьмерке исчисляется в секундах......
22 Волшебник
 
модератор
16.08.17
11:08
(21) В нашей конфе есть функция, которая вычисляет разность дат в рабочих днях и часах
23 vova1122
 
16.08.17
11:11
(22) круто. Ниче не скажешь....
24 Duke1C
 
16.08.17
21:38
(4) И в чём проблема собственно?