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

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 или кнопку "Обновить" в браузере.
Рекламное место пустует