Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Алгоритм расчета работы по часам

Алгоритм расчета работы по часам
Я
   Dmitrith
 
09.10.18 - 14:05
Дано: сотрудники работают с плавающим графиком, есть ночные/дневные, плавающее время обеда у каждого. Необходимо в часах посчитать выработку сотрудников. Сейчас (не до конца допиленный и не тестил еще) алгоритм вырисовывается такой, но как-то он мне не нравится. Подскажите есть ли более красивое решение разобрать работу по часам?

    ВремяДневное = 0;
    ВремяНочное = 0;
    Если ЕстьНочные Тогда
        Если ЕстьОбед Тогда
            ВремяДневное = НачалоНочных - НачалоСмены;
            Если КонецСмены > КонецНочных Тогда
                ВремяДневное = ВремяДневное + (КонецСмены - КонецНочных);
            КонецЕсли;
            Если НачалоНочных > КонецНочных Тогда
                ВремяНочное = (Дата("01.01.0001  23:59:59") - НачалоНочных) + (КонецНочных - Дата("01.01.0001  00:00:00"));
            Иначе
                ВремяНочное = КонецНочных - НачалоНочных;
            КонецЕсли;
            ОбедДневной = 0;
            ОбедНочной = 0;
        Иначе
            ВремяДневное = НачалоНочных - НачалоСмены;
            Если КонецСмены > КонецНочных Тогда
                ВремяДневное = ВремяДневное + (КонецСмены - КонецНочных);
            КонецЕсли;
            Если НачалоНочных > КонецНочных Тогда
                ВремяНочное = (Дата("01.01.0001  23:59:59") - НачалоНочных) + (КонецНочных - Дата("01.01.0001  00:00:00"));
            Иначе
                ВремяНочное = КонецНочных - НачалоНочных;
            КонецЕсли;
        КонецЕсли;
    Иначе
        Если ЕстьОбед Тогда
            ВремяДневное = (КонецСмены - КонецОбеда) + (НачалоОбеда - НачалоСмены);
        Иначе
            ВремяДневное = КонецСмены - НачалоСмены;
        КонецЕсли;
    КонецЕсли;
 
 
   Krendel
 
1 - 09.10.18 - 14:59
Табель спасет отца русской демократии

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует