Виды прочих доходов физлиц / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// Обработчик обновления
Процедура ЗаполнитьКатегориюДохода() Экспорт

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

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

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

#КонецЕсли

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