ЗиК помогите отбиться от бухов
27.02.2007
16:55
#11
понял, отображается число отработанных дней одно, реальное, а при расчёте берётся число отработанных дней на 1 больше. отсюда в результате ошибка.
ПОЧЕМУ?????
и что делать =(
ПОЧЕМУ?????
и что делать =(
27.02.2007
17:50
#12
"Странно. Никогда такого не было. Теперь понятно , почему бухгалтера засомневались.Они правы , должно быть 16*1,4=22,4
Попробуте отладчиком. В глобальном модуле, есть процедура "глЗаполнитьДанныеСреднегоЗаработкаОтпуска" и
процедуру "ПолучитьКоличествоДнейОтпускаПосле102006"
Если НадоПересчитать = 1 тогда
ДнейДляОтп = ДнейДляОтп + 1.4 * Пятидневка.Дней(ДатаНачалаОтрезка, ДатаОкончанияОтрезка);
Иначе
ДнейДляОтп = 29.4;
КонецЕсли;
Удачи. "
Попробуте отладчиком. В глобальном модуле, есть процедура "глЗаполнитьДанныеСреднегоЗаработкаОтпуска" и
процедуру "ПолучитьКоличествоДнейОтпускаПосле102006"
Если НадоПересчитать = 1 тогда
ДнейДляОтп = ДнейДляОтп + 1.4 * Пятидневка.Дней(ДатаНачалаОтрезка, ДатаОкончанияОтрезка);
Иначе
ДнейДляОтп = 29.4;
КонецЕсли;
Удачи. "
28.02.2007
15:23
#13
непонимаю
за август месяц считает правильно
август не полностью отработан 13 дней, 13*1,4=18,2
за март месяц считает неправильно
март не полностью отработан 16 дней, 16*1,4=23,8 а не 22,4
полтергейст какойто, сижу смотрю отладчик оба месяца считает по одинаковому
у человека был больничный 13-17 числа
и отпуск без компенсации 24-24 число
в марте было 22 рабочих дня (8 число выходной)
22-6=16 дней
в таблице отображается 16 отработанных дней
умножается на 1.4 и получаеться ерунда...
за август месяц считает правильно
август не полностью отработан 13 дней, 13*1,4=18,2
за март месяц считает неправильно
март не полностью отработан 16 дней, 16*1,4=23,8 а не 22,4
полтергейст какойто, сижу смотрю отладчик оба месяца считает по одинаковому
у человека был больничный 13-17 числа
и отпуск без компенсации 24-24 число
в марте было 22 рабочих дня (8 число выходной)
22-6=16 дней
в таблице отображается 16 отработанных дней
умножается на 1.4 и получаеться ерунда...
28.02.2007
19:15
#14
"> полтергейст какойто, сижу смотрю отладчик оба месяца считает по одинаковому
>
сами понимаете, что программа не может 16*1,4 и получить 23,8, а вот если программа определяет что у сотрудника в марте 17 дней*1,4=23,8
Значит надо искать почему 1С определяет ему 17 дней.
Так что опять в отладчик и на строку в глобальном модуле , где
ДнейДляОтп = ДнейДляОтп + 1.4 * Пятидневка.Дней(ДатаНачалаОтрезка, ДатаОкончанияОтрезка);
Вы видите из алгоритма что умножается всегда на 1.4, так что Ваши выкладки что коэф 1.49 или 1.48 не проходит, а вот кол-во отработанных дней программа может определять по своему.
Ошибка в определение дней у всех, или только у этого сотрудника?
Удачи.
P.S. А что за отпуск без компенсации?"
>
сами понимаете, что программа не может 16*1,4 и получить 23,8, а вот если программа определяет что у сотрудника в марте 17 дней*1,4=23,8
Значит надо искать почему 1С определяет ему 17 дней.
Так что опять в отладчик и на строку в глобальном модуле , где
ДнейДляОтп = ДнейДляОтп + 1.4 * Пятидневка.Дней(ДатаНачалаОтрезка, ДатаОкончанияОтрезка);
Вы видите из алгоритма что умножается всегда на 1.4, так что Ваши выкладки что коэф 1.49 или 1.48 не проходит, а вот кол-во отработанных дней программа может определять по своему.
Ошибка в определение дней у всех, или только у этого сотрудника?
Удачи.
P.S. А что за отпуск без компенсации?"
28.02.2007
21:13
#15
ошибка есть ещё у одного сотрудника примерно за тот же период.
также кол-во дней отработанных меньше рабочих,
у него тоже отображается количество дней правильно а количество дней отпуска считается как
(количество дней правильно + 1 лишний день)*1,4
насколько я понял там количество дней суммируется из отрезков(с 1го по 7 + с 9 по больничный + от больничного до отпуска 1 день + от отпуска до конца месяца. итого сумма 4х периодов), видимо гдето граница отрезка неправильно определяеться
отпуск без компенсации это я такой приказ в журнале отклонений нашёл, по отпуску с 24 по 24 число
так и написано без компенсации. я так понимаю это отгул на 1 день?
ещё обнаружил что у этого сотрудника за август кол-во отработанных дней меньше чем надо
но количество дней отпуска за август! считается правильно!
в августе был просто больничный, без праздников и отпусков на 1 день.
завтра на работе ещё углублюсь в отладчик попробую проследить как суммируются рабочие дни
тяжко у меня понимание алгоритма идёт =/
также кол-во дней отработанных меньше рабочих,
у него тоже отображается количество дней правильно а количество дней отпуска считается как
(количество дней правильно + 1 лишний день)*1,4
насколько я понял там количество дней суммируется из отрезков(с 1го по 7 + с 9 по больничный + от больничного до отпуска 1 день + от отпуска до конца месяца. итого сумма 4х периодов), видимо гдето граница отрезка неправильно определяеться
отпуск без компенсации это я такой приказ в журнале отклонений нашёл, по отпуску с 24 по 24 число
так и написано без компенсации. я так понимаю это отгул на 1 день?
ещё обнаружил что у этого сотрудника за август кол-во отработанных дней меньше чем надо
но количество дней отпуска за август! считается правильно!
в августе был просто больничный, без праздников и отпусков на 1 день.
завтра на работе ещё углублюсь в отладчик попробую проследить как суммируются рабочие дни
тяжко у меня понимание алгоритма идёт =/
01.03.2007
10:51
#16
> насколько я понял там количество дней суммируется из отрезков(с 1го по 7 + с 9 по больничный + от больничного до отпуска 1 день + от отпуска до конца месяца. итого сумма 4х периодов), видимо гдето граница отрезка неправильно определяеться
>
Вы поняли правильно.
> отпуск без компенсации это я такой приказ в журнале отклонений нашёл, по отпуску с 24 по 24 число
> так и написано без компенсации. я так понимаю это отгул на 1 день?
>
В стандартной конфигурации, есть
1.отпуск без сохранения з/платы, в этом случае день не рабочий, и з/платы за этот день нет.
2.Компенсация за отпуск. Сотрудник отпуск не отгулял и ему компесируют за это деньгами.Это день вообще не участвует в расчете отработанных дней.
А вот понятие "отпуск без компенсации" в 1С ЗиК. Может Вы меняли конфигурацию и вводили такое отклонение как отгул. Ведь с точки зрения расчета ОТГУЛ считается рабочим днем.
>
Вы поняли правильно.
> отпуск без компенсации это я такой приказ в журнале отклонений нашёл, по отпуску с 24 по 24 число
> так и написано без компенсации. я так понимаю это отгул на 1 день?
>
В стандартной конфигурации, есть
1.отпуск без сохранения з/платы, в этом случае день не рабочий, и з/платы за этот день нет.
2.Компенсация за отпуск. Сотрудник отпуск не отгулял и ему компесируют за это деньгами.Это день вообще не участвует в расчете отработанных дней.
А вот понятие "отпуск без компенсации" в 1С ЗиК. Может Вы меняли конфигурацию и вводили такое отклонение как отгул. Ведь с точки зрения расчета ОТГУЛ считается рабочим днем.
01.03.2007
11:55
#17
"сори за неправильную информацию про отпуск
сейчас взял базу точно посмотрел что написано:
отпуск без сохранения зп(краткосрочный)
определил вобщем что присходит, 1ска в упор не видит этот отпуск на 1 день
когда идёт счётчик рабочих дней
ДатаДня = ДатаНачала + (инд - ИндНачала);
ДатаНачалаОтрезка = ДатаДня;
ЕстьОтрезок = 0;
Пока (День <> 0) и (инд + 1 <= ИндОкончания) Цикл
ЕстьОтрезок = 1;
инд = инд + 1;
День = МассивДней[инд];
ДатаДня = ДатаНачала + (инд - ИндНачала);
КонецЦикла;
Если (День <> 0) и (инд + 1 > ИндОкончания) Тогда
ЕстьОтрезок = 1;
КонецЕсли;
ДатаОкончанияОтрезка = ?(День <> 0, ДатаДня, ДатаДня-1);
1с совершенно без зазрения совести проскакивает 24 число отпуск и накручивает счётчик до конца до 31 числа
потом естесно перемножает суммирует и выдаёт результат
"
сейчас взял базу точно посмотрел что написано:
отпуск без сохранения зп(краткосрочный)
определил вобщем что присходит, 1ска в упор не видит этот отпуск на 1 день
когда идёт счётчик рабочих дней
ДатаДня = ДатаНачала + (инд - ИндНачала);
ДатаНачалаОтрезка = ДатаДня;
ЕстьОтрезок = 0;
Пока (День <> 0) и (инд + 1 <= ИндОкончания) Цикл
ЕстьОтрезок = 1;
инд = инд + 1;
День = МассивДней[инд];
ДатаДня = ДатаНачала + (инд - ИндНачала);
КонецЦикла;
Если (День <> 0) и (инд + 1 > ИндОкончания) Тогда
ЕстьОтрезок = 1;
КонецЕсли;
ДатаОкончанияОтрезка = ?(День <> 0, ДатаДня, ДатаДня-1);
1с совершенно без зазрения совести проскакивает 24 число отпуск и накручивает счётчик до конца до 31 числа
потом естесно перемножает суммирует и выдаёт результат
"
01.03.2007
12:08
#18
дальше я понимаю процесс идёт так:
День = МассивДней[инд]
если индекс лежит в пределах больничных дней то день конечно равен 0
и не учитываицца, счётчик тикает дальше.
а если индекс равен числу на которое пришёлся отпуск 1день то день всё равно равен 1
по этому проскакиваем дальше.
отсюда вопрос
как заставить тот отпуск 1день учитываться в МассивДней[]
День = МассивДней[инд]
если индекс лежит в пределах больничных дней то день конечно равен 0
и не учитываицца, счётчик тикает дальше.
а если индекс равен числу на которое пришёлся отпуск 1день то день всё равно равен 1
по этому проскакиваем дальше.
отсюда вопрос
как заставить тот отпуск 1день учитываться в МассивДней[]
01.03.2007
13:04
#19
Если определяется неправильно отрезки, то давайте смотреть , как раньше заполнился МассивДней.
В этом массиве у нерабочих дней стоит 0, а у рабочих и выходных стоит 1, а инд - это соответсвенно номер дня. Перед началом определения отрезков, отладчиком можно проверить правильно ли установились 0 и 1 должно быть МассивДней[24]=0. Так что, идем в процедуру глЗаполнитьМассивДней и смотрим что и как заполнилось.
В этом массиве у нерабочих дней стоит 0, а у рабочих и выходных стоит 1, а инд - это соответсвенно номер дня. Перед началом определения отрезков, отладчиком можно проверить правильно ли установились 0 и 1 должно быть МассивДней[24]=0. Так что, идем в процедуру глЗаполнитьМассивДней и смотрим что и как заполнилось.
Читают тему
(гостей: 2)