К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Не работает вытеснение, хэлп плз

Гость
0 - 22.02.2012 - 20:40
Добрый день.
В пустой конфе создал план видоврасчета, регистр расчета, включил период дейсвтия.
создал вид расчета Оклад и Невыход.
Оклад сдела вытясняемым от НЕвыход.
Создал документ с таким модулем проведения:


+ Code
Для Каждого ТекСтрокаНачисления Из Начисления Цикл
Движение = Движения.Начисления.Добавить();
Движение.Сторно = Ложь;
Движение.ВидРасчета = ТекСтрокаНачисления.ВидРасчета;
Движение.ПериодРегистрации = Период;
Движение.Сотрудник = ТекСтрокаНачисления.Сотрудник;
Движение.Параметр = ТекСтрокаНачисления.Параметр;
Движение.БазовыйПериодНачало = ТекСтрокаНачисления.БазовыйПериодНачало;
Движение.БазовыйПериодКонец = ТекСтрокаНачисления.БазовыйПериодКонец;
Движение.ПериодДействияНачало= ТекСтрокаНачисления.ПериодДействияНачало;
Движение.ПериодДействияКонец= ТекСтрокаНачисления.ПериодДействияКонец;
КонецЦикла;
Движения.Начисления.Записать();
Расчет.РассчитатьНачисления(Ссылка);
КонецПроцедуры

Процедура РассчитатьНачисления(Ссылка) экспорт
НаборЗаписей=РегистрыРасчета.Начисления.СоздатьНаб орЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
НаборЗаписей.Прочитать();

для каждого стр из НаборЗаписей цикл
если стр.ВидРасчета=ПланыВидовРасчета.Начисления.Оклад тогда

ТЗЧасовНорма=стр.ПолучитьДанныеГрафика(ВидПериодаР егистраРасчета.ПериодДействия);
ТЗЧасовФакт=стр.ПолучитьДанныеГрафика(ВидПериодаРе гистраРасчета.ФактическийПериодДействия);

Норма=0;
Если ТЗЧасовНорма.Количество()>0 тогда
Норма=ТЗЧасовНорма[0].Часов;
Конецесли;

Факт=0;
Если ТЗЧасовФакт.Количество()>0 тогда
Факт=ТЗЧасовФакт[0].Часов;
Конецесли;

если Норма<>0 тогда
стр.Результат=стр.Параметр*Факт/Норма;
иначе
сообщить("Не заполнен производсвенный календарь",СтатусСообщения.ОченьВажное);
конецесли;

иначеесли стр.ВидРасчета=ПланыВидовРасчета.Начисления.Премия Процентом тогда
Ресурсы=Новый Массив;
Ресурсы.Добавить("Начисления.Результат");

Отбор=Новый Структура;
Отбор.Вставить("Сотрудник","Начисления.Сотрудник") ;

ТЗБазы=стр.ПолучитьБазу(Ресурсы, Отбор);
База=0;
Если ТЗБазы.Количество()>0 тогда
База=ТЗБазы[0].Результат;
Конецесли;

стр.Результат=База*стр.Параметр/100;

иначе
//тут будут другие алгоритмы

конецесли;
конеццикла;

НаборЗаписей.Записать();
конецпроцедуры


И почему то не работает вытеснение. Тоесть, заведение расчета "Невыхд" не уменьшает фактическое количества часов.
Подскажите плз, как лечить.





К списку вопросов






Copyright ©, Все права защищены