86 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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