До сих пор мы с вами просто заносили в регистр расчета "Начисления" записи о том, что необходимо выполнить какой-либо вид расчета. Но каким именно образом получать эти результаты мы не говорили. Теперь настало время описать алгоритмы формирования различных видов расчетов.
Поскольку эти алгоритмы нам понадобится использовать не только в документе "Начисление сотрудникам", удобнее всего будет разместить их в отдельном общем модуле.
Откроем в конфигураторе текст обработчика проведения документа "НачислениеСотрудникам" и добавим в него вызов процедуры из общего модуля:
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Для Каждого ТекСтрокаНачисления Из Начисления Цикл
// регистр Начисления
Движение = Движения.Начисления.Добавить();
Движение.Сторно = Ложь;
Движение.ВидРасчета = ТекСтрокаНачисления.ВидРасчета;
Движение.ПериодДействияНачало = ТекСтрокаНачисления.ДатаНачала;
Движение.ПериодДействияКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);
Движение.ПериодРегистрации = ТекСтрокаНачисления.ДатаНачала;
Движение.БазовыйПериодНачало = ТекСтрокаНачисления.ДатаНачала;
Движение.БазовыйПериодКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);
Движение.Сотрудник = ТекСтрокаНачисления.Сотрудник;
Движение.ГрафикРаботы = ТекСтрокаНачисления.ГрафикРаботы;
Движение.ИсходныеДанные = ТекСтрокаНачисления.Результат;