1. 1C / Говнокод #23427

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 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;
    			РВ = Время - НРВ;
    			стр.РВ = РВ;
    			стр.Время = Время;
    			
    			
    		КонецЦикла;

    Вроде работает

    Запостил: spaceashot, 18 Октября 2017

    Комментарии (0) RSS

    Добавить комментарий

    Ошибка компиляции комментария:
    1. Гости могут высказаться только во вторник, пятницу или субботу
    ava Семь раз отмерь — один отрежь, guest!
    А не использовать ли нам bbcode?
    • [b]жирный[/b] — жирный
    • [i]курсив[/i] — курсив
    • [u]подчеркнутый[/u] — подчеркнутый
    • [s]перечеркнутый[/s] — перечеркнутый
    • [blink]мигающий[/blink] — мигающий
    • [color=red]цвет[/color] — цвет (подробнее)
    • [size=20]размер[/size] — размер (подробнее)
    • [code=<language>]some code[/code] (подробнее)
    Проверочный код