Имя: Пароль:
1C
1С v8
Алгоритм расчета работы по часам
0 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"));
            Иначе
                ВремяНочное = КонецНочных - НачалоНочных;
            КонецЕсли;
        КонецЕсли;
    Иначе
        Если ЕстьОбед Тогда
            ВремяДневное = (КонецСмены - КонецОбеда) + (НачалоОбеда - НачалоСмены);
        Иначе
            ВремяДневное = КонецСмены - НачалоСмены;
        КонецЕсли;
    КонецЕсли;
1 Krendel
 
09.10.18
14:59
Табель спасет отца русской демократии
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший