1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2025-02-10 18:10:35 +02:00

Update diploma-c-howto-salary.md

This commit is contained in:
Stanislav Wilf 2020-09-13 15:46:17 +03:00 committed by GitHub
parent 23efae6436
commit 1912bffe55
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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