0
- 22.02.2012 - 20:40
|
Добрый день. В пустой конфе создал план видоврасчета, регистр расчета, включил период дейсвтия. создал вид расчета Оклад и Невыход. Оклад сдела вытясняемым от НЕвыход. Создал документ с таким модулем проведения: + Code Для Каждого ТекСтрокаНачисления Из Начисления Цикл Движение = Движения.Начисления.Добавить(); Движение.Сторно = Ложь; Движение.ВидРасчета = ТекСтрокаНачисления.ВидРасчета; Движение.ПериодРегистрации = Период; Движение.Сотрудник = ТекСтрокаНачисления.Сотрудник; Движение.Параметр = ТекСтрокаНачисления.Параметр; Движение.БазовыйПериодНачало = ТекСтрокаНачисления.БазовыйПериодНачало; Движение.БазовыйПериодКонец = ТекСтрокаНачисления.БазовыйПериодКонец; Движение.ПериодДействияНачало= ТекСтрокаНачисления.ПериодДействияНачало; Движение.ПериодДействияКонец= ТекСтрокаНачисления.ПериодДействияКонец; КонецЦикла; Движения.Начисления.Записать(); Расчет.РассчитатьНачисления(Ссылка); КонецПроцедуры Процедура РассчитатьНачисления(Ссылка) экспорт НаборЗаписей=РегистрыРасчета.Начисления.СоздатьНаб орЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(Ссылка); НаборЗаписей.Прочитать(); для каждого стр из НаборЗаписей цикл если стр.ВидРасчета=ПланыВидовРасчета.Начисления.Оклад тогда ТЗЧасовНорма=стр.ПолучитьДанныеГрафика(ВидПериодаР егистраРасчета.ПериодДействия); ТЗЧасовФакт=стр.ПолучитьДанныеГрафика(ВидПериодаРе гистраРасчета.ФактическийПериодДействия); Норма=0; Если ТЗЧасовНорма.Количество()>0 тогда Норма=ТЗЧасовНорма[0].Часов; Конецесли; Факт=0; Если ТЗЧасовФакт.Количество()>0 тогда Факт=ТЗЧасовФакт[0].Часов; Конецесли; если Норма<>0 тогда стр.Результат=стр.Параметр*Факт/Норма; иначе сообщить("Не заполнен производсвенный календарь",СтатусСообщения.ОченьВажное); конецесли; иначеесли стр.ВидРасчета=ПланыВидовРасчета.Начисления.Премия Процентом тогда Ресурсы=Новый Массив; Ресурсы.Добавить("Начисления.Результат"); Отбор=Новый Структура; Отбор.Вставить("Сотрудник","Начисления.Сотрудник") ; ТЗБазы=стр.ПолучитьБазу(Ресурсы, Отбор); База=0; Если ТЗБазы.Количество()>0 тогда База=ТЗБазы[0].Результат; Конецесли; стр.Результат=База*стр.Параметр/100; иначе //тут будут другие алгоритмы конецесли; конеццикла; НаборЗаписей.Записать(); конецпроцедуры И почему то не работает вытеснение. Тоесть, заведение расчета "Невыхд" не уменьшает фактическое количества часов. Подскажите плз, как лечить. | |
| Интернет-форум Краснодарского края и Краснодара |