Функция ДобавитьКоличествоРабочихЧасов(Знач ДатаНачала, КоличествоЧасов = 1)
// Проверка: рабочий день?
НомерДня = ДеньНедели(ДатаНачала);
Если НомерДня < 1 ИЛИ НомерДня > 5 Тогда
Возврат ДатаНачала;
КонецЕсли;
// Проверка: время от 8:00 до 17:00?
Ч = Час(ДатаНачала);
Если Ч < 8 ИЛИ Ч >= 17 Тогда
Возврат ДатаНачала;
КонецЕсли;
ТекДата = ДатаНачала;
Осталось = КоличествоЧасов;
Пока Осталось > 0 Цикл
КонецРабДня = НачалоДня(ТекДата) + 17 * 3600;
ЧасовДоКонца = (КонецРабДня - ТекДата) / 3600;
Если Осталось <= ЧасовДоКонца Тогда
ТекДата = ТекДата + Осталось * 3600;
Осталось = 0;
Иначе
Осталось = Осталось - ЧасовДоКонца;
ТекДата = НачалоДня(ТекДата) + 86400;
Пока ДеньНедели(ТекДата) > 5 Цикл
ТекДата = ТекДата + 86400;
КонецЦикла;
ТекДата = ТекДата + 8 * 3600;
КонецЕсли;
КонецЦикла;
Возврат ТекДата;
КонецФункции
// === ОСНОВНОЙ КОД ===
Д = Дата(1, 1, 1);
ВвестиДату(Д, "Введите дату и время начала", ЧастьДаты.ДатаВремя);
Ч = 0;
ВвестиЧисло(Ч, "Введите количество рабочих часов", 5, 0);
Рез = ДобавитьКоличествоРабочихЧасов(Д, Ч);
Ф = "ДФ=""дд.ММ.гггг ЧЧ:мм""";
Сообщить("Начало: " + Формат(Д, Ф));
Сообщить("Результат: " + Формат(Рез, Ф));