Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.6 kB
0
Indexable
Never
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
	
	ПериодРегистрации = НачалоМесяца(Дата);
	
	// Формирование рабочего набора записей по регистру Основные начисления
	Движения.ОсновныеНачисления.Записывать = Истина;	
	Для Каждого Строка Из ОсновныеНачисления Цикл
		Движение = Движения.ОсновныеНачисления.Добавить();
		ЗаполнитьЗначенияСвойств(Движение, Строка);
		Движение.ПериодРегистрации = ПериодРегистрации;
		Движение.ПериодДействияНачало = Строка.ДатаНачала;
		Если Строка.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда
			// в задаче с разбитием дня в графике обязательно приведение даты к концу дня, иначе один день не будет учтен
			Движение.ПериодДействияКонец = КонецДня(Строка.ДатаОкончания);  
		Иначе
			Движение.ПериодДействияКонец = Строка.ДатаОкончания;
		КонецЕсли;
	КонецЦикла;
	
	// Формирование рабочего набора записей по регистру Дополнительные начисления
	Движения.ДополнительныеНачисления.Записывать = Истина;
	Для Каждого ТекСтрокаДополнительныеНачисления Из ДополнительныеНачисления Цикл
		Движение = Движения.ДополнительныеНачисления.Добавить();
		ЗаполнитьЗначенияСвойств(Движение, ТекСтрокаДополнительныеНачисления);
		Движение.ПериодРегистрации = ПериодРегистрации;
	КонецЦикла;	
	
	// Запись рабочих наборов записей
	Движения.Записать();
	
	// Окончательный расчет данных в регистрах
	Расчет.РассчитатьНачисления (Ссылка, Движения);
	
КонецПроцедуры