diff --git a/diploma-c-howto-salary.md b/diploma-c-howto-salary.md index 0ef0a00..1c093f9 100644 --- a/diploma-c-howto-salary.md +++ b/diploma-c-howto-salary.md @@ -3,50 +3,50 @@ Все добавляемые объекты включаем в новую подсистему **Зарплата**, выведенную в командный интерфейс, и включаем в состав функциональной опции **ВестиРасчетЗарплаты**. 1. Добавить регистр сведений **Календарь**: - * Измерение - День (Дата) - * Ресурс - Рабочий (Число) + * измерение — День (Дата); + * ресурс — Рабочий (Число). -2. Добавить план видов расчета **Начисления**: - * Без кода и с наименованием разумной длины (например, 100) - * На закладке "Расчет" укажите: - * Использование периода действие - * Зависимость от базы по периоду действия по тому же плану видов расчета - * Создайте предопределенные виды расчета: - * **Больничный**, **Отпуск**, **ФиксированнаяПремия** - * **ОплатаПоОкладу** с вытесняющими видами расчета **Больничный** и **Отпуск** - * **ПремияПроцентом** с базовым и ведущим видом расчета **ОплатаПоОкладу** +2. Добавить план видов расчёта **Начисления**: + * без кода и с наименованием разумной длины (например, 100); + * на закладке «Расчёт» укажите: + * использование периода действие, + * зависимость от базы по периоду действия по тому же плану видов расчёта; + * создайте предопределенные виды расчёта: + * **Больничный**, **Отпуск**, **ФиксированнаяПремия**; + * **ОплатаПоОкладу** с вытесняющими видами расчета **Больничный** и **Отпуск**; + * **ПремияПроцентом** с базовым и ведущим видом расчёта **ОплатаПоОкладу**. -3. Добавить регистр расчета **Зарплата**: - * С учетом по плану видов расчета **Начисления** - * Использующий период действия и базовый период - * Использующий в качестве графика регистр **Календарь**, со значением графика **Рабочий**, а датой графика - **День** - * С периодичностью "Месяц" - * С измерением **Сотрудник** (СправочникСсылка.Сотрудники) и ресурсом **Сумма** (ОпределяемыйТип.Сумма). +3. Добавить регистр расчёта **Зарплата**: + * с учётом по плану видов расчета **Начисления**; + * использующий период действия и базовый период; + * использующий в качестве графика регистр **Календарь**, со значением графика **Рабочий**, а датой графика — **День**; + * с периодичностью «Месяц»; + * с измерением **Сотрудник** (СправочникСсылка.Сотрудники) и ресурсом **Сумма** (ОпределяемыйТип.Сумма). 4. Добавить документ **НачислениеСписком** для начисления фиксированных сумм по списку сотрудников: - * С обязательным реквизитом **Начисление** (ВидРасчетаСсылка.Начисления) - * С обязательными реквизитами **ПериодДействияНачало** и **ПериодДействияКонец** (Дата и время) - * С табличной частью **Сотрудники** с реквизитами **Сотрудник** (СправочникСсылка.Сотрудники) и **Сумма** (ОпределяемыйТип.Сумма). - * Создать для него понятную форму документа. - * На закладке "Движения" сделать его регистратором для регистра расчета **Зарплата** и для регистра бухгалтерии **Управленческий** - * В обработке проведения для каждой строки формировать движения: - * По регистру расчета **Зарплата**, не забыв заполнить вид расчета (по реквизиту **Начисление**), период регистрации (дата документа) и период действия (согласно реквизитам **ПериодДействияНачало** и **ПериодДействияКонец**). Период действия понадобится в дальнейшем для вытеснения оплаты по окладу больничными и отпусками, введенными этим документом. - * По регистру бухгалтерии **Управленческий** в Дт счета **Расходы** и в Кт счета **РасчетыССотрудниками** с заполнением субконто **Сотрудник** на сумму начисления. + * с обязательным реквизитом **Начисление** (ВидРасчетаСсылка.Начисления); + * с обязательными реквизитами **ПериодДействияНачало** и **ПериодДействияКонец** (Дата и время); + * с табличной частью **Сотрудники** с реквизитами **Сотрудник** (СправочникСсылка.Сотрудники) и **Сумма** (ОпределяемыйТип.Сумма); + * создать для него понятную форму документа; + * на закладке «Движения» сделать его регистратором для регистра расчета **Зарплата** и для регистра бухгалтерии **Управленческий**; + * в обработке проведения для каждой строки формировать движения: + * по регистру расчёта **Зарплата**, не забыв заполнить вид расчёта (по реквизиту **Начисление**), период регистрации (дата документа) и период действия (согласно реквизитам **ПериодДействияНачало** и **ПериодДействияКонец**). Период действия понадобится в дальнейшем для вытеснения оплаты по окладу больничными и отпусками, введенными этим документом; + * по регистру бухгалтерии **Управленческий** в Дт счета **Расходы** и в Кт счета **РасчетыССотрудниками** с заполнением субконто **Сотрудник** на сумму начисления. -5. Добавить документ **НачислениеОплатыПоОкладу** для начисления оплаты по окладу с учетом фактически отработанного времени: - * С обязательным реквизитом **ЗаМесяц** типа Дата с форматом "MM.yyyy", чтобы пользователь видел только месяц. - * С табличной частью **Сотрудники** с единственным реквизитом **Сотрудник** (СправочникСсылка.Сотрудники). - * Создать для него понятную форму документа. - * На закладке "Движения" сделать его регистратором для регистра расчета **Зарплата** и для регистра бухгалтерии **Управленческий** - * В обработке проведения: - * Записать движения, пока без сумм, по регистру расчета **Зарплата**. При этом: - * В качестве периода регистрации указать дату документа, а в качестве периода действия - начало и конец месяца даты **ЗаМесяц**. - * В качестве вида расчета указать предопределенный ПланыВидовРасчета.Начисления.ОплатаПоОкладу. - * После записи движений документа, выполнить запрос к ним, в запросе: - * Получить оклад для каждого сотрудника. - * Получить факт и норму из соответствующей виртуальной таблицы регистра расчета. - * Получить номер строки движений для последующего обращения к нужному. - * Обойти результат запроса, на каждой итерации цикла выполнив расчет сумму путем умножения оклада на частное деления факта на норму: +5. Добавить документ **НачислениеОплатыПоОкладу** для начисления оплаты по окладу с учётом фактически отработанного времени: + * с обязательным реквизитом **ЗаМесяц** типа Дата с форматом «MM.yyyy», чтобы пользователь видел только месяц; + * с табличной частью **Сотрудники** с единственным реквизитом **Сотрудник** (СправочникСсылка.Сотрудники); + * создать для него понятную форму документа; + * на закладке «Движения» сделать его регистратором для регистра расчета **Зарплата** и для регистра бухгалтерии **Управленческий** + * в обработке проведения: + * записать движения, пока без сумм, по регистру расчёта **Зарплата**. При этом: + * в качестве периода регистрации указать дату документа, а в качестве периода действия — начало и конец месяца даты **ЗаМесяц**; + * в качестве вида расчёта указать предопределенный ПланыВидовРасчета.Начисления.ОплатаПоОкладу; + * после записи движений документа, выполнить запрос к ним, в запросе: + * получить оклад для каждого сотрудника, + * получить факт и норму из соответствующей виртуальной таблицы регистра расчёта, + * получить номер строки движений для последующего обращения к нужному; + * обойти результат запроса, на каждой итерации цикла выполнив расчёт суммы путем умножения оклада на частное деления факта на норму: ```bsl Пока Выборка.Следующий() Цикл @@ -55,24 +55,24 @@ КонецЦикла; ``` - * Определив сумму, сформировать парное движение на такую же сумму по регистру бухгалтерии **Управленческий** в Дт счета **Расходы** и в Кт счета **РасчетыССотрудникми**, заполнив субконто **Сотрудник**. - * Создав документ, заполните календарь и убедитесь в том, что документ: - * В отсутствие вытесняющих начислений начисляет за месяц полную сумму оклада. - * После ввода оклада или больничного документом **НачислениеСписком** уменьшает начисления по окладу пропорционально дням невыхода. + * определив сумму, сформировать парное движение на такую же сумму по регистру бухгалтерии **Управленческий** в Дт счета **Расходы** и в Кт счета **РасчетыССотрудникми**, заполнив субконто **Сотрудник**. + * создав документ, заполните календарь и убедитесь в том, что документ: + * в отсутствие вытесняющих начислений начисляет за месяц полную сумму оклада, + * после ввода оклада или больничного документом **НачислениеСписком** уменьшает начисления по окладу пропорционально дням невыхода. 6. Добавить документ **НачислениеПремииПроцентом** для начисления премии процентом от оклада: - * С обязательным числовым реквизитом **Процент** - * С обязательным реквизитом **ЗаМесяц** типа Дата с форматом "MM.yyyy", чтобы пользователь видел только месяц. - * С табличной частью **Сотрудники** с единственным реквизитом **Сотрудник** (СправочникСсылка.Сотрудники). - * Создать для него понятную форму документа. - * На закладке "Движения" сделать его регистратором для регистра расчета **Зарплата** и для регистра бухгалтерии **Управленческий** - * В обработке проведения: - * Записать движения, пока без сумм, по регистру расчета **Зарплата**. При этом: - * В качестве периода регистрации указать дату документа, а в качестве периода действия и базового периода действия - начало и конец месяца даты **ЗаМесяц**. - * В качестве вида расчета указать предопределенный ПланыВидовРасчета.Начисления.ПремияПроцентом. - * Записав движения, получить базу запросом к соответствующей виртуальной таблице. - * Обойти результат запроса, на каждой итерации цикла выполнив расчет премии, умножив базу на процент премии и поделив на 100. + * с обязательным числовым реквизитом **Процент**; + * с обязательным реквизитом **ЗаМесяц** типа Дата с форматом «MM.yyyy», чтобы пользователь видел только месяц; + * с табличной частью **Сотрудники** с единственным реквизитом **Сотрудник** (СправочникСсылка.Сотрудники); + * создать для него понятную форму документа; + * на закладке «Движения» сделать его регистратором для регистра расчёта **Зарплата** и для регистра бухгалтерии **Управленческий**; + * в обработке проведения: + * записать движения, пока без сумм, по регистру расчета **Зарплата**. При этом: + * в качестве периода регистрации указать дату документа, а в качестве периода действия и базового периода действия — начало и конец месяца даты **ЗаМесяц**; + * в качестве вида расчета указать предопределенный ПланыВидовРасчета.Начисления.ПремияПроцентом; + * записав движения, получить базу запросом к соответствующей виртуальной таблице; + * обойти результат запроса, на каждой итерации цикла выполнив расчёт премии, умножив базу на процент премии и поделив на 100. ```bsl Пока Выборка.Следующий() Цикл @@ -81,5 +81,5 @@ КонецЦикла; ``` - * Определив сумму, сформировать парное движение на такую же сумму по регистру бухгалтерии **Управленческий** в Дт счета **Расходы** и в Кт счета **РасчетыССотрудниками**, заполнив субконто **Сотрудник**. - * Создав документ, проверьте себя, начислив премию процентом от оклада и выплатив все начисления документом **СписаниеДенежныхСредств**. В оборотно-сальдовой ведомости кредитовые обороты счета **РасчетыССотрудниками** должны полностью закрыться дебетовыми, и остаток стать нулевым. + * определив сумму, сформировать парное движение на такую же сумму по регистру бухгалтерии **Управленческий** в Дт счета **Расходы** и в Кт счета **РасчетыССотрудниками**, заполнив субконто **Сотрудник**; + * создав документ, проверьте себя, начислив премию процентом от оклада и выплатив все начисления документом **СписаниеДенежныхСредств**. В оборотно-сальдовой ведомости кредитовые обороты счета **РасчетыССотрудниками** должны полностью закрыться дебетовыми, и остаток стать нулевым.