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