Виды работ сотрудников / Форма элемента / Модуль формы

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

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	УстановитьДоступность();
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	УстановитьВидимость();
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
	МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
	
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
	МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	// СтандартныеПодсистемы.Свойства
	Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда
		ОбновитьЭлементыДополнительныхРеквизитов();
		УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	КонецЕсли;
	// Конец СтандартныеПодсистемы.Свойства
	
КонецПроцедуры

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
	
	Если Объект.РасценкаПоТарифнойСетке И Не ЗначениеЗаполнено(Объект.Должность) Тогда
		ОбщегоНазначения.СообщитьПользователю(НСтр("ru='Поле ""Должность"" не заполнено'"), Объект.Ссылка, "Объект.Должность", , Отказ);
	КонецЕсли;
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
	// Конец СтандартныеПодсистемы.Свойства
	
КонецПроцедуры

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	
	МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);
	
КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
	
	МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ЕдиницаИзмеренияПриИзменении(Элемент)
	
	ЕдиницаИзмеренияПриИзмененииНаСервере();
	
	УстановитьДоступность();
	
	Элементы.ЕдиницаИзмеренияРасценки.СписокВыбора[0].Представление = ?(ЗначениеЗаполнено(Объект.ЕдиницаИзмерения),
																		Строка(Объект.ЕдиницаИзмерения),
																		НСтр("ru='<не задана>'"));
	
	Если ЕдиницаИзмеренияЧас Тогда
		ЕдиницаИзмеренияРасценки = 1;
	КонецЕсли;
	
	Объект.РасценкаЗаЧасРаботы = Булево(ЕдиницаИзмеренияРасценки);
	
КонецПроцедуры

&НаКлиенте
Процедура РасценкаВидаРаботПриИзменении(Элемент)
	
	Объект.РасценкаПоТарифнойСетке = Булево(РасценкаВидаРабот);
	
	Элементы.Должность.АвтоОтметкаНезаполненного = Объект.РасценкаПоТарифнойСетке;
	
	Если Объект.РасценкаПоТарифнойСетке Тогда
		ЕдиницаИзмеренияРасценки = 1;
		Объект.РасценкаЗаЧасРаботы = Истина;
	Иначе
		Элементы.Должность.ОтметкаНезаполненного = Ложь;
	КонецЕсли;
	
	УстановитьДоступность();
	
	НастроитьПанельНавигации();
	
КонецПроцедуры

&НаКлиенте
Процедура ЕдиницаИзмеренияРасценкиПриИзменении(Элемент)
	Объект.РасценкаЗаЧасРаботы = Булево(ЕдиницаИзмеренияРасценки);
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

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

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

// СтандартныеПодсистемы.Свойства

&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
	
	УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);
	
КонецПроцедуры
// Конец СтандартныеПодсистемы.Свойства

&НаСервере
Процедура УстановитьВидимость()
	
	ПараметрыТрудоемкости = Справочники.ВидыРаботСотрудников.ПараметрыАвтозаполенияТрудоемкости(Объект);
	Элементы.ГруппаТрудоемкость.Видимость = НЕ ЗначениеЗаполнено(ПараметрыТрудоемкости);
	
	ЕдиницаИзмеренияЧас = ЗначениеЗаполнено(ПараметрыТрудоемкости)
		И ПараметрыТрудоемкости.Трудоемкость = 1 И ПараметрыТрудоемкости.КратностьТрудоемкости = 1;
	
	НормированиеИРасценкаРаботПоТарифнымСеткам = Ложь;
	Элементы.РасценкаВидаРабот.Видимость = НормированиеИРасценкаРаботПоТарифнымСеткам;
	Элементы.РасценкаВидаРабот1.Видимость = НормированиеИРасценкаРаботПоТарифнымСеткам;
	Элементы.Должность.Видимость = НормированиеИРасценкаРаботПоТарифнымСеткам;
	
КонецПроцедуры

&НаСервере
Процедура ЕдиницаИзмеренияПриИзмененииНаСервере()
	
	УстановитьВидимость();
	
КонецПроцедуры

&НаКлиенте
Процедура УстановитьДоступность()
	Элементы.ЕдиницаИзмеренияРасценки.ТолькоПросмотр = ЕдиницаИзмеренияЧас ИЛИ Объект.РасценкаПоТарифнойСетке;
	Элементы.ЕдиницаИзмеренияРасценки1.ТолькоПросмотр = ЕдиницаИзмеренияЧас ИЛИ Объект.РасценкаПоТарифнойСетке;
КонецПроцедуры

&НаСервере
Процедура НастроитьПанельНавигации()
	
	СтруктураНастроек = Новый Структура;
	СтруктураНастроек.Вставить("ИспользоватьРасценкиРаботСотрудников", НЕ Булево(РасценкаВидаРабот));
	
	ОбщегоНазначенияУТ.НастроитьФормуПоПараметрам(ЭтотОбъект, СтруктураНастроек);
	
КонецПроцедуры

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

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