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