Виды выплат бывшим сотрудникам / Модуль менеджера

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
	
#Область ПрограммныйИнтерфейс

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

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

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

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

#Область СлужебныйПрограммныйИнтерфейс

#Область ОбработчикиПравилРегистрации

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

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

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

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

// Возвращает виды доходов исполнительного производства выплат
//
// Возвращаемое значение:
// 	Соответствие:
// 	 	* Ключ     - ПеречислениеСсылка.ВидыОсобыхНачисленийИУдержаний
// 	 	* Значение - ПеречислениеСсылка.ВидыДоходовИсполнительногоПроизводства
// 
Функция ВидыДоходовИсполнительногоПроизводства(Период) Экспорт
	
	 ИмяРеквизита = ?(ВидыДоходовИсполнительногоПроизводстваВызовСервера.ВступилиВСилуИзменения353ФЗ(Период),
	 	"ВидДоходаИсполнительногоПроизводства2022",
	 	"ВидДоходаИсполнительногоПроизводства");
	 
	Возврат УчетНачисленнойЗарплаты.ВидыДоходовИсполнительногоПроизводстваОбъектов(Метаданные.Справочники.ВидыВыплатБывшимСотрудникам, ИмяРеквизита);
	
КонецФункции

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

// Обработчик начального заполнения ИБ
Процедура СоздатьВидыВыплатБывшимСотрудникам() Экспорт
	
	ОписаниеВидаВыплатБывшимСотрудникам = ОписаниеВидаВыплатБывшимСотрудникам();
	ОписаниеВидаВыплатБывшимСотрудникам.ПредопределенныйВидВыплатБывшимСотрудникам 	= Истина;
	ОписаниеВидаВыплатБывшимСотрудникам.ИмяПредопределенныхДанных = "СохраняемыйЗаработокНаВремяТрудоустройства";
	ОписаниеВидаВыплатБывшимСотрудникам.Наименование              = НСтр("ru = 'Сохраняемый средний заработок на время трудоустройства'");
	ОписаниеВидаВыплатБывшимСотрудникам.КодДоходаСтраховыеВзносы  = Справочники.ВидыДоходовПоСтраховымВзносам.НеЯвляетсяОбъектом;
	ОписаниеВидаВыплатБывшимСотрудникам.ВидДоходаИсполнительногоПроизводства = Перечисления.ВидыДоходовИсполнительногоПроизводства.ЗарплатаВознаграждения;
		
	НовыйВидВыплатБывшимСотрудникам(ОписаниеВидаВыплатБывшимСотрудникам);
	
КонецПроцедуры

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

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

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

Функция ОписаниеВидаВыплатБывшимСотрудникам()
	
	Возврат Новый Структура("
	|Наименование,
	|КодДоходаНДФЛ,
	|КодДоходаСтраховыеВзносы,
	|ВидДоходаИсполнительногоПроизводства,
	|ПредопределенныйВидВыплатБывшимСотрудникам,
	|ИмяПредопределенныхДанных");
	
КонецФункции

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

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

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

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

#КонецЕсли

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