Добрый день. Подскажите, как решить. Есть отчет который показывает документ, время начала и окончания выполнения, время затраченное на выполнение. В течении рабочего дня есть перерывы каждый час по 5 минут и обед. Как исключить перерывы из времени затраченного на выполнение?
---
Если предположить что следующие колонки статичные: Этап, ДатаН, ДатаК, ПланВремени.
То к этой таблице прицепить таблицу с вашим расписанием перерывов по Перерыв_ДатаН между ДатаН И ДатаК ИЛИ Перерыв_ДатаК между ДатаН И ДатаК.
Далее пересчитываете немного дату начала и окончания перерыва, что бы она не выпадала за периоды работы по этапу:
IIF(Перерыв_ДатаН<ДатаН, ДатаН, Перерыв_ДатаН) КАК Перерыв_ДатаН
IIF(Перерыв_ДатаК<ДатаК, Перерыв_ДатаК, ДатаК) КАК Перерыв_ДатаК
Считаете количество секунд между Перерыв_ДатаН и Перерыв_ДатаК. Суммируете по каждому этапу (вспоминаем статичные колонки).
Далее у вас есть Этап, ДатаН, ДатаК, ПланВремени и количество секунд перерыва, приходящиеся на этап.
Делайте с этим уже что хотите.
---
В течении рабочего дня есть перерывы каждый час по 5 минут и обед.
А где расписание перерывов?
Решение - из одной таблицы вычесть другую.
Но, выходные данные период каким оставлять поделенным на эти перерывы или без изменений? Если поделенным, то план как делить?

Ещё раз задачу надо сформулировать. Рассказать полностью про входные данные, а не только упомянуть что они где-то есть.
Нарисовать пример: входные и результат.
---
Регистр с расписанием добавлю как на скрине.
Результат тоже на скрине. Нужно из времени окончания вычесть время начала и все перерывы которые попали в интервал.
---
Перевести перерывы в секунды и отнять от чего нужно
---
Непонятно когда временной интервал включает в себя перерыв. Таких перерывов может быть несколько или вообще не быть. Например если время начала 09:00 а время окончания 09:30 то перерыв будет с 09:00 до 09:05. Если время начала 09:10 а время окончания 09:50 то перерыва не будет.
---
По дням недели не меняется?
09:00-09:30 пересекается со следующей строкой 09:10-09:30. Как это интерпретировать? Одновременно две работы? Это по одному исполнителю или по нескольким? Собственно как работы могут идти параллельно? Или не в человеко-часах считаем?
Или каждый этап - один исполнитель? Примерно как конвейер, в котором исполнители не переходят на разные места работы.
---
Если предположить что следующие колонки статичные: Этап, ДатаН, ДатаК, ПланВремени.
То к этой таблице прицепить таблицу с вашим расписанием перерывов по Перерыв_ДатаН между ДатаН И ДатаК ИЛИ Перерыв_ДатаК между ДатаН И ДатаК.
Далее пересчитываете немного дату начала и окончания перерыва, что бы она не выпадала за периоды работы по этапу:
IIF(Перерыв_ДатаН<ДатаН, ДатаН, Перерыв_ДатаН) КАК Перерыв_ДатаН
IIF(Перерыв_ДатаК<ДатаК, Перерыв_ДатаК, ДатаК) КАК Перерыв_ДатаК
Считаете количество секунд между Перерыв_ДатаН и Перерыв_ДатаК. Суммируете по каждому этапу (вспоминаем статичные колонки).
Далее у вас есть Этап, ДатаН, ДатаК, ПланВремени и количество секунд перерыва, приходящиеся на этап.
Делайте с этим уже что хотите.
---
Получилось?
---
```1c
    Далее пересчитываете немного дату начала и окончания перерыва, что бы она не выпадала за периоды работы по этапу:
    IIF(Перерыв_ДатаН<ДатаН, ДатаН, Перерыв_ДатаН) КАК Перерыв_ДатаН
    IIF(Перерыв_ДатаК<ДатаК, Перерыв_ДатаК, ДатаК) КАК Перерыв_ДатаК
    Считаете количество секунд между Перерыв_ДатаН и Перерыв_ДатаК. Суммируете по каждому этапу (вспоминаем статичные колонки).
```

Эту часть не понял.
---
Тут вопросов нет?
```1c
    выбор когда Перерыв_ДатаН<ДатаН тогда ДатаН иначе Перерыв_ДатаН конец КАК Перерыв_ДатаН,
    выбор когда Перерыв_ДатаК<ДатаК тогда Перерыв_ДатаК иначе ДатаК конец КАК Перерыв_ДатаК
```
---
Тут во второй строке вроде бы сравнение в другую сторону ">" и получается. Просто еще не доделал до конца.
---
Тогда и иначе наоборот по сравнению с первой строкой.
---
Тут вопросов нет?
```1c
    ...
    РазностьДат(ДатаН, ДатаК, СЕКУНДА) КАК СекундРаботы,
    Сумма(РазностьДат(Перерыв_ДатаН, Перерыв_ДатаК, СЕКУНДА)) КАК СекундПерерыва
    ...
    сгруппировать по Этап, ДатаН, ДатаК, ПланВремени
```

После присоединения на NULL же проверку сделали?
Что-то типа такого:

```1c
    Сумма(выбор когда Перерыв_ДатаН есть NULL
    тогда 0
    иначе РазностьДат(Перерыв_ДатаН, Перерыв_ДатаК, СЕКУНДА)
    конец) КАК СекундПерерыва
```
---
Ещё необходимо учесть переходящие этапы с даты на дату. Т.е. например начало в 23:50:00 окончание на следующий день.
Если конечно такие есть.
Получилось?
---
Получилось?
---
Да. Большое спасибо.
---
Не за что.