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