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



              

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


                  ЗаписьРегистра.Результат = 0;

              Иначе

                  //рассчитать оклад по фактическому периоду и исходным данным

                  ЗаписьРегистра.Результат = (ЗаписьРегистра.ИсходныеДанные / ВыборкаРезультата.Норма) * ВыборкаРезультата.Факт;

                  Сообщить("Выполнен расчет "+ЗаписьРегистра.Регистратор+" - "+ЗаписьРегистра.ВидРасчета+" - "+ЗаписьРегистра.Сотрудник,);

              КонецЕсли;

          КонецЕсли;

      КонецЦикла;

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

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

   КонецЕсли;

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

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

Теперь добавим текст запроса во вторую ветку условия Если... с той лишь разницей, что теперь мы будем получать значения базы, используя виртуальную таблицу регистра расчета "РегистрРасчета.Начисления.БазаНачисления":

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

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

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

...




Содержание  Назад  Вперед