Сотрудники / Бухучет / Модуль формы

файл

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

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

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

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

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

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

#Область ОбработчикиСобытийЭлементовТаблицыБухучетНачислений

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

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

#Область ОбработчикиСобытийЭлементовТаблицыБухучетНачисленийИстория

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

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

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

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

&НаКлиенте
Процедура БухучетЗарплатыСотрудниковИстория(Команда)

	ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОткрытьФормуИсторииБухучетЗарплатыСотрудниковЗавершение", ЭтотОбъект);
	ОтражениеЗарплатыВБухучетеКлиентРасширенный.ОткрытьФормуИсторииБухучетЗарплатыСотрудников(СотрудникСсылка, ЭтотОбъект, ОповещениеОЗакрытии);

КонецПроцедуры

&НаКлиенте
Процедура БухучетНачисленийОбновить(Команда)
	
	ПрочитатьБухучетНачислений();
	
КонецПроцедуры

&НаКлиенте
Процедура БухучетНачисленийИсторияОбновить(Команда)
	ПрочитатьИсториюБухучетаНачислений();
КонецПроцедуры

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

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

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

&НаКлиенте
Функция ЗаблокироватьОбъектВФормеВладельце() Экспорт
	
	Возврат СотрудникиКлиент.ЗаблокироватьОбъектВФормеВладельцеДополнительнойФормы(ЭтотОбъект, Истина, Ложь);
	
КонецФункции

&НаСервере
Процедура ЗаполнитьБухучетЗарплатыСотрудника()

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

КонецПроцедуры

&НаСервере
Процедура ПрочитатьБухучетНачислений()

	БухучетНачислений.Очистить();
	
	ТаблицаБухучетНачислений = ОтражениеЗарплатыВБухучетеРасширенный.БухучетНачисленийСотрудника(СотрудникСсылка, ОбщегоНазначения.ТекущаяДатаПользователя());
	МинимальнаяДата = Дата(1,1,1);
	Для каждого СтрокаТЗ Из ТаблицаБухучетНачислений Цикл
		МинимальнаяДата = ?(ЗначениеЗаполнено(МинимальнаяДата), Мин(СтрокаТЗ.ДатаНачала, МинимальнаяДата), СтрокаТЗ.ДатаНачала);
		ЗаполнитьЗначенияСвойств(БухучетНачислений.Добавить(), СтрокаТЗ);
	КонецЦикла;
	
	ИспользуетсяЕНВД = Ложь;
	Если ЗначениеЗаполнено(МинимальнаяДата) Тогда
		ИспользуетсяЕНВД = ОтражениеЗарплатыВБухучете.ИспользуетсяЕНВД(МинимальнаяДата);
	КонецЕсли;
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"БухучетНачисленийОтношениеКЕНВД",
		"Видимость",
		ИспользуетсяЕНВД);

КонецПроцедуры

&НаКлиенте
Процедура ОткрытьФормуИсторииБухучетЗарплатыСотрудниковЗавершение(Результат, Параметры) Экспорт

	ЗаполнитьБухучетЗарплатыСотрудника();

КонецПроцедуры

&НаСервере
Процедура ПрочитатьИсториюБухучетаНачислений()

	БухучетНачисленийИстория.ПолучитьЭлементы().Очистить();
	
	ИсходноеДерево = РеквизитФормыВЗначение("БухучетНачисленийИстория");
	
	ДеревоИстории = ОтражениеЗарплатыВБухучетеРасширенный.ИсторияБухучетаНачисленийСотрудника(СотрудникСсылка);
	МинимальнаяДата = Дата(1,1,1);
	Для каждого СтрокаДерева Из ДеревоИстории.Строки Цикл
	
		НоваяСтрока = ИсходноеДерево.Строки.Добавить();
		НоваяСтрока.Начисление = СтрокаДерева.Начисление;
		
		Для каждого ПодчиненнаяСтрока Из СтрокаДерева.Строки Цикл
			НоваяПодчиненнаяСтрока = НоваяСтрока.Строки.Добавить();
			ЗаполнитьЗначенияСвойств(НоваяПодчиненнаяСтрока, ПодчиненнаяСтрока);
			МинимальнаяДата = ?(ЗначениеЗаполнено(МинимальнаяДата), Мин(ПодчиненнаяСтрока.Период, МинимальнаяДата), ПодчиненнаяСтрока.Период);
		КонецЦикла;
	
	КонецЦикла;
	
	ЗначениеВРеквизитФормы(ИсходноеДерево, "БухучетНачисленийИстория");
	
	ИспользуетсяЕНВД = Ложь;
	Если ЗначениеЗаполнено(МинимальнаяДата) Тогда
		ИспользуетсяЕНВД = ОтражениеЗарплатыВБухучете.ИспользуетсяЕНВД(МинимальнаяДата);
	КонецЕсли;
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"БухучетНачисленийИсторияОтношениеКЕНВД",
		"Видимость",
		ИспользуетсяЕНВД);

КонецПроцедуры

&НаСервере
Процедура УстановитьУсловноеОформление()

	ТекстПустогоЗначения = НСтр("ru='<подбирается автоматически>'");
	
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", ТекстПустогоЗначения);
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ПоясняющийТекст);
	ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("БухучетНачислений.СтатьяФинансирования");
	ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); 
	ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("БухучетНачисленийСтатьяФинансирования");
	
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", ТекстПустогоЗначения);
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ПоясняющийТекст);
	ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("БухучетНачислений.СтатьяРасходов");
	ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); 
	ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("БухучетНачисленийСтатьяРасходов");
	
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", ТекстПустогоЗначения);
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ПоясняющийТекст);
	ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("БухучетНачислений.СпособОтраженияЗарплатыВБухучете");
	ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); 
	ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("БухучетНачисленийСпособОтраженияЗарплатыВБухучете");
	
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", ТекстПустогоЗначения);
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ПоясняющийТекст);
	ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("БухучетНачисленийИстория.СтатьяФинансирования");
	ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); 
	ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("БухучетНачисленийИсторияСтатьяФинансирования");
	
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", ТекстПустогоЗначения);
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ПоясняющийТекст);
	ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("БухучетНачисленийИстория.СтатьяРасходов");
	ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); 
	ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("БухучетНачисленийИсторияСтатьяРасходов");
	
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", ТекстПустогоЗначения);
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ПоясняющийТекст);
	ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("БухучетНачисленийИстория.СпособОтраженияЗарплатыВБухучете");
	ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); 
	ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("БухучетНачисленийИсторияСпособОтраженияЗарплатыВБухучете");

КонецПроцедуры

&НаКлиенте
Процедура СохранитьИЗакрытьНаКлиенте(ЗакрытьФорму = Истина) Экспорт 

	Если ЗакрытьФорму Тогда
		Закрыть();
	КонецЕсли;
	
КонецПроцедуры

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

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