Каталог решений - Пример использования показателей схем мотивации

Пример использования показателей схем мотивации

Пример использования показателей схем мотивации

В наличии

Пример использования показателей схем мотивации для организации расчета заработной платы процентом от оборота магазина.

Категория:

Описание

Способ расчета зарплаты

Оплата продавцов магазина производится процентом от месячного товарооборота магазина. Месячный оклад зав. магазином – 3100руб. до 200000 руб. (минимальный размер) товарооборота. При обороте свыше 200000 руб. заведующей магазина дополнительно к окладу с суммы превышения товарооборота начисляется заработная плата по существующим расценкам с рубля товарооборота на общих основаниях.

Оплата труда продавцов за товарооборот до 200000 руб. производится без учета зав. магазином по существующим расценкам.

Оплата труда продавцов за товарооборот свыше 200000 руб. производится с учетом зав. магазином по существующим расценкам.

Пример расчета:

Оборот составил 970000руб., процент от оборота – 3,7%.   

 Формула

  1. Заведующая   167 ч.*33,557126 = 5604,04+3100,00=8704,04 руб.
  2. Продавец 1      176 ч.*44,407565 = 7815,73 руб.
  3. Продавец 2      176 ч.*44,407565 = 7815,73 руб.
  4. Продавец 3      165 ч.*44,407565 = 7327,25 руб.
  5. Продавец 4      165 ч.*44,407565 = 7327,25 руб.       

                                 682ч./849ч.               35890,00 руб.

Для решения задачи завел в справочнике «Показатели схем мотивации» новые элементы.

Показатели схем мотивации

Перед расчетом зарплаты вводим значения показателей в обработку «Показатели схем мотивации»

Обработка 1

Обработка 2

В форму обработки добавил кнопку «Расчет показателей», по нажатию которой и рассчитываются нижние показатели.

Некоторые куски кода обработки:

	мПоказатель = Новый Массив;
	мПоказатель.Добавить(Справочники.ПоказателиСхемМотивации.НайтиПоРеквизиту("Идентификатор","ВыручкаПоМагазину"));
	мПоказатель.Добавить(Справочники.ПоказателиСхемМотивации.НайтиПоРеквизиту("Идентификатор","ПроцентПоРознице"));  
	мПоказатель.Добавить(Справочники.ПоказателиСхемМотивации.НайтиПоРеквизиту("Идентификатор","КонстантаОборот"));  

Ищу показатели по реквизиту «Идентификатор».

	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ 
| ЗначенияПоказателейСхемМотивации.Значение,
| ЗначенияПоказателейСхемМотивации.Показатель
|ИЗ
| РегистрСведений.ЗначенияПоказателейСхемМотивации КАК ЗначенияПоказателейСхемМотивации
|ГДЕ
| ЗначенияПоказателейСхемМотивации.ПериодДействия = &ПериодДействия
| И ЗначенияПоказателейСхемМотивации.Организация = &Организация
| И ЗначенияПоказателейСхемМотивации.Подразделение = &Подразделение
| И ЗначенияПоказателейСхемМотивации.Показатель В(&Показатель)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Значение,
| ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Показатель
|ИЗ
| РегистрСведений.ПериодическиеЗначенияПоказателейСхемМотивации.СрезПоследних(
| &ПериодДействия,
| Показатель.ВидПоказателя = ЗНАЧЕНИЕ(Перечисление.ВидыПоказателейСхемМотивации.ДляВсехОрганизаций)
| И Показатель В (&Показатель)) КАК ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних"
; Запрос.УстановитьПараметр("ПериодДействия", ПериодДействия); Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("Подразделение", Подразделение); Запрос.УстановитьПараметр("Показатель", мПоказатель); ТЗ = Запрос.Выполнить().Выгрузить();

Выбираю запросом значения заданных показателей из двух(!) РС: ЗначенияПоказателейСхемМотивации и ПериодическиеЗначенияПоказателейСхемМотивации (причем в последний как ни странно попадают показатели из вкладки «Постоянные»!).

Нахожу отработанное время суммарное и заведующей:

 
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ 
| РабочееВремяРаботниковОрганизацийОбороты.ЧасовОборот КАК ОтработаноЧасов
|ИЗ
| РегистрНакопления.РабочееВремяРаботниковОрганизаций.Обороты(&ПериодНачало, &ПериодКонец, Месяц, Сотрудник В (&мСотрудники)) КАК РабочееВремяРаботниковОрганизацийОбороты
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| РабочееВремяРаботниковОрганизацийОбороты.ЧасовОборот
|ИЗ
| РегистрНакопления.РабочееВремяРаботниковОрганизаций.Обороты(&ПериодНачало, &ПериодКонец, Месяц, Сотрудник = &Заведующая) КАК РабочееВремяРаботниковОрганизацийОбороты"
; Запрос.УстановитьПараметр("мСотрудники", мСотрудники); Запрос.УстановитьПараметр("Заведующая", Заведующая); Запрос.УстановитьПараметр("ПериодНачало", НачалоМесяца(ПериодДействия)); Запрос.УстановитьПараметр("ПериодКонец", КонецМесяца(ПериодДействия)); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать();

Рассчитываю стоимость часа продавца и заведующей:

		ПроцентПоРознице = ПроцентПоРознице/100;	
		СтоимостьЧасаЗаведующей = (ВыручкаПоМагазину-ВыручкаПоМагазинуМинимальныйПорог)*ПроцентПоРознице/ОтРаботаноЧасовПоМагазинуВсего;
		СтоимостьЧасаПродавцовПредварительная = ВыручкаПоМагазинуМинимальныйПорог*ПроцентПоРознице/(ОтРаботаноЧасовПоМагазинуВсего-ОтРаботаноЧасовПоМагазинуЗаведующей);
		СтоимостьЧасаПродавцов = СтоимостьЧасаПродавцовПредварительная+СтоимостьЧасаЗаведующей;
 

Ну, и записываю результат в РС:

	Для каждого СтрокаТЗ Из ТЗ Цикл
 
НаборЗаписей = РегистрыСведений.ЗначенияПоказателейСхемМотивации.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ПериодДействия.Установить(ПериодДействия); НаборЗаписей.Отбор.Организация.Установить(Организация); НаборЗаписей.Отбор.Подразделение.Установить(Подразделение); НаборЗаписей.Отбор.Показатель.Установить(СтрокаТЗ.Показатель); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.ПериодДействия = ПериодДействия; НоваяЗапись.Организация = Организация; НоваяЗапись.Подразделение = Подразделение; НоваяЗапись.Показатель = СтрокаТЗ.Показатель; НоваяЗапись.Значение = СтрокаТЗ.Значение; НаборЗаписей.Записать(); КонецЦикла;

Создаю 2 новых вида расчета в видах расчета «Основные начисления организаций» для заведующей и продавцов.

Виды расчета 2

Расчет готов.

P.S.

С учетом замечаний вынес расчет показателей из модуля формы во внешнюю обработку заполнения ТЧ.

ВОЗТЧ

В ТЧ «Начисления» документа «Начисление зарплаты сотрудникам организации» появилась кнопка «Заполнить» по которой и происходит выполнение обработки. Таким образом, удалось избежать изменения кода конфигурации.

has been added to your cart:
Оформление заказа