#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Ключ.Пустая() Тогда
ОблагаетсяНДФЛ = 1;
КонецЕсли;
ДатаИзмененийК353ФЗ = ЗарплатаКадрыПовтИсп.ДатаВступленияВСилуНА("ИзмененияК353ФЗ");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ВидДоходаИсполнительногоПроизводства",
"Заголовок",
СтрШаблон(НСтр("ru = 'Вид дохода (исполнительные листы) до %1'"), Формат(ДатаИзмененийК353ФЗ,"ДЛФ=D")));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ВидДоходаИсполнительногоПроизводства2022",
"Заголовок",
СтрШаблон(НСтр("ru = 'Вид дохода (исполнительные листы) с %1'"), Формат(ДатаИзмененийК353ФЗ,"ДЛФ=DD")));
ВидыДоходовИсполнительногоПроизводстваКлиентСервер.НастроитьПолеВидДоходаДляВыплатыЗарплаты(ЭтотОбъект,ДатаИзмененийК353ФЗ - 1);
ВидыДоходовИсполнительногоПроизводстваКлиентСервер.НастроитьПолеВидДоходаДляВыплатыЗарплаты(ЭтотОбъект,ДатаИзмененийК353ФЗ, "ВидДоходаИсполнительногоПроизводства2022");
УстановитьДоступностьКодаДоходаНДФЛ(ЭтаФорма);
КодДоходаНДФЛПрежнееЗначение = Объект.КодДоходаНДФЛ;
КатегорияДоходаПрежнееЗначение = Объект.КатегорияДохода;
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтаФорма);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
ОблагаетсяНДФЛ = ?(ЗначениеЗаполнено(Объект.КодДоходаНДФЛ),1,0);
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
Если ОблагаетсяНДФЛ = 1 Тогда
Если Не ЗначениеЗаполнено(Объект.КодДоходаНДФЛ) Тогда
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Код дохода НДФЛ не заполнен.'"), , , "Объект.КодДоходаНДФЛ" , Отказ);
ИначеЕсли Не ЗначениеЗаполнено(Объект.КатегорияДохода) Тогда
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Категория дохода не заполнена.'"), , , "Объект.КатегорияДохода" , Отказ);
КонецЕсли;
КонецЕсли;
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ОблагаетсяНДФЛПриИзменении(Элемент)
Если ОблагаетсяНДФЛ = 1 Тогда
Объект.КодДоходаНДФЛ = КодДоходаНДФЛПрежнееЗначение;
Объект.КатегорияДохода = КатегорияДоходаПрежнееЗначение;
Иначе
КодДоходаНДФЛПрежнееЗначение = Объект.КодДоходаНДФЛ;
КатегорияДоходаПрежнееЗначение = Объект.КатегорияДохода;
Объект.КодДоходаНДФЛ = Неопределено;
Объект.КатегорияДохода = Неопределено;
КонецЕсли;
УстановитьДоступностьКодаДоходаНДФЛ(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура КодДоходаНДФЛПриИзменении(Элемент)
Объект.СтрокаРаздела2Расчета6НДФЛ = УчетНДФЛКлиентПовтИсп.СтрокаРаздела2Расчета6НДФЛПоКодуДохода(Объект.КодДоходаНДФЛ);
Объект.КатегорияДохода = УчетНДФЛКлиентПовтИсп.КатегорияДоходаПоКоду(Объект.КодДоходаНДФЛ);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьКодаДоходаНДФЛ(Форма)
ДоступностьКодаНДФЛ = Форма.ОблагаетсяНДФЛ = 1;
Объект = Форма.Объект;
Элементы = Форма.Элементы;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "КодДоходаНДФЛ", "Доступность", ДоступностьКодаНДФЛ);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "КодДоходаНДФЛ", "АвтоОтметкаНезаполненного", ДоступностьКодаНДФЛ);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "КодДоходаНДФЛ", "ОтметкаНезаполненного",
НЕ ЗначениеЗаполнено(Объект.КодДоходаНДФЛ));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "КатегорияДохода", "Доступность", ДоступностьКодаНДФЛ);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "КатегорияДохода", "АвтоОтметкаНезаполненного", ДоступностьКодаНДФЛ);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "КатегорияДохода", "ОтметкаНезаполненного",
НЕ ЗначениеЗаполнено(Объект.КодДоходаНДФЛ));
КонецПроцедуры
#КонецОбласти