Добрый день Уважаемые коллеги. Помогите решить вопрос. Для табеля учета рабочего времени нужно определить сколько сорудник отработал в новное а сколько в древное время.

Например у нас есть 2 параметра (даты). Сотрудник начал работать 02.08.2012 01:00:00 а закончил 03.08.2012 12:00:00

Ночное время с 22:00 до 06:00. Итак получается, что
02.08.2012 он отработал
ночь - 7
вчего - 23

03.08.2012
ночь - 6
всего - 12

Эту информацию буду записывать в регистр что бы потом автоматически формировался табель.

Заранее благодарен за ответ.
---
Ну можно сделать как - то так:
 НочалоНочноеВремя = 22;
 ОкончаниеНочноеВремя = 6;

НачалоРаботыЧасы = Час(ДатаНачала);

ОкончаниеРаботаЧасы = Час(ДатаОкончания);

Если (НачалоРаботыЧасы>=НочалоНочноеВремя) Тогда
 Если НачалоРаботыЧасы < 24 Тогда
   ВремяДоПолуночи = 24- НачалоРаботыЧасы;
   НочныеЧасы = ВремяДоПолуночи + ОкончаниеНочноеВремя;
 Иначе
   ВремяПослеПолуночи = ОкончаниеНочноеВремя - ВремяДоПолуночи;
   НочныеЧасы = ВремяПослеПолуночи;
  КонецЕсли;

ИначеЕсли НачалоРаботыЧасы< ОкончаниеНочноеВремя Тогда
  НочныеЧасы = ОкончаниеНочноеВремя - НачалоРаботыЧасы;

КонецЕсли;

Если (ОкончаниеРаботаЧасы>ОкончаниеНочноеВремя) ИЛИ (ОкончаниеРаботаЧасы <НочалоНочноеВремя) Тогда
  ДневныеЧасы = ОкончаниеРаботаЧасы - ОкончаниеНочноеВремя;
 КонецЕсли;

 Сообщить("НочныеЧасы " + НочныеЧасы + " ДневныеЧасы " + ДневныеЧасы);

Единственное что если нужно учитывать обеденное время в ночные часы, то неоходимо будет пересчитать с учетом обеденного времени.
---
Zekert, сначала сравните дату начала выхода на работу и дату окончания. Если даты не совпадают это гарантированно дает ответ, что было 2 рабочих периода:
1. с времени выхода до 24-00
2. с 00-00 до времени окончания.

В первом случае сравниваете время выхода с 22-00 (начало ночных часов). Если время выхода меньше, то тут считаем 2 часа выхода. Если больше, считаем разницу часов между выходом и 24-00.
во втором случае сравниваем время окончания смены с 06-00 (окончание ночных часов). Если время выхода больше, то тут считаем 6 часов выхода. Если больше, то значит все отработанное время есть ночное.

Если же дата начала смены и окончания совпадают, то опять сравниваем начало смены с 06-00 и окончание смены с 22-00.

Внимание: уточните время обеденного перерыва для ночных смен. на них, возможно, придется корректировать ночное время. (Было в одной организации у нас, что если ночных часов было отработано 1,5 , то надо ставить 2, т.к. перерыв у ночной смены всего полчаса и т.п.)
---
Не совсем понятен вопрос. А вообще когда настриваете график работы там есть такие параметры как начало ночных часов и начало дневных часов.
---
если речь о банальном тогда может так?
Количество отработанных часов

РазностьДат = (КонПериода - НачПериода)/60;
 Сообщить("Минут " + Строка(РазностьДат));
 РазностьДат = РазностьДат/60;
 Сообщить("Часов " + Строка(РазностьДат));

а день это или ночь опередить условием типа вхождения в определённый промежуток времени

ЧасДаты = Час(КонПериод)
Если ЧасДаты >= День И ЧасДаты <= Ночь Тогда
//Бла бла бла это день и обработывать условие
Иначе
//Бла бла бла это ночь .......
КонецЕсли;

(2) Человек явно отписался в ветке прогамирования, а не в контретной тематики типа ЗУП.

а так совет порыться в типовых там всё уже давно описано
---
и на основании этого графика табель автоматически формируется.
---
Да я уже сама поняла, что не то пишу. уже когда написала сообщения, заметила что ветка программирования...
---
А мне еще добрые люди и плюсы за мои ответы поставили. Zekert, Удалите пожалуйста, мои сообщения
---
Ну можно сделать как - то так:
 НочалоНочноеВремя = 22;
 ОкончаниеНочноеВремя = 6;

НачалоРаботыЧасы = Час(ДатаНачала);

ОкончаниеРаботаЧасы = Час(ДатаОкончания);

Если (НачалоРаботыЧасы>=НочалоНочноеВремя) Тогда
 Если НачалоРаботыЧасы < 24 Тогда
   ВремяДоПолуночи = 24- НачалоРаботыЧасы;
   НочныеЧасы = ВремяДоПолуночи + ОкончаниеНочноеВремя;
 Иначе
   ВремяПослеПолуночи = ОкончаниеНочноеВремя - ВремяДоПолуночи;
   НочныеЧасы = ВремяПослеПолуночи;
  КонецЕсли;

ИначеЕсли НачалоРаботыЧасы< ОкончаниеНочноеВремя Тогда
  НочныеЧасы = ОкончаниеНочноеВремя - НачалоРаботыЧасы;

КонецЕсли;

Если (ОкончаниеРаботаЧасы>ОкончаниеНочноеВремя) ИЛИ (ОкончаниеРаботаЧасы <НочалоНочноеВремя) Тогда
  ДневныеЧасы = ОкончаниеРаботаЧасы - ОкончаниеНочноеВремя;
 КонецЕсли;

 Сообщить("НочныеЧасы " + НочныеЧасы + " ДневныеЧасы " + ДневныеЧасы);

Единственное что если нужно учитывать обеденное время в ночные часы, то неоходимо будет пересчитать с учетом обеденного времени.
---
а табелировщики не указывают разве готовые ночные и вечерние часы?