"Функция мБазоваяСумма(лНачисление = """",лТипНагрузки = """", лПроценты = """", лНадбавка_Руб = """", лНадбавка_Проц = """") Экспорт<br> Если(ПустоеЗначение(лНачисление) = 1)Тогда<br> лНачисление = Начисление;<br> КонецЕсли;<br> Если(ПустоеЗначение(лТипНагрузки) = 1)Тогда<br> лТипНагрузки = ТипНагрузки;<br> КонецЕсли;<br> Если(лПроценты = """")Тогда<br> лПроценты = Проценты;<br> КонецЕсли;<br> Если(лНадбавка_Руб = """")Тогда<br> лНадбавка_Руб = Надбавка_Руб;<br> КонецЕсли;<br> Если(лНадбавка_Проц = """")Тогда<br> лНадбавка_Проц = Надбавка_Проц;<br> КонецЕсли;<br> лВидТарифнойСетки = ВидТарифнойСетки;<br> Если СпособРасчетаЧасВНед(лНачисление.СпособРасчета) = 1 Тогда<br> Возврат мРасчитатьсяЗаЧасы(лНачисление.СпособРасчета);<br> ИначеЕсли лНачисление.СпособРасчета=Перечисление.СпособыРасчета.СтавкаПоРазряду Тогда<br> лСтавка = ПолучитьСуммуИзЕТС (Разряд, лВидТарифнойСетки, ТекДата,БезМестныхНадбавок,БезДоплат);<br> лСтавка = лСтавка + лНадбавка_Руб + лСтавка * лНадбавка_Проц/100;<br> лСтавка = размер * лСтавка;<br> Если Коэффициент <> 0 Тогда<br> лСтавка = лСтавка * Коэффициент;<br> КонецЕсли;<br> лСтавка = Окр(лСтавка,2);<br> Возврат лСтавка;<br> ИначеЕсли лНачисление.СпособРасчета=Перечисление.СпособыРасчета.ПроцентОтСтавки Тогда<br> лСтавка = ПолучитьСуммуИзЕТС (Разряд, лВидТарифнойСетки,ТекДата,БезМестныхНадбавок,БезДоплат);<br> лСтавка = лСтавка + лНадбавка_Руб + лСтавка * лНадбавка_Проц/100;<br> лСтавка = лСтавка * проценты/100;<br> Если Коэффициент <> 0 Тогда<br> лСтавка = лСтавка * Коэффициент;<br> КонецЕсли;<br> лСтавка = Окр(лСтавка,2);<br> Возврат лСтавка;<br> ИначеЕсли лНачисление.СпособРасчета=Перечисление.СпособыРасчета.СуммаФиксированная Тогда<br> лСтавка = размер;<br> Если Коэффициент <> 0 Тогда<br> лСтавка = лСтавка * Коэффициент;<br> КонецЕсли;<br> Возврат Окр(лСтавка,2);<br> ИначеЕсли лНачисление.СпособРасчета=Перечисление.СпособыРасчета.ПроцентОтНагрузки Тогда<br> Возврат мРасчитатьсяЗаЧасы(лТипНагрузки,лПроценты, лНадбавка_Руб, лНадбавка_Проц);<br> КонецЕсли;<br>КонецФункции<br><br><br>Функция мРассчитатьСуммуНадбавки (лНачисление, доб = 0) Экспорт<br><br> нач_сотр=СоздатьОбъект("Справочник.НачисленияСотрудника");<br> нач_сотр.ИспользоватьВладельца(Владелец);<br><br> коэф=проценты/100+доб;<br> лНайдено = 0;лНомерСтрокиДерева = 0;<br> Если(ТипЗначенияСтр(мДеревоНадбавок)="ТаблицаЗначений")Тогда<br> лНомер = """";<br> Если(мДеревоНадбавок.НайтиЗначение(ТекущийЭлемент(), лНомер, "НачислениеСотрудника")=1)Тогда<br> лТаблицаНадбавок = мДеревоНадбавок.ПолучитьЗначение(лНомер, "ТаблицаНадбавок");<br> лНайдено = 1;<br> КонецЕсли;<br> КонецЕсли;<br> Если(лНайдено = 0)Тогда<br> лТаблицаНадбавок = СоздатьОбъект("ТаблицаЗначений");<br> лТаблицаНадбавок.НоваяКолонка("НачислениеСотрудника");<br> лТаблицаНадбавок.НоваяКолонка("БазоваяСумма");<br> лТаблицаНадбавок.НоваяКолонка("Сумма");<br> Если(ТипЗначенияСтр(мДеревоНадбавок)="ТаблицаЗначений")Тогда<br> лНомерСтрокиДерева = мДеревоНадбавок.НоваяСтрока();<br> мДеревоНадбавок.УстановитьЗначение(лНомерСтрокиДерева, "НачислениеСотрудника", ТекущийЭлемент());<br> мДеревоНадбавок.УстановитьЗначение(лНомерСтрокиДерева, "ТаблицаНадбавок", лТаблицаНадбавок);<br> мДеревоНадбавок.УстановитьЗначение(лНомерСтрокиДерева, "Коэффициент", коэф);<br> КонецЕсли;<br> КонецЕсли;<br> база=СоздатьОбъект("Справочник.БазаНачисления");<br> база.ИспользоватьВладельца(Начисление);<br> база.ВыбратьЭлементы();<br> сум=0;лБазоваяСумма = 0;<br> Пока база.ПолучитьЭлемент()<>0 Цикл<br> нач_сотр.ВыбратьЭлементыПоРеквизиту("Начисление",база.начисление);<br> Пока нач_сотр.ПолучитьЭлемент()>0 Цикл<br> Если(нач_сотр.Должность = Должность)и(ТекущийЭлемент() <> нач_сотр.ТекущийЭлемент())Тогда<br> Если ДействуетНачислениеСотрудника (нач_сотр.ТекущийЭлемент(), ТекДата)=1 Тогда<br> //Если (ПустоеЗначение(Источник)=1) или (нач_сотр.Источник=Источник) Тогда<br> лНомер = """";<br> Если(лТаблицаНадбавок.НайтиЗначение(нач_сотр.ТекущийЭлемент(), лНомер, "НачислениеСотрудника")=0)Тогда<br> лНомер = лТаблицаНадбавок.НоваяСтрока();<br> лТаблицаНадбавок.УстановитьЗначение(лНомер, "НачислениеСотрудника", нач_сотр.ТекущийЭлемент());<br> Если база.Начисление.СпособРасчета=Перечисление.СпособыРасчета.ПроцентОтНачислений Тогда<br> бс = мРассчитатьСуммуНадбавки(база.Начисление,1);<br> Иначе<br> бс=БазоваяСумма(нач_сотр.ТекущийЭлемент(), ТекДата);<br> КонецЕсли;<br> лТаблицаНадбавок.УстановитьЗначение(лНомер, "БазоваяСумма", бс);<br> Иначе<br> бс = лТаблицаНадбавок.ПолучитьЗначение(лНомер, "БазоваяСумма");<br> КонецЕсли;<br> лБазоваяСумма = лБазоваяСумма + бс;<br> лНадбавка = коэф*бс;<br> сум=сум+лНадбавка;<br> лТаблицаНадбавок.УстановитьЗначение(лНомер, "Сумма", Число(лТаблицаНадбавок.ПолучитьЗначение(лНомер, "Сумма")) + лНадбавка);<br> //КонецЕсли;<br> КонецЕсли;<br> КонецЕсли;<br> КонецЦикла;<br> КонецЦикла;<br> Если(лНомерСтрокиДерева > 0)Тогда<br> мДеревоНадбавок.УстановитьЗначение(лНомерСтрокиДерева, "БазоваяСумма", лБазоваяСумма);<br> КонецЕсли;<br> Если Коэффициент <> 0 Тогда<br> Сум = Сум * Коэффициент;<br> КонецЕсли;<br> Возврат Окр(Сум,2);<br>КонецФункции"