mirror of
https://github.com/netology-code/1c-homeworks.git
synced 2024-11-24 08:02:20 +02:00
11 KiB
11 KiB
Зарплата
Все добавляемые объекты включаем в новую подсистему Зарплата, выведенную в командный интерфейс, и включаем в состав функциональной опции ВестиРасчетЗарплаты.
- Добавить регистр сведений Календарь:
- Измерение - День (Дата)
- Ресурс - Рабочий (Число)
- Добавить план видов расчета Начисления:
- Без кода и с наименованием разумной длины (например, 100)
- На закладке "Расчет" укажите:
- Использование периода действие
- Зависимость от базы по периоду действия по тому же плану видов расчета
- Создайте предопределенные виды расчета:
- Больничный, Отпуск, ФиксированнаяПремия
- ОплатаПоОкладу с вытесняющими видами расчета Больничный и Отпуск
- ПремияПроцентом с базовым и ведущим видом расчета ОплатаПоОкладу
- Добавить регистр расчета Зарплата:
- С учетом по плану видов расчета Начисления
- Использующий период действия и базовый период
- Использующий в качестве графика регистр Календарь, со значением графика Рабочий, а датой графика - День
- С периодичностью "Месяц"
- С измерением Сотрудник (СправочникСсылка.Сотрудники) и ресурсом Сумма (ОпределяемыйТип.Сумма).
- Добавить документ НачислениеСписком для начисления фиксированных сумм по списку сотрудников:
- С обязательным реквизитом Начисление (ВидРасчетаСсылка.Начисления)
- С обязательными реквизитами ПериодДействияНачало и ПериодДействияКонец (Дата и время)
- С табличной частью Сотрудники с реквизитами Сотрудник (СправочникСсылка.Сотрудники) и Сумма (ОпределяемыйТип.Сумма).
- Создать для него понятную форму документа.
- На закладке "Движения" сделать его регистратором для регистра расчета Зарплата и для регистра бухгалтерии Управленческий
- В обработке проведения для каждой строки формировать движения:
- По регистру расчета Зарплата, не забыв заполнить вид расчета (по реквизиту Начисление), период регистрации (дата документа) и период действия (согласно реквизитам ПериодДействияНачало и ПериодДействияКонец). Период действия понадобится в дальнейшем для вытеснения оплаты по окладу больничными и отпусками, введенными этим документом.
- По регистру бухгалтерии Управленческий в Дт счета Расходы и в Кт счета РасчетыССотрудниками с заполнением субконто Сотрудник на сумму начисления.
- Добавить документ НачислениеОплатыПоОкладу для начисления оплаты по окладу с учетом фактически отработанного времени:
- С обязательным реквизитом ЗаМесяц типа Дата с форматом "MM.yyyy", чтобы пользователь видел только месяц.
- С табличной частью Сотрудники с единственным реквизитом Сотрудник (СправочникСсылка.Сотрудники).
- Создать для него понятную форму документа.
- На закладке "Движения" сделать его регистратором для регистра расчета Зарплата и для регистра бухгалтерии Управленческий
- В обработке проведения:
- Записать движения, пока без сумм, по регистру расчета Зарплата. При этом:
- В качестве периода регистрации указать дату документа, а в качестве периода действия - начало и конец месяца даты ЗаМесяц.
- В качестве вида расчета указать предопределенный ПланыВидовРасчета.Начисления.ОплатаПоОкладу.
- После записи движений документа, выполнить запрос к ним, в запросе:
- Получить оклад для каждого сотрудника.
- Получить факт и норму из соответствующей виртуальной таблицы регистра расчета.
- Получить номер строки движений для последующего обращения к нужному.
- Обойти результат запроса, на каждой итерации цикла выполнив расчет сумму путем умножения оклада на частное деления факта на норму:
- Записать движения, пока без сумм, по регистру расчета Зарплата. При этом:
Пока Выборка.Следующий() Цикл
Движение = Движения.Зарплата[Выборка.НомерСтроки - 1];
Движение.Сумма = Выборка.Оклад * Выборка.Факт / Выборка.План;
КонецЦикла;
- Определив сумму, сформировать парное движение на такую же сумму по регистру бухгалтерии Управленческий в Дт счета Расходы и в Кт счета РасчетыССотрудникми, заполнив субконто Сотрудник.
- Создав документ, заполните календарь и убедитесь в том, что документ:
- В отсутствие вытесняющих начислений начисляет за месяц полную сумму оклада.
- После ввода оклада или больничного документом НачислениеСписком уменьшает начисления по окладу пропорционально дням невыхода.
- Добавить документ НачислениеПремииПроцентом для начисления премии процентом от оклада:
- С обязательным числовым реквизитом Процент
- С обязательным реквизитом ЗаМесяц типа Дата с форматом "MM.yyyy", чтобы пользователь видел только месяц.
- С табличной частью Сотрудники с единственным реквизитом Сотрудник (СправочникСсылка.Сотрудники).
- Создать для него понятную форму документа.
- На закладке "Движения" сделать его регистратором для регистра расчета Зарплата и для регистра бухгалтерии Управленческий
- В обработке проведения:
- Записать движения, пока без сумм, по регистру расчета Зарплата. При этом:
- В качестве периода регистрации указать дату документа, а в качестве периода действия и базового периода действия - начало и конец месяца даты ЗаМесяц.
- В качестве вида расчета указать предопределенный ПланыВидовРасчета.Начисления.ПремияПроцентом.
- Записав движения, получить базу запросом к соответствующей виртуальной таблице.
- Обойти результат запроса, на каждой итерации цикла выполнив расчет премии, умножив базу на процент премии и поделив на 100.
- Записать движения, пока без сумм, по регистру расчета Зарплата. При этом:
Пока Выборка.Следующий() Цикл
Движение = Движения.Зарплата[Выборка.НомерСтроки - 1];
Движение.Сумма = Выборка.СуммаБаза * Процент / 100;
КонецЦикла;
- Определив сумму, сформировать парное движение на такую же сумму по регистру бухгалтерии Управленческий в Дт счета Расходы и в Кт счета РасчетыССотрудниками, заполнив субконто Сотрудник.
- Создав документ, проверьте себя, начислив премию процентом от оклада и выплатив все начисления документом СписаниеДенежныхСредств. В оборотно-сальдовой ведомости кредитовые обороты счета РасчетыССотрудниками должны полностью закрыться дебетовыми, и остаток стать нулевым.