"В ЗиК 7.7 расчет премии был такой:<br>Процедура РассчитатьПремию()<br> Если ПроведенВПрошлом=1 Тогда<br> Предупреждение("Невозможно рассчитать документ, проведенный в прошлом периоде!",10);<br> Возврат<br> КонецЕсли;<br> Если КоличествоСтрок() = 0 Тогда<br> Возврат<br> КонецЕсли;<br> ВсегоПоОкладу = 0; Веса = 0;<br> ВыбратьСтроки();<br> Пока ПолучитьСтроку() = 1 Цикл<br> Если Сотрудник.Выбран() = 0 тогда<br> Продолжить;<br> КонецЕсли;<br> ВсегоПоОкладу = ВсегоПоОкладу + ПоОкладу;<br> КонецЦикла;<br> Если ВсегоПоОкладу = 0 Тогда<br> Предупреждение("Никто ничего не заработал!",10);<br> Возврат<br> КонецЕсли;<br> ВсегоПремия = СуммаПодразделения - ВсегоПоОкладу;<br> Если ВсегоПремия <= 0 Тогда<br> Текст = "Ошибка!" + <br> "|Сумма подразделения - " + СуммаПодразделения +<br> "|Требуется для минимальной оплаты по окладу - " + ВсегоПоОкладу +<br> "|На премию не хватает средств!";<br> Предупреждение(Текст,10);<br> Возврат<br> Иначе<br> ВыбратьСтроки();<br> Пока ПолучитьСтроку()=1 Цикл<br> Если Сотрудник.Выбран() = 1 тогда<br> Вес = КТУ * ПоОкладу;<br> Веса = Веса + Вес;<br> КонецЕсли;<br> КонецЦикла;<br> КПремии = ВсегоПремия / Веса;<br> ВыбратьСтроки();<br> Пока ПолучитьСтроку()=1 Цикл<br> Если Сотрудник.Выбран() = 1 тогда <br> Прем = Вес * КПремии;<br> Премия = Окр(Прем, 0); <br> КонецЕсли;<br> КонецЦикла; <br> КонецЕсли;<br>КонецПроцедуры // РассчитатьПремию<br><br>Например: СуммаПодразделения = 10000;<br>ВсегоПремия = 10000 - (3000+1000+2000) = 4000;<br>Вес = 3000 * 1,5 = 4500 (база);<br>Веса = 4500 + 500 + 2000 = 7000;<br>КПремии = 4000 / 7000 = 0,5714;<br>Премия = Окр(4500 * 0,5714) = 2571; Окр(500 * 0,5714) = 286; Окр(2000 * 0,5714) = 1143;<br><br>Заработок составит 3000+2571=5571; 1000+286=1286; 2000+1143=3143;<br>СуммаПодразделения = 5571+1286+3143 = 10000.<br><br>В расчете премии нужно реализовать три цикла: <br>1. Просуммировать заработок по окладу;<br>2. Просуммировать базы;<br>3. Расчитать размер премий.<br>"