1С-Предприятие 8.0. Практическое пособие разработчика


Создание процедуры расчета записей регистра Начисления - часть 3


Перед вызовом процедуры из общего модуля мы формируем список сотрудников, содержащихся в документе, чтобы передать его в вызываемую процедуру. [350]

Теперь создадим в ветке "Общие" новый общий модуль "ПроведениеРасчетов". Добавим в него заготовку процедуры "РасчитатьНачисления":

Процедура РасчитатьНачисления(НаборЗаписейРегистра, ТребуемыйВидРасчета, СписокСотрудников) Экспорт

   //Рассчитать первичные записи

   Если ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда

   //Рассчитать вторичные записи

   ИначеЕсли ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Премия Тогда

   КонецЕсли;

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

 

Алгоритм расчета начислений будет различным при расчете первичных и вторичных записей, и каждая из его частей будет находиться в своей ветке условия Если...

При расчете первичных записей нам понадобятся данные графика из регистра расчета, поэтому добавим в первую ветку условия запрос по виртуальной таблице регистра расчета "РегистрРасчета.Начисления.ДанныеГрафика":

Процедура РасчитатьНачисления(НаборЗаписейРегистра, ТребуемыйВидРасчета, СписокСотрудников) Экспорт

   //Рассчитать первичные записи

   Если ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда

       Запрос = Новый Запрос;

       Запрос.Текст =

       "ВЫБРАТЬ

       |    НачисленияДанныеГрафика.ЗначениеПериодДействия КАК Норма,

       |    НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт,

       |    НачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки

       |ИЗ

       |    РегистрРасчета.Начисления.ДанныеГрафика(




Начало  Назад  Вперед