Загрузка данных


&НаКлиенте
Процедура Команда6(Команда)
	Перем ДатаНачала, КоличествоРабочихДней;
	ОчиститьСообщения();
	
	ВвестиДату(ДатаНачала, "Введите дату начала", ЧастиДаты.Дата);
	
	Если ДеньНедели(ДатаНачала) = 6 или ДеньНедели(ДатаНачала) = 7 тогда
		Сообщить("Ошибка. Ваша дата не в рабочий день");
	Иначе
		ВвестиЧисло(КоличествоРабочихДней, "Введите количество рабочих дней");
		Если КоличествоРабочихДней < 0 тогда
			Сообщить("Ошибка. Количество дней не может быть отрицательным");
		Иначе
			Результат = ДобавитьРабочийДень(ДатаНачала,КоличествоРабочихДней);
			Сообщить("Последний рабочий день: " + Формат(Результат, "ДФ = ""дд.ММ.гггг"" "));
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры

Функция ДобавитьРабочийДень(ДатаНачала,КоличествоРабочихДней)
	День = 24*3600;
	Для i = 1 по КоличествоРабочихДней Цикл
		Если ДеньНедели(ДатаНачала) <> 6 и ДеньНедели(ДатаНачала) <> 7 тогда
			ДатаНачала = ДатаНачала + День;
		Иначе
			i = i-1;
			ДатаНачала = ДатаНачала + День;
		КонецЕсли;
	КонецЦикла;
	Возврат ДатаНачала;
КонецФункции

&НаКлиенте
Процедура Команда7(Команда)
	Перем Дата, Часы;
	ОчиститьСообщения();
	
	ВвестиДату(Дата, "Введите дату начала", ЧастиДаты.ДатаВремя);
	Если ДеньНедели(Дата) = 6 или ДеньНедели(Дата) = 7 тогда
		Сообщить("Ошибка, ваша дата не в рабочий день");
	ИначеЕсли Час(Дата) < 8 или Час(Дата) > 17 тогда
		сообщить("Ошибка, ваше время не в рабочее время");
	Иначе
		ВвестиЧисло(Часы, "Введите количество рабочих часов");
		Если Часы < 0 тогда
			Сообщить("Ошибка, часы не должны быть отрицательные");
		Иначе
			Результат = ДобавитьКоличествоРабочихЧасов(дата,часы); 
			Сообщить("Конец работы: "+ Результат);
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры

функция ДобавитьКоличествоРабочихЧасов(ДатаНачала, КоличествоЧасов)
	ЧислоДней = Цел(КоличествоЧасов / 9);
	День = 24*3600;
	Для i=1 по ЧислоДней Цикл
		Если ДеньНедели(ДатаНачала) <> 6 и ДеньНедели(ДатаНачала) <> 7 тогда
			КоличествоЧасов = КоличествоЧасов - 9;
			ДатаНачала = ДатаНачала + День;
		Иначе
			i = i-1;
			ДатаНачала = ДатаНачала + День;
		КонецЕсли;
	КонецЦикла;
	ДатаНачала = ДатаНачала + КоличествоЧасов * 3600;
	Возврат ДатаНачала;
конецфункции