ЗиК помогите отбиться от бухов

Новая тема
Показывать по 10 20 40 сообщений
понял, отображается число отработанных дней одно, реальное, а при расчёте берётся число отработанных дней на 1 больше. отсюда в результате ошибка.


ПОЧЕМУ?????
и что делать =(
"Странно.  Никогда такого не было. Теперь понятно , почему бухгалтера  засомневались.Они правы , должно быть 16*1,4=22,4
Попробуте отладчиком. В глобальном модуле, есть процедура  "глЗаполнитьДанныеСреднегоЗаработкаОтпуска" и
процедуру "ПолучитьКоличествоДнейОтпускаПосле102006"

Если НадоПересчитать = 1 тогда
ДнейДляОтп = ДнейДляОтп + 1.4 * Пятидневка.Дней(ДатаНачалаОтрезка, ДатаОкончанияОтрезка);
Иначе
ДнейДляОтп = 29.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 и получаеться ерунда...
"> полтергейст какойто, сижу смотрю отладчик оба месяца считает по одинаковому
>
сами понимаете, что программа не может 16*1,4 и получить 23,8, а вот если программа определяет что у сотрудника в марте 17 дней*1,4=23,8
Значит надо искать почему 1С определяет ему 17 дней.
Так что опять в отладчик и на строку в глобальном модуле , где
ДнейДляОтп = ДнейДляОтп + 1.4 * Пятидневка.Дней(ДатаНачалаОтрезка, ДатаОкончанияОтрезка);
Вы видите из алгоритма что умножается всегда на 1.4, так что Ваши выкладки  что коэф 1.49 или 1.48 не проходит, а вот кол-во отработанных дней программа может определять по своему.

Ошибка в определение дней у всех, или только у этого сотрудника?
Удачи.
P.S. А что за отпуск без компенсации?"
ошибка есть ещё у одного сотрудника примерно за тот же период.
также кол-во дней отработанных меньше рабочих,
у него тоже отображается количество дней правильно а количество дней отпуска  считается как
(количество дней правильно + 1 лишний день)*1,4


насколько я понял там количество дней суммируется из отрезков(с 1го по 7 + с 9 по больничный + от больничного до отпуска 1 день + от отпуска до конца месяца. итого сумма 4х периодов), видимо гдето граница отрезка неправильно определяеться

отпуск без компенсации это я такой приказ в журнале отклонений нашёл, по отпуску с 24 по 24 число
так и написано без компенсации. я так понимаю это отгул на 1 день?

ещё обнаружил что у этого сотрудника за август кол-во отработанных дней меньше чем надо
но количество дней отпуска за август! считается правильно!
в августе был просто больничный, без праздников и отпусков на 1 день.


завтра на работе ещё углублюсь в отладчик попробую проследить как суммируются рабочие дни
тяжко у меня понимание алгоритма идёт =/
> насколько я понял там количество дней суммируется из отрезков(с 1го по 7 + с 9 по больничный + от больничного до отпуска 1 день + от отпуска до конца месяца. итого сумма 4х периодов), видимо гдето граница отрезка неправильно определяеться
>
Вы поняли правильно.

> отпуск без компенсации это я такой приказ в журнале отклонений нашёл, по отпуску с 24 по 24 число
> так и написано без компенсации. я так понимаю это отгул на 1 день?
>
В стандартной конфигурации, есть
1.отпуск без сохранения з/платы, в этом случае день не рабочий, и з/платы за этот день нет.
2.Компенсация за отпуск. Сотрудник отпуск не отгулял и ему компесируют за это деньгами.Это день вообще не участвует в расчете отработанных дней.
А вот понятие "отпуск без компенсации" в 1С ЗиК. Может Вы меняли конфигурацию и вводили такое отклонение как отгул. Ведь с точки зрения расчета ОТГУЛ считается рабочим днем.

"сори за неправильную информацию про отпуск
сейчас взял базу точно посмотрел что написано:
отпуск без сохранения зп(краткосрочный)



определил вобщем что присходит, 1ска в упор не видит этот отпуск на 1 день
когда идёт счётчик рабочих дней
ДатаДня = ДатаНачала + (инд - ИндНачала);    
ДатаНачалаОтрезка = ДатаДня;
ЕстьОтрезок = 0;
Пока (День <> 0) и (инд + 1 <= ИндОкончания) Цикл
ЕстьОтрезок = 1;
инд = инд + 1;
День = МассивДней[инд];
ДатаДня = ДатаНачала + (инд - ИндНачала);
КонецЦикла;
Если (День <> 0) и (инд + 1 > ИндОкончания) Тогда
ЕстьОтрезок = 1;
КонецЕсли;
ДатаОкончанияОтрезка = ?(День <> 0, ДатаДня, ДатаДня-1);

1с совершенно без зазрения совести проскакивает 24 число отпуск и накручивает счётчик до конца до 31 числа
потом естесно перемножает суммирует и выдаёт результат

"
дальше я понимаю процесс идёт так:

День = МассивДней[инд]
если индекс лежит в пределах больничных дней то день конечно равен 0
и не учитываицца, счётчик тикает дальше.

а если индекс равен числу на которое пришёлся отпуск 1день то день всё равно равен 1
по этому проскакиваем дальше.


отсюда вопрос
как заставить тот отпуск 1день учитываться в МассивДней[]
Если определяется неправильно отрезки, то давайте смотреть , как раньше заполнился МассивДней.
В этом массиве у нерабочих дней стоит 0, а у рабочих и выходных стоит 1, а инд - это соответсвенно номер дня. Перед началом определения отрезков, отладчиком можно проверить правильно ли установились 0 и 1 должно быть МассивДней[24]=0. Так что, идем в процедуру глЗаполнитьМассивДней и смотрим что и как заполнилось.

Так вы решили вопрос?
А то у меня почти такая же проблема...  Если месяц отработан не полностью - то дней берется, например, не 16, а 17. А самое интересное - бывает когда отработано, например, 7 дней, а он ставит 29.4... и причем часто
Подскажите плз!!!!
Читают тему
(гостей: 2)

Быстрый переход