Имя: Пароль:
1C
1С v8
Подскажите формулу. (разность в часах с учетом рабочего дня)
,
0 Aswed
 
29.05.17
14:49
Есть время начала выполнения операции.

27.05.17 16:15
И время окончания
29.05.17 12:02

Подскажите как посчитать сколько РАБОЧЕГО времени выполнялась задача, учитывая что рабочий день с 10 до 19?

Я вот ни как не могу придумать универсальную формулу.
Может кто делал уже подобное.
1 1dvd
 
29.05.17
14:51
В запросе или так?
2 RomanYS
 
29.05.17
14:59
Найти пересечения, просуммировать их длительность
3 Йохохо
 
29.05.17
15:00
разностьдат(1-2, ДЕНЬ)*9 + (19:00 - время1) - (19:00 - время2)
4 Tankur
 
29.05.17
15:01
кодом или запросом надо?
5 Йохохо
 
29.05.17
15:01
круто)
6 Tankur
 
29.05.17
15:01
(3) Надо с учетом рабочего времени.
7 Fish
 
29.05.17
15:02
Имхо, тут только цикл городить.
8 RomanYS
 
29.05.17
15:02
(3) а где выходные, праздники, обеды?
9 RomanYS
 
29.05.17
15:06
(7) в запросе легко (2) делается
10 Fish
 
29.05.17
15:07
(9) Покажи пример.
11 Aswed
 
29.05.17
15:08
(1) Так.
12 Tankur
 
29.05.17
15:08
Регистры расчета: Базовые периоды

спасут вас.
Эта ВТ создана для ваших случаев
13 Aswed
 
29.05.17
15:08
(8) Выходные праздники обеда можно опустить. Фирма работает без выходных.
14 aleks_default
 
29.05.17
15:09
(8)+ смены, графики работы
15 RomanYS
 
29.05.17
15:13
(10)
ВЫБРАТЬ
    ВЫБОР
        КОГДА ВТ.Начало > ВТ1.Начало
            ТОГДА ВТ.Начало
        ИНАЧЕ ВТ1.Начало
    КОНЕЦ КАК Начало,
    ВЫБОР
        КОГДА ВТ.Конец < ВТ1.Конец
            ТОГДА ВТ.Конец
        ИНАЧЕ ВТ1.Конец
    КОНЕЦ КАК Конец
ПОМЕСТИТЬ Пересечения
ИЗ
    ВТ КАК ВТ
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК ВТ1
        ПО (ВЫБОР
                КОГДА ВТ.Начало > ВТ1.Начало
                    ТОГДА ВТ.Начало
                ИНАЧЕ ВТ1.Начало
            КОНЕЦ < ВЫБОР
                КОГДА ВТ.Конец < ВТ1.Конец
                    ТОГДА ВТ.Конец
                ИНАЧЕ ВТ1.Конец
            КОНЕЦ)
16 Fish
 
29.05.17
15:17
(15) Круто, но не очень понятно. ВТ.Начало и ВТ.Конец - это я так понял даты начала и конца (27.05.17 16:15 и 29.05.17 12:02 ), а ВТ1.Начало и ВТ1.Конец - это рабочее время? Или наоборот?

И как здесь учтено, что весь период на несколько дней попадает?
17 Aswed
 
29.05.17
15:21
+ (16) Да да. Требуется пояснение что за параметры.
18 RomanYS
 
29.05.17
15:54
(16) (17) подразумеваются 2 разных таблицы с периодами. Запрос находит пересечения. В одной из таблиц должны быть графики (с датами и временем), если такой таблицы нет - то придется ее предварительно создать.

с учетом (13) проще допилить (точнее исправить ошибки) (3)
19 dezss
 
29.05.17
16:10
(18) а какие в (3) ошибки? вроде все правильно.
20 Aswed
 
29.05.17
16:14
(18) Блин с таблицей периодов оно и понятно что можно натворить делов)))
А вот если её нет)))
21 Вафель
 
29.05.17
16:15
(20) а как  ты выходные и праздники тогда определишь?
22 RomanYS
 
29.05.17
16:15
(19) непонятно зачем там 19:00 два раза.
Ну и непонятно могут ли быть начала или конец вне смены.
23 RomanYS
 
29.05.17
16:18
С учетом (13) формула примитивна: берем полную разность дат и вычитаем количество полных суток умноженное на 15 (нерабочее время). Это конечно если границы приходятся на рабочее время.
24 dezss
 
29.05.17
16:33
(22) на невсмену там не проверяется, это да.
А 2 раза оно там и надо, просто он прибавляет то время, что было отработано в первый день и вычитает то, что не было отработано в последний, как-то так.