Начисления / Форма списка / Модуль формы

файл

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

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

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

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

&НаКлиенте
Процедура ПоказыватьНачисленияВАрхивеПриИзменении(Элемент)
	УстановитьОтборИспользуемых(Список.Отбор, ПоказыватьНачисленияВАрхиве);
КонецПроцедуры

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

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

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	ОценкаПроизводительностиКлиент.ЗамерВремени("ОткрытиеФормыЭлементаПланаВидовРасчетаНачисления");
	
КонецПроцедуры

&НаКлиенте
Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
	
	ОценкаПроизводительностиКлиент.ЗамерВремени("ОткрытиеФормыНовогоЭлементаПланаВидовРасчетаНачисления");

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

&НаКлиенте
Процедура СписокПриИзменении(Элемент)
	ОбновитьИнтерфейс();
КонецПроцедуры

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

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

&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры

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

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

#Область КомандыПодсистемыНастройкиПорядкаЭлементов

&НаКлиенте
Процедура НастройкаСреднегоЗаработка(Команда)
	
	ОткрытьФорму("Обработка.ГрупповоеРедактированиеНачислений.Форма", , ЭтаФорма);
	
КонецПроцедуры

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

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

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

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

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

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

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

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

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