Имя: Пароль:
1C
1С v8
Не считается надбавка от стажа
0 Uragan_a
 
01.11.13
01:33
Есть вид расчета:
Надбавка за выслугу лет
Способ расчета:
От стажа процентом
Рассчитывается как: Результат = Стаж оценить по Шкала процентов оплаты * Расчетная база
Вид стажа:
Стаж на надбавку за выслугу лет - 27 лет с копейками
Шкала стажа:
Выслуга лет
0 - 12 - 3%
12 - 13 - 4,5%
36 - 60 - 6,4%

и так далее
1 Uragan_a
 
01.11.13
01:33
чего не так
2 Uragan_a
 
01.11.13
01:36
Не могу понять и отладить как она считает процент, а процент у меня 0%
3 Uragan_a
 
01.11.13
01:36
получается хотя должно быть больше
4 Uragan_a
 
01.11.13
03:55
Проблема где - то в этом запросе, но мои мозги не могут его переварить:

ВЫБРАТЬ
            СотрудникиОрганизаций.Ссылка КАК Сотрудник,
            СотрудникиОрганизаций.Наименование КАК СотрудникНаименование,
            СотрудникиОрганизаций.Физлицо,
            ОсновныеНачисленияОрганизаций.ВидСтажа,
            ОсновныеНачисленияОрганизаций.КоэффициентСтажа
        ПОМЕСТИТЬ ВТРаботникиИНачисленияПоСхемамМотивации
        ИЗ
            ПланВидовРасчета.ОсновныеНачисленияОрганизаций КАК ОсновныеНачисленияОрганизаций,
            Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
        ГДЕ
            СотрудникиОрганизаций.Ссылка = &Сотрудник
            И ОсновныеНачисленияОрганизаций.Ссылка = &ВидРасчета
        ;
        
        ////////////////////////////////////////////////////////////////////////////////
        ВЫБРАТЬ
            ШкалаКоэффициентовСтажа.Величина КАК КоэффициентСтажа,
            ШкалаСледКоэффициентовСтажа.Величина КАК СледКоэффициентСтажа,
            ВЫБОР
                КОГДА НЕ ШкалаСледКоэффициентовСтажа.Величина ЕСТЬ NULL
                    ТОГДА ВЫБОР
                            КОГДА ДЕНЬ(Стажи.ДатаОтсчета) > Стажи.РазмерДней
                                ТОГДА ДЕНЬ(Стажи.ДатаОтсчета) - Стажи.РазмерДней
                            ИНАЧЕ ДЕНЬ(ДОБАВИТЬКДАТЕ(&ДатаПодсчета, ДЕНЬ, -1)) - (Стажи.РазмерДней - ДЕНЬ(Стажи.ДатаОтсчета))
                        КОНЕЦ
            КОНЕЦ КАК ДеньСменыКоэффициентаСтажа
        ИЗ
            ВТРаботникиИНачисленияПоСхемамМотивации КАК СписокНачислений
                ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.Стажи КАК Стажи
                ПО СписокНачислений.Физлицо = Стажи.Ссылка
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШкалаКоэффициентовСтажа КАК ШкалаКоэффициентовСтажа
                ПО (ВЫБОР
                        КОГДА Стажи.РазмерМесяцев + РАЗНОСТЬДАТ(Стажи.ДатаОтсчета, ДОБАВИТЬКДАТЕ(&ДатаПодсчета, ДЕНЬ, Стажи.РазмерДней), МЕСЯЦ) - ВЫБОР
                                КОГДА ДЕНЬ(Стажи.ДатаОтсчета) > ДЕНЬ(ДОБАВИТЬКДАТЕ(&ДатаПодсчета, ДЕНЬ, Стажи.РазмерДней))
                                    ТОГДА 1
                                ИНАЧЕ 0
                            КОНЕЦ >= 0
                            ТОГДА Стажи.РазмерМесяцев + РАЗНОСТЬДАТ(Стажи.ДатаОтсчета, ДОБАВИТЬКДАТЕ(&ДатаПодсчета, ДЕНЬ, Стажи.РазмерДней), МЕСЯЦ) - ВЫБОР
                                    КОГДА ДЕНЬ(Стажи.ДатаОтсчета) > ДЕНЬ(ДОБАВИТЬКДАТЕ(&ДатаПодсчета, ДЕНЬ, Стажи.РазмерДней))
                                        ТОГДА 1
                                    ИНАЧЕ 0
                                КОНЕЦ
                        ИНАЧЕ 0
                    КОНЕЦ >= ШкалаКоэффициентовСтажа.СтажС)
                    И (Стажи.РазмерМесяцев + РАЗНОСТЬДАТ(Стажи.ДатаОтсчета, ДОБАВИТЬКДАТЕ(&ДатаПодсчета, ДЕНЬ, Стажи.РазмерДней), МЕСЯЦ) - ВЫБОР
                        КОГДА ДЕНЬ(Стажи.ДатаОтсчета) > ДЕНЬ(ДОБАВИТЬКДАТЕ(&ДатаПодсчета, ДЕНЬ, Стажи.РазмерДней))
                            ТОГДА 1
                        ИНАЧЕ 0
                    КОНЕЦ < ВЫБОР
                        КОГДА ШкалаКоэффициентовСтажа.СтажПо = 0
                            ТОГДА 999999
                        ИНАЧЕ ШкалаКоэффициентовСтажа.СтажПо
                    КОНЕЦ)
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШкалаКоэффициентовСтажа КАК ШкалаСледКоэффициентовСтажа
                ПО (Стажи.РазмерМесяцев + РАЗНОСТЬДАТ(Стажи.ДатаОтсчета, ДОБАВИТЬКДАТЕ(&ДатаПодсчета, ДЕНЬ, Стажи.РазмерДней), МЕСЯЦ) - ВЫБОР
                        КОГДА ДЕНЬ(Стажи.ДатаОтсчета) >= ДЕНЬ(ДОБАВИТЬКДАТЕ(&ДатаПодсчета, ДЕНЬ, Стажи.РазмерДней))
                            ТОГДА 1
                        ИНАЧЕ 0
                    КОНЕЦ = ШкалаКоэффициентовСтажа.СтажПо - 1)
                    И (ШкалаСледКоэффициентовСтажа.НомерСтрокиШкалы = ШкалаКоэффициентовСтажа.НомерСтрокиШкалы + 1)
5 Uragan_a
 
01.11.13
05:18
убрал стаж, оставил даты отсчета и поправил шкулу стажа, была ошибка

0 0 0%
0 12 5%

возвращалось две строки в запросе и первая была 0, потому и не работало.