- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
Для каждого стр из Объект.УчётВремени цикл
НРВ = 0;
Если
НачалоДня(стр.ДатаНачала) <> НачалоДня(стр.ДатаОкончания)
Тогда
НРВ = НРВ + (стр.ДатаОкончания - Стр.ДатаНачала) /60 /60
ИначеЕсли //Начало и окончание задачи до начала рабочего дня
(Час(стр.ДатаНачала) < 10 или ( Час(стр.ДатаНачала) = 10 и Минута(стр.ДатаНачала) <=30)) и
(Час(стр.ДатаОкончания) < 10 или ( Час(стр.ДатаОкончания) = 10 и Минута(стр.ДатаОкончания) <=30))
Тогда
НРВ = НРВ + ((стр.ДатаОкончания - стр.ДатаНачала) /60 /60)
ИначеЕсли //Начало задачи до начала рабочего дня, окончание во время рабочего дня
(Час(стр.ДатаНачала) < 10 или ( Час(стр.ДатаНачала) = 10 и Минута(стр.ДатаНачала) <=30)) и
(Час(стр.ДатаОкончания) < 19 и (Час(стр.ДатаОкончания) > 11 или ( Час(стр.ДатаОкончания) = 10 и Минута(стр.ДатаОкончания) > 30)))
Тогда
НРВ = НРВ + ((НачалоДня(стр.ДатаОкончания) + ((10*60)*60) + 1800 - стр.ДатаНачала) /60 /60)
ИначеЕсли //Начало задачи в рабочее время и окончание задачи в нерабочее время
(Час(стр.ДатаНачала) < 19 и (Час(стр.ДатаНачала) > 11 или ( Час(стр.ДатаНачала) = 10 и Минута(стр.ДатаНачала) > 30))) и
Час(Стр.ДатаОкончания) >= 19
Тогда
НРВ = НРВ + (стр.ДатаНачала - (НачалоДня(стр.ДатаОкончания) + ((19*60)*60))) /60 /60
ИначеЕсли
Час(стр.ДатаНачала) >= 19 и Час(стр.ДатаОкончания) >= 19
Тогда
НРВ = (стр.ДатаОкончания - Стр.ДатаНачала) /60 /60
КонецЕсли;
стр.НРВ = НРВ;
Время = (стр.ДатаОкончания - стр.ДатаНачала) /60 /60;
РВ = Время - НРВ;
стр.РВ = РВ;
стр.Время = Время;
КонецЦикла;
Комментарии (0) RSS
Добавить комментарий