Отсутствие (болезнь, прогул, неявка) / Модуль объекта

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

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

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.УправлениеДоступом

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

// Конец СтандартныеПодсистемы.УправлениеДоступом

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область Расчет

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

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

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

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

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

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

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

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

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