Договор авторского заказа / Форма документа / Модуль формы

файл

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

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

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

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

&НаКлиенте
Процедура ОбновитьВычетИнфоНадпись()

	ВычетПоНормативу = Объект.КодВычета = УчетНДФЛКлиент.ВычетВПределахНормативовПоАвторскимВознаграждениям();
		
	Если ВычетПоНормативу Тогда
		СведенияОВычете = СведенияОВычетах(Объект.ВидАвторскогоДоговора, Объект.Сумма, Объект.Дата);
		НормативЗатрат = СведенияОВычете.НормативЗатрат;
		СуммаВычетаПоНормативу = Формат(СведенияОВычете.СуммаВычета, "ЧДЦ=2; ЧРД=");
		Описание = НСтр("ru = 'Сумма вычета предоставляется в пределах нормативов затрат: %1%,  Сумма вычета: %2 руб.'");
		ВычетПоНормативуИнфоНадпись = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Описание,НормативЗатрат,СуммаВычетаПоНормативу);
	Иначе
		Если Объект.СпособОплаты = ПредопределенноеЗначение("Перечисление.СпособыОплатыПоДоговоруГПХ.ПоАктамВыполненныхРабот") Тогда
			ВычетИнфоНадпись = НСтр("ru = 'Размер документально подтвержденных расходов, связанных с выполнением работ и принимаемых в качестве налогового вычета указывается в актах выполненных работ.'");
		Иначе
			ВычетИнфоНадпись = НСтр("ru = 'Если при вводе информации о договоре работы уже выполнены и уже известна сумма документально подтвержденных расходов, связанных с выполнением работ и принимаемых в качестве налогового вычета, введите эту сумму.'");
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция СведенияОВычетах(ВидАвторскогоДоговора, Сумма, ДатаСреза)

	СведенияОВычете = Новый Структура("НормативЗатрат,СуммаВычета",0,0);
	
	КодДохода = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидАвторскогоДоговора,"КодДоходаНДФЛ");
	Отбор = Новый Структура("КодДохода", КодДохода);
	ВычетыПоДоходамНДФЛ = РегистрыСведений.ВычетыПоДоходамНДФЛ.СрезПоследних(ДатаСреза, Отбор);
	Если ВычетыПоДоходамНДФЛ.Количество() > 0 Тогда
		НормативЗатрат = ВычетыПоДоходамНДФЛ[0].НормативЗатрат;
		СуммаВычета = ОКР(Сумма * НормативЗатрат / 100, 2);
		СведенияОВычете.НормативЗатрат = НормативЗатрат;
		СведенияОВычете.СуммаВычета = СуммаВычета;
	КонецЕсли;
	
	Возврат СведенияОВычете;

КонецФункции

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

&НаСервереБезКонтекста
Процедура ОбработатьИзменениеСотрудникаНаСервереБезКонтекста(Сотрудник, НастройкиБухучета)

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

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

&НаКлиенте
Процедура ОтношениеКЕНВДПриИзменении(Элемент)
	
	ОбработатьИзменениеОтношениеКЕНВД();
		
КонецПроцедуры

&НаКлиенте
Процедура ОбработатьИзменениеОтношениеКЕНВД()

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

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

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

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

&НаКлиенте
Процедура ПроверитьСуммуЕНВД()

	Если Объект.СуммаЕНВД > Объект.Сумма Тогда
		ТекстПредупреждения = НСтр("ru = 'Сумма ЕНВД не может превышать общей суммы вознаграждения по договору.'");
		ПоказатьПредупреждение(, ТекстПредупреждения);
		Объект.СуммаЕНВД = 0;
	КонецЕсли;

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

&НаКлиенте
Процедура ДатаОкончанияПриИзменении(Элемент)
	
	УстановитьОтображениеПолейВводаДанныхОТрудовойДеятельности(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ОтразитьТрудовуюДеятельностьПриИзменении(Элемент)
	
	УстановитьОтображениеПолейВводаДанныхОТрудовойДеятельности(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура НаименованиеДокументаПриИзменении(Элемент)
	
	ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаПриИзменении(Объект.Организация, "ДоговорАвторскогоЗаказа", Объект.НаименованиеДокумента);
	
КонецПроцедуры

&НаКлиенте
Процедура НаименованиеДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура НаименованиеДокументаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаОбработкаВыбора(
		Объект.НаименованиеДокумента, ВыбранноеЗначение, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ПредставлениеРаспределенияБухучетаНажатие(Элемент)
	
	ЗарплатаКадрыРасширенныйКлиент.ОткрытьФормуРедактированияРаспределенияБухучетаДокумента(ЭтаФорма, Истина);
	
КонецПроцедуры

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

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

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

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

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

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

#Область ИсправлениеДокументов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура УстановитьДоступностьСуммыВычета()

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

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

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

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

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

&НаСервере
Процедура ОбработатьИзменениеОрганизацииНаСервере()

	ЗаполнитьДанныеФормыПоОрганизации();
	УстановитьФункциональныеОпцииФормы();

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

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

	ЗаполнитьДанныеФормыПоОрганизации();
	УстановитьФункциональныеОпцииФормы();

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

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

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

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

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьНастроекБухучета(Форма)

	Если Форма.Объект.БухучетУказываетсяРаспределением Тогда
		Форма.Элементы.СтраницыБухучет.ТекущаяСтраница = Форма.Элементы.СтраницаБухучетРаспределение;
	Иначе
		Форма.Элементы.СтраницыБухучет.ТекущаяСтраница = Форма.Элементы.СтраницаБухучет;
	КонецЕсли;

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

&НаКлиенте
Процедура ИзменитьБухучетРаспределениеЗавершение(Результат, Параметры) Экспорт

	Если Результат = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	ИзменитьБухучетРаспределениеЗавершениеНаСервере(Результат);
	
КонецПроцедуры

&НаСервере
Процедура ИзменитьБухучетРаспределениеЗавершениеНаСервере(Результат)

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

&НаСервере
Процедура ЗаполнитьПредставлениеРаспределенияБухучета()

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

#Область ИсправлениеДокументов

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

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

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПоляИсправления(Форма)

	ИсправлениеДокументовЗарплатаКадрыКлиентСервер.УстановитьПоляИсправления(Форма, "ПериодическиеСведения", "МесяцНачисления");
	
	ДокументИсправлен = ИсправлениеДокументовЗарплатаКадрыКлиентСервер.ДокументИсправлен(Форма);
	Форма.Элементы.ГруппаАкты.ТолькоПросмотр = ДокументИсправлен;
	
КонецПроцедуры

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

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

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

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

&НаСервереБезКонтекста
Функция ПроверитьВозможностьСторнирования(Знач Договор, Сообщение)
	
	Возврат Документы.ДоговорАвторскогоЗаказа.ПроверитьВозможностьСторнирования(Договор, Сообщение);
	
КонецФункции

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

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

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