Начисления / Форма выбора видов времени / Модуль формы

файл
#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ВыбранныеВидыВремени = Параметры.ВыбранныеВидыВремени;
	ИсключаемыеВидыВремени = Параметры.ИсключаемыеВидыВремени;
	
	ЗаполнитьВидыВремени(ВыбранныеВидыВремени, ИсключаемыеВидыВремени);
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ВидыВремениВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	Если Поле.Имя = "ВидВремени" Тогда
		ПоказатьЗначение(, Элементы.ВидыВремени.ТекущиеДанные.ВидВремени);
		СтандартнаяОбработка = Ложь;
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура ОК(Команда)
	Закрыть(ПомеченныеВидыВремени());
КонецПроцедуры

&НаКлиенте
Процедура Отмена(Команда)
	Закрыть(Неопределено);
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервере
Процедура ЗаполнитьВидыВремени(ВыбранныеВидыВремени, ИсключаемыеВидыВремени)
	
	ВидыВремени.Очистить();
	
	ДополнительныеВыходныеДниНеОплачиваемые = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ДополнительныеВыходныеДниНеОплачиваемые");
	ОплачиваемыеНерабочиеДни = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ОплачиваемыеНерабочиеДни");
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ВыбранныеВидыВремени", ВыбранныеВидыВремени);
	Запрос.УстановитьПараметр("ИсключаемыеВидыВремени", ИсключаемыеВидыВремени);
    Запрос.УстановитьПараметр("ДополнительныеВыходныеДниНеОплачиваемые", ДополнительныеВыходныеДниНеОплачиваемые);
	Запрос.УстановитьПараметр("ОплачиваемыеНерабочиеДни", ОплачиваемыеНерабочиеДни);
	
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ВидыВремени.Ссылка КАК ВидВремени,
	|	ВЫБОР
	|		КОГДА ВидыВремени.Ссылка В (&ВыбранныеВидыВремени)
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ КАК Пометка,
	|	ВидыВремени.ЦифровойКод КАК ЦифровойКод
	|ИЗ
	|	Справочник.ВидыИспользованияРабочегоВремени КАК ВидыВремени
	|ГДЕ
	|	(ВидыВремени.РабочееВремя = ИСТИНА
	|			ИЛИ ВидыВремени.Ссылка = ЗНАЧЕНИЕ(Справочник.ВидыИспользованияРабочегоВремени.Командировка)
	|			ИЛИ ВидыВремени.Ссылка = &ДополнительныеВыходныеДниНеОплачиваемые
	|			ИЛИ ВидыВремени.Ссылка = &ОплачиваемыеНерабочиеДни)
	|	И НЕ ВидыВремени.Ссылка В (&ИсключаемыеВидыВремени)
	|	И ВидыВремени.ПометкаУдаления = ЛОЖЬ
	|	И ВидыВремени.НеИспользуется = ЛОЖЬ
	|
	|УПОРЯДОЧИТЬ ПО
	|	ЦифровойКод";
				
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		ЗаполнитьЗначенияСвойств(ВидыВремени.Добавить(), Выборка);
	КонецЦикла;
		
КонецПроцедуры

&НаСервере
Функция ПомеченныеВидыВремени()
	
	ПомеченныеВидыВремени = Новый Массив;
	Для Каждого Строка Из ВидыВремени Цикл
		Если Строка.Пометка Тогда
			ПомеченныеВидыВремени.Добавить(Строка.ВидВремени);
		КонецЕсли;
	КонецЦикла;
	
	Возврат ПомеченныеВидыВремени;
	
КонецФункции

#КонецОбласти

Связанные материалы