Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
4.2 kB
2
Indexable
Never
Процедура ОбработкаПроведения(Отказ, Режим)

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

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