# Виртуальные таблицы регистра расчета ## Задание 1 ### Описание задачи Создать документ "Начисление премии процентом", позволяющий ввести начисление премии процентом по базе от оклада. ### Требование к результату Выгрузка информационной базы (.dt) с конфигурацией из предыдущего задания, содержащая документ **НачислениеПремииПроцентом**, позволяющий указать таблицу сотрудников и общий процент премии. Документ должен рассчитывать премию, получая базу запросом к виртуальной таблице **Зарплата.БазаЗарплата** и умножая базу на процент. ### Процесс выполнения Конфигурация из предыдущего задания. 1. Удостоверьтесь, что в плане видов расчета есть предопределенный вид расчета **ПремияПроцентом**, зависящий от базового **ОплатаПоОкладу** по периоду действия. 2. Добавьте документ **НачислениеПремииПроцентом** (можно скопировать другой зарплатный документ). * Добавьте к нему табличную часть **Сотрудники** с реквизитом **Сотрудник** и реквизит шапки **ПроцентПремии**. * Сделайте его регистратором регистра расчета **Зарплата**. * Включите его в состав функциональной опции **ВестиРасчетЗарплаты** и подсистемы **Зарплата**. * Выведите реквизиты на форму разумным образом. 3. В модуле документа создайте обработку проведения документа, в которой: * Очистите набор записей Движения.Зарплата. * Для каждой строки табличной части создайте движение, заполнив в нем вид расчета (**ПланыВидовРасчета.НачисленияУдержания.ПремияПроцентом**), сотрудника, период регистрации, период действия и базовый период. Период действия берите как начало и конец месяца даты документа. Сумму на этом этапе не заполняйте. * Запишите набор записей Движения.Зарплата. * Запросом получите таблицу базовых начислений: ```bsl Запрос = Новый Запрос( "ВЫБРАТЬ | ЗарплатаБазаЗарплата.Сотрудник КАК Сотрудник, | ЗарплатаБазаЗарплата.СуммаБаза КАК СуммаБаза |ИЗ | РегистрРасчета.Зарплата.БазаЗарплата( | &Измерения, | &Измерения, | , | Регистратор = &Регистратор | И ВидРасчета = &ВидРасчета) КАК ЗарплатаБазаЗарплата"); Запрос.УстановитьПараметр("Регистратор", Ссылка); Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.НачисленияУдержания.ПремияПроцентом); Измерения = Новый Массив; Измерения.Добавить("Сотрудник"); Запрос.УстановитьПараметр("Измерения", Измерения); База = Запрос.Выполнить().Выгрузить(); ``` * Обойдя записи повторно, для каждой записи: * Найдите в таблице строку сотрудника. * Установите сумму как СуммаБаза * ПроцентПремии / 100. 4. Заполните и проведите документ. Удостоверьтесь в том, что движения по регистру формируются как процент от оклада за соответствующий период.