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