Разовое начисление / Модуль объекта

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

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

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

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

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

Процедура ОбработкаУдаленияПроведения(Отказ)
	
	ПерерасчетЗарплаты.УдалитьПерерасчетыПоРегистратору(Ссылка);
	
КонецПроцедуры

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

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
	Если ЗарплатаКадры.ОтключитьБизнесЛогикуПриЗаписи(ЭтотОбъект) Тогда
		Возврат;
	КонецЕсли;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область ЗаполнениеИРасчет

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

	Возврат ПараметрыРасчета;
	
КонецФункции

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

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

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

	Если ПараметрыРасчета.ПозицииВставки = Неопределено Тогда
		ПараметрыРасчета.ПозицииВставки = Новый Структура;	
	КонецЕсли;

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

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

	Если ИсправлениеДокументовРасчетЗарплаты.ДоначисленияРазрешены(МенеджерРасчета) Тогда
		ИсходныеДанныеДляПерерасчета = ИсправлениеРасчетовБЗК.ИсходныеДанныеДляПерерасчетаИзРезультатаРасчета(МенеджерРасчета.Зарплата.Начисления);

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

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

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

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

	Если Не ЗначениеЗаполнено(ЭтотОбъект.МесяцНачисления) Тогда
		ДанныеЗаполнения.Свойство("МесяцНачисления", ЭтотОбъект.МесяцНачисления);
	КонецЕсли;

	Если Не ЗначениеЗаполнено(ЭтотОбъект.ДатаНачала) Тогда
		ДанныеЗаполнения.Свойство("ДатаНачала", ЭтотОбъект.ДатаНачала);
	КонецЕсли;	
	
	Если Не ЗначениеЗаполнено(ЭтотОбъект.ДатаОкончания) Тогда
		ДанныеЗаполнения.Свойство("ДатаОкончания", ЭтотОбъект.ДатаОкончания);
	КонецЕсли;
	
	Если Не ЗначениеЗаполнено(ЭтотОбъект.ИсправленныйДокумент) Тогда
		ДанныеЗаполнения.Свойство("ИсправленныйДокумент", ЭтотОбъект.ИсправленныйДокумент);
	КонецЕсли;
	
	Если Не ЗначениеЗаполнено(ЭтотОбъект.Начисление) Тогда
		ДанныеЗаполнения.Свойство("Начисление", ЭтотОбъект.Начисление);
	КонецЕсли;

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

	Если Не ЗначениеЗаполнено(ЭтотОбъект.ПорядокВыплаты) Тогда
		ДанныеЗаполнения.Свойство("ПорядокВыплаты", ЭтотОбъект.ПорядокВыплаты);
	КонецЕсли;

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

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

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

Функция УстановитьРассчетУдержаний()
	РассчитыватьУдержания = ПорядокВыплаты = ПредопределенноеЗначение("Перечисление.ХарактерВыплатыЗарплаты.Межрасчет")
								Или ПорядокВыплаты = ПредопределенноеЗначение("Перечисление.ХарактерВыплатыЗарплаты.Аванс");
КонецФункции

Процедура ЗаполнитьПланируемуюДатуВыплаты() Экспорт  
	ПланируемаяДатаВыплаты = ПолучитьПланируемуюДатуВыплаты(); 
КонецПроцедуры

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

	ПланируемаяДатаВыплаты = РасчетЗарплатыРасширенный.ПланируемаяДатаВыплатыЗарплатыПоНастройкамПоПорядкуВыплаты(
		ПараметрыПолученияДатыВыплаты);
	
	Возврат ПланируемаяДатаВыплаты;
	
КонецФункции

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

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

	Отбор = Новый Структура("Сотрудник");
	ОтборПоказателей = Новый Структура("ИдентификаторСтрокиВидаРасчета");
	Для Каждого Сотрудник Из Сотрудники Цикл
		Отбор.Сотрудник = Сотрудник;
		СтрокиПоСотруднику = Начисления.НайтиСтроки(Отбор);

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

Процедура ЗаполнитьСтрокиУдержаний(Сотрудники, МенеджерРасчета, СохранятьИсправления)
	
	Если Не РассчитыватьУдержания Тогда
		Возврат;
	КонецЕсли;

	МенеджерРасчета.НастройкиРасчета.СохранятьИсправления = СохранятьИсправления;
	МенеджерРасчета.ЗаполнитьУдержанияСотрудниковЗаПериод(Сотрудники, МесяцНачисления, КонецМесяца(МесяцНачисления));
		
КонецПроцедуры

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

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

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

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

Функция ТребуетсяРасчетНалога(ВидРасчета, ПланируемаяДатаВыплаты)
		
	Возврат УчетНДФЛ.ДоходыУчитываютсяТолькоПоДатеВыплаты(ПланируемаяДатаВыплаты) Или УчетНДФЛРасширенный.ДоходыВУчетеНДФЛРегистрируютсяПоДатеВыплаты(ВидРасчета);
	
КонецФункции 

#Область РезультатыРасчетовВДанныеОбъекта

Процедура РасчетЗарплатыВДанныеОбъекта(ДанныеМенеджераРасчета, ПозицииВставки = Неопределено) Экспорт

	РезультатРасчетаНачисленийВДанныеОбъекта(ДанныеМенеджераРасчета, ПозицииВставки);
	РезультатРасчетаУдержанийВДанныеОбъекта(ДанныеМенеджераРасчета, ПозицииВставки);
	РезультатРасчетаНДФЛВДанныеОбъекта(ДанныеМенеджераРасчета, ПозицииВставки);
	РезультатРасчетаКорректировкиВыплатыВДанныеОбъекта(ДанныеМенеджераРасчета, ПозицииВставки);

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

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

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

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

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

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

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

#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли

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