Как описать вид расчета в 1С:Предприятие 8.1 ЗУП 2.5 с параметрами ...

Новая тема
Как описать вид расчета в 1С:Предприятие 8.1 ЗУП 2.5 месячной премии сотрудникам по их КТУ и ОБЩЕЙ СУММЫ к выплате на подразделение, что бы размер премии был расчитан пропорционально КТУ и зарплате сотрудника по окладу за этот месяц? Можно ли обойтись без изменений в конфирации?
Показатели схем мотивации и есть практически параметры , только не вычисляемые автоматически,
а константы которые вводятся перед расчетом в регитр св-ий "значения показателей схем...."

т. е вводите вручную КТУ, а зарплату сотрудника добавляете в базу расчета премии
Без внесения в конфигурацию не получится.
Как пример, можно взять сдельный наряд, там учитывается КТУ и тариф.
Я думаю что мотивации не поможет, если я правильно поняла задачу.
Например распределить 10000 руб

з/плата
Оклад   КТУ   база  Премия
3000     1,5  4500   6428,57
1000     0,5   500    714,29
2000     1    2000   2857,14
"В ЗиК 7.7 расчет премии был такой:
Процедура РассчитатьПремию()
Если ПроведенВПрошлом=1 Тогда
Предупреждение("Невозможно рассчитать документ, проведенный в прошлом периоде!",10);
Возврат
КонецЕсли;
Если КоличествоСтрок() = 0 Тогда
Возврат
КонецЕсли;
ВсегоПоОкладу = 0; Веса = 0;
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Если Сотрудник.Выбран() = 0 тогда
Продолжить;
КонецЕсли;
ВсегоПоОкладу = ВсегоПоОкладу + ПоОкладу;
КонецЦикла;
Если ВсегоПоОкладу = 0 Тогда
Предупреждение("Никто ничего не заработал!",10);
Возврат
КонецЕсли;
ВсегоПремия = СуммаПодразделения - ВсегоПоОкладу;
Если ВсегоПремия <= 0 Тогда
Текст = "Ошибка!" +                                      
"|Сумма подразделения - " + СуммаПодразделения +
"|Требуется для минимальной оплаты по окладу - " + ВсегоПоОкладу +
"|На премию не хватает средств!";
Предупреждение(Текст,10);
Возврат
Иначе
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Если Сотрудник.Выбран() = 1 тогда
Вес = КТУ * ПоОкладу;
Веса = Веса + Вес;
КонецЕсли;
КонецЦикла;
КПремии = ВсегоПремия / Веса;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Если Сотрудник.Выбран() = 1 тогда          
Прем = Вес * КПремии;
Премия = Окр(Прем, 0);  
КонецЕсли;
КонецЦикла;                          
КонецЕсли;
КонецПроцедуры // РассчитатьПремию

Например: СуммаПодразделения = 10000;
ВсегоПремия = 10000 - (3000+1000+2000) = 4000;
Вес = 3000 * 1,5 = 4500 (база);
Веса = 4500 + 500 + 2000 = 7000;
КПремии = 4000 / 7000 = 0,5714;
Премия = Окр(4500 * 0,5714) = 2571; Окр(500 * 0,5714) = 286; Окр(2000 * 0,5714) = 1143;

Заработок составит 3000+2571=5571; 1000+286=1286; 2000+1143=3143;
СуммаПодразделения = 5571+1286+3143 = 10000.

В расчете премии нужно реализовать три цикла:
1. Просуммировать заработок по окладу;
2. Просуммировать базы;
3. Расчитать размер премий.
"
Значит я правильно поняла.
Но если судит по алгоритму, у вас не просто какая-то фиксированная сумма премиий.
У вас есть фонд заработной платы подразделения=10000
Определяется текущая з/плата по окладу. И если есть экономия фонда ( например кто-то болел и т п), то определяется сумма для расспределения .

Мое мнение. Я бы сделала отдельный документ ( на примере сдельного наряда).




Спасибо, Tanya! Буду делать документ.
Читают тему
(гостей: 1)

Быстрый переход