### Зарплата Все добавляемые объекты включаем в новую подсистему **Зарплата**, выведенную в командный интерфейс, и включаем в состав функциональной опции **ВестиРасчетЗарплаты**. 1. Добавить регистр сведений **Календарь**: * измерение — День (Дата); * ресурс — Рабочий (Число). 2. Добавить план видов расчёта **Начисления**: * без кода и с наименованием разумной длины (например, 100); * на закладке «Расчёт» укажите: * использование периода действие, * зависимость от базы по периоду действия по тому же плану видов расчёта; * создайте предопределенные виды расчёта: * **Больничный**, **Отпуск**, **ФиксированнаяПремия**; * **ОплатаПоОкладу** с вытесняющими видами расчета **Больничный** и **Отпуск**; * **ПремияПроцентом** с базовым и ведущим видом расчёта **ОплатаПоОкладу**. 3. Добавить регистр расчёта **Зарплата**: * с учётом по плану видов расчета **Начисления**; * использующий период действия и базовый период; * использующий в качестве графика регистр **Календарь**, со значением графика **Рабочий**, а датой графика — **День**; * с периодичностью «Месяц»; * с измерением **Сотрудник** (СправочникСсылка.Сотрудники) и ресурсом **Сумма** (ОпределяемыйТип.Сумма). 4. Добавить документ **НачислениеСписком** для начисления фиксированных сумм по списку сотрудников: * с обязательным реквизитом **Начисление** (ВидРасчетаСсылка.Начисления); * с обязательными реквизитами **ПериодДействияНачало** и **ПериодДействияКонец** (Дата и время); * с табличной частью **Сотрудники** с реквизитами **Сотрудник** (СправочникСсылка.Сотрудники) и **Сумма** (ОпределяемыйТип.Сумма); * создать для него понятную форму документа; * на закладке «Движения» сделать его регистратором для регистра расчета **Зарплата** и для регистра бухгалтерии **Управленческий**; * в обработке проведения для каждой строки формировать движения: * по регистру расчёта **Зарплата**, не забыв заполнить вид расчёта (по реквизиту **Начисление**), период регистрации (дата документа) и период действия (согласно реквизитам **ПериодДействияНачало** и **ПериодДействияКонец**). Период действия понадобится в дальнейшем для вытеснения оплаты по окладу больничными и отпусками, введенными этим документом; * по регистру бухгалтерии **Управленческий** в Дт счета **Расходы** и в Кт счета **РасчетыССотрудниками** с заполнением субконто **Сотрудник** на сумму начисления. 5. Добавить документ **НачислениеОплатыПоОкладу** для начисления оплаты по окладу с учётом фактически отработанного времени: * с обязательным реквизитом **ЗаМесяц** типа Дата с форматом «MM.yyyy», чтобы пользователь видел только месяц; * с табличной частью **Сотрудники** с единственным реквизитом **Сотрудник** (СправочникСсылка.Сотрудники); * создать для него понятную форму документа; * на закладке «Движения» сделать его регистратором для регистра расчета **Зарплата** и для регистра бухгалтерии **Управленческий** * в обработке проведения: * записать движения, пока без сумм, по регистру расчёта **Зарплата**. При этом: * в качестве периода регистрации указать дату документа, а в качестве периода действия — начало и конец месяца даты **ЗаМесяц**; * в качестве вида расчёта указать предопределенный ПланыВидовРасчета.Начисления.ОплатаПоОкладу; * после записи движений документа, выполнить запрос к ним, в запросе: * получить оклад для каждого сотрудника, * получить факт и норму из соответствующей виртуальной таблицы регистра расчёта, * получить номер строки движений для последующего обращения к нужному; * обойти результат запроса, на каждой итерации цикла выполнив расчёт суммы путем умножения оклада на частное деления факта на норму: ```bsl Пока Выборка.Следующий() Цикл Движение = Движения.Зарплата[Выборка.НомерСтроки - 1]; Движение.Сумма = Выборка.Оклад * Выборка.Факт / Выборка.План; КонецЦикла; ``` * определив сумму, сформировать парное движение на такую же сумму по регистру бухгалтерии **Управленческий** в Дт счета **Расходы** и в Кт счета **РасчетыССотрудникми**, заполнив субконто **Сотрудник**. * создав документ, заполните календарь и убедитесь в том, что документ: * в отсутствие вытесняющих начислений начисляет за месяц полную сумму оклада, * после ввода оклада или больничного документом **НачислениеСписком** уменьшает начисления по окладу пропорционально дням невыхода. 6. Добавить документ **НачислениеПремииПроцентом** для начисления премии процентом от оклада: * с обязательным числовым реквизитом **Процент**; * с обязательным реквизитом **ЗаМесяц** типа Дата с форматом «MM.yyyy», чтобы пользователь видел только месяц; * с табличной частью **Сотрудники** с единственным реквизитом **Сотрудник** (СправочникСсылка.Сотрудники); * создать для него понятную форму документа; * на закладке «Движения» сделать его регистратором для регистра расчёта **Зарплата** и для регистра бухгалтерии **Управленческий**; * в обработке проведения: * записать движения, пока без сумм, по регистру расчета **Зарплата**. При этом: * в качестве периода регистрации указать дату документа, а в качестве периода действия и базового периода действия — начало и конец месяца даты **ЗаМесяц**; * в качестве вида расчета указать предопределенный ПланыВидовРасчета.Начисления.ПремияПроцентом; * записав движения, получить базу запросом к соответствующей виртуальной таблице; * обойти результат запроса, на каждой итерации цикла выполнив расчёт премии, умножив базу на процент премии и поделив на 100. ```bsl Пока Выборка.Следующий() Цикл Движение = Движения.Зарплата[Выборка.НомерСтроки - 1]; Движение.Сумма = Выборка.СуммаБаза * Процент / 100; КонецЦикла; ``` * определив сумму, сформировать парное движение на такую же сумму по регистру бухгалтерии **Управленческий** в Дт счета **Расходы** и в Кт счета **РасчетыССотрудниками**, заполнив субконто **Сотрудник**; * создав документ, проверьте себя, начислив премию процентом от оклада и выплатив все начисления документом **СписаниеДенежныхСредств**. В оборотно-сальдовой ведомости кредитовые обороты счета **РасчетыССотрудниками** должны полностью закрыться дебетовыми, и остаток стать нулевым.