Исполнительный лист / Форма документа / Модуль формы

файл

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

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

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	// СтандартныеПодсистемы.ДатыЗапретаИзменения
	ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.ДатыЗапретаИзменения
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
	ИспользоватьПлатежногоАгента = ЗначениеЗаполнено(Объект.ПлатежныйАгент);
	
	ИнициализацияФормы();
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.УправлениеДоступом
	
	// ПроцессыОбработкиДокументов
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
		МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
		МодульПроцессыОбработкиДокументовЗарплата.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	КонецЕсли;	
	// Конец ПроцессыОбработкиДокументов
	
КонецПроцедуры

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

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

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

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

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

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

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
	// Конец СтандартныеПодсистемы.Свойства
	
	Если ИспользоватьПлатежногоАгента Тогда
		
		Если Не ЗначениеЗаполнено(Объект.ПлатежныйАгент) Тогда
			ОбщегоНазначения.СообщитьПользователю(
				НСтр("ru = 'Поле «Платежный агент» не заполнено.'"), , "Объект.ПлатежныйАгент", , Отказ);
		КонецЕсли;
			
		Если Не ЗначениеЗаполнено(Объект.ТарифПлатежногоАгента) Тогда
			ОбщегоНазначения.СообщитьПользователю(
				НСтр("ru = 'Поле «Тариф платежного агента» не заполнено.'"), , "Объект.ТарифПлатежногоАгента", , Отказ);
		КонецЕсли;
			
	КонецЕсли;
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура ВидБазыПриИзменении(Элемент)
	
	ВидБазыПриИзмененииНаСервере();
	
КонецПроцедуры

&НаКлиенте
Процедура ПрекратитьПоДостижениюПределаПриИзменении(Элемент)
	УстановитьДоступностьПредела(ЭтаФорма);
КонецПроцедуры

&НаКлиенте
Процедура СохранятьЗаработокСУчетомПрожиточногоМинимумаПриИзменении(Элемент)
	
	УстановитьВидимостьСохраняемогоЗаработка();
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьПлатежногоАгентаПриИзменении(Элемент)
	
	УстановитьДоступностьПлатежногоАгента(ЭтаФорма);
	
	Если ИспользоватьПлатежногоАгента Тогда
		ЗаполнитьУдержаниеВознагражденияПлатежногоАгента();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПлатежныйАгентПриИзменении(Элемент)
	УстановитьДоступностьПлатежногоАгента(ЭтаФорма);
КонецПроцедуры

&НаКлиенте
Процедура АдресПолучателяПредставлениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	Оповещение = Новый ОписаниеОповещения("АдресПолучателяПредставлениеЗавершениеВыбора", ЭтотОбъект);
	ПараметрыОткрытия = УправлениеКонтактнойИнформациейКлиент.ПараметрыФормыКонтактнойИнформации(
		ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица"),
		Объект.АдресПолучателя);
	УправлениеКонтактнойИнформациейКлиент.ОткрытьФормуКонтактнойИнформации(ПараметрыОткрытия, ЭтотОбъект, Оповещение);
	
КонецПроцедуры

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

&НаКлиенте
Процедура ВидИсполнительногоДокументаПриИзменении(Элемент)
	
	УстановитьЗаголовокГруппыОтображениеВПечатныхФормах(ЭтаФорма);
	
КонецПроцедуры

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

&НаКлиенте
Процедура СуммаПриИзменении(Элемент)
	
	Сумма = Объект.Сумма;
	
КонецПроцедуры

&НаКлиенте
Процедура ПроцентПриИзменении(Элемент)
	
	Процент = Объект.Процент;
	
КонецПроцедуры

&НаКлиенте
Процедура ЧислительПриИзменении(Элемент)
	
	Числитель = Объект.Числитель;
	
КонецПроцедуры

&НаКлиенте
Процедура ЗнаменательПриИзменении(Элемент)
	
	Знаменатель = Объект.Знаменатель;
	
КонецПроцедуры

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

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

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

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

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

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

// СтандартныеПодсистемы.Свойства

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

// Конец СтандартныеПодсистемы.Свойства

#Область ОбработчикиСобытийПроцессыОбработкиДокументов

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

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

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

&НаКлиенте
Процедура Подключаемый_КомментарийНаправившегоОткрытие(Элемент, СтандартнаяОбработка)
	// ПроцессыОбработкиДокументов
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда	
		МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
		МодульПроцессыОбработкиДокументовЗарплата.КомментарийНаправившегоОткрытие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
	КонецЕсли;		
	// Конец ПроцессыОбработкиДокументов
КонецПроцедуры

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

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

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

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

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

// СтандартныеПодсистемы.Свойства 

&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()

	УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);

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

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

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

// Конец СтандартныеПодсистемы.Свойства

&НаСервере
Процедура ИнициализацияФормы()
	
	Сумма = Объект.Сумма;
	Процент = Объект.Процент;
	Числитель = Объект.Числитель;
	Знаменатель = Объект.Знаменатель;
	
	УстановитьДоступностьВидаБазы(ЭтаФорма);
	УстановитьДоступностьПараметровНастройкиБазы(ЭтаФорма);
	УстановитьНастройкиЗаполненияРазмераУдержания(ЭтаФорма);
	УстановитьДоступностьПредела(ЭтаФорма);
	УстановитьДоступностьПлатежногоАгента(ЭтаФорма);
	УстановитьМаксимальноеЗначениеПроцента();
	УстановитьВидимостьСохраняемогоЗаработка();
	
	УстановитьЗаголовокГруппыОтображениеВПечатныхФормах(ЭтаФорма);
	
КонецПроцедуры

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

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

&НаСервере
Процедура ВидБазыПриИзмененииНаСервере()
	
	УстановитьДоступностьПараметровНастройкиБазы(ЭтаФорма);
	УстановитьМаксимальноеЗначениеПроцента();
	
КонецПроцедуры

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

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

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьПредела(Форма)
	
	Объект = Форма.Объект;
	Элементы = Форма.Элементы;
	
	Элементы.Предел.Доступность = Объект.ПрекратитьПоДостижениюПредела;
	Элементы.Предел.АвтоОтметкаНезаполненного = Объект.ПрекратитьПоДостижениюПредела;
	Элементы.Предел.ОтметкаНезаполненного = Объект.Предел > 0;
	
	Если Не Объект.ПрекратитьПоДостижениюПредела Тогда
		Объект.Предел = 0;
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура ЗаполнитьРеквизитыИсполнительногоДокумента(ПараметрыРеквизитов)
	
	Объект.ДатаВыдачи = ПараметрыРеквизитов.ДатаВыдачи;
	Объект.НомерИсполнительногоДокумента = ПараметрыРеквизитов.НомерИсполнительногоДокумента;
	Объект.ОрганВыдавшийИсполнительныйДокумент = ПараметрыРеквизитов.ОрганВыдавшийИсполнительныйДокумент;
	
	Объект.РеквизитыИсполнительногоДокумента = "" + ПараметрыРеквизитов.НомерИсполнительногоДокумента
											+" выдан " + Формат(ПараметрыРеквизитов.ДатаВыдачи, "ДЛФ=DD")
											+" " + ПараметрыРеквизитов.ОрганВыдавшийИсполнительныйДокумент;
											
	УстановитьЗаголовокГруппыОтображениеВПечатныхФормах(ЭтаФорма);
	
КонецПроцедуры

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

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