В задаче по ПР обнаружил для себя два момента, которые надо закрепить. Проработал для быстрого решения на экзамене. Выкладываю решение задачи по ПР с учетом этих интересных для меня моментов:
1) ПР: получение Оклада на начало РасчетногоПериода (ПериодаДействия) записи
В условии задачи есть формулировка: «В одном документе могут быть данные за разные расчетные периоды». При этом «Первоначальное значение оклада может изменяться не чаще, чем один раз в день, но берется на начало расчетного периода».
Для решения,
- в запросе РасчетаНачислений получаю ПериодДействия каждой записи ОН
- Левым соединением получаю все записи физической таблицы регистра сведений СведенияОСотрудниках, у которых Период <= ПериодуДействия записи ОН
- Группирую, получаю Максимальный Период (т.е. последний на ПериодДействия записи)
- Еще раз левым соединением подцепляю записи физ.таблицы СведенияОСотрудниках, так получаю Оклад на ПериодДействия каждой записи
Проблема казалась серьезной, но решилась неожиданно легко.
Спасибо Quantum81 и alex1248 за то, что указали верное направление.
2) ПР: получение Процента премии в зависимости от Стажа
Еще раз проработал решение и закрепил его для себя.
- в спр.ФизЛица добавляю реквизиты ДатаПриема и НачальныйСтаж
- добавляю рег свед ШкалаПроцентов (От, До, Процент)
- в запросе процедуры РасчетаНачислений получаю СтажВсего:
РазностьДат(ДатаПриема, БазовыйПериодНачало, Год) + НачальныйСтаж
- Левым соединением подцепляю Процент из Шкалы, используя два простых условия:
СтажВсего > От
СтажВсего <= До
Здесь важное дополнение: чтобы условия работали, в регистр надо занести последнюю запись со значением До=999 (т.е. не 0, а максимальное число)
3) Про отчет сказано, что он должен быть построен только за определенный календарный месяц.
Как считаете, пойдет, если на форме отчета будет выбор стандартного периода (как у меня) или есть более красивые варианты?