Текущее время: Сб, июл 26 2025, 11:52

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: расчёт стажа - иногда берет 31 день в месяце
СообщениеДобавлено: Чт, июл 24 2008, 12:13 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
Нашли вот такой глюк в расчёте стажа
Пример
- ручной расчёт:
Code:
  01. 08. 74
  05. 09. 73
= 26. 10. 00 +1 день увольнение
= 27. 10. 00
Согласны?
У САПа же (предписание 0100 Вариант А или 0140 В) 28.10.00. Пробую разбираться, что не так в дебагере HR_SEN_CRULE_0100_DURATION:
Code:
на вход
  01. 08. 74
  05. 09. 73

ld_date1 = id_begda.
ld_date2 = ID_ENDDA + 1.  "это + день за увольнение типо?

  02. 08. 74
  05. 09. 73
дальше вычитает годы
Code:
PERFORM DIFFERENCE_IN_Y USING ld_date1
                               ld_date2
                        CHANGING es_duration-calyy.
дельта лет es_duration-calyy = 0 (учла, что месяц конца меньше месяца начала)
Code:
  perform add_y_to_date using  es_duration-calyy
                              '+'
                                ld_date1
                        changing ld_date1.
к дате начала прибавила дельту, но у нас это 0, так что ничего не меняется
потом та же ерунда с месяцами - считаем дельту
Code:
  perform difference_in_m using ld_date1
                                ld_date2
                         changing es_duration-calmm.
в итоге es_duration-calmm = 10 месяцев
Code:
   perform add_m_to_date using  es_duration-calmm
                              '+'
                               ld_date1
                        changing ld_date1.
расчётные даты теперь привелись к:
Code:
  02. 08. 74
  05. 07. 74
потом считает дельту дней (почему-то отдельную форму для этого не пишут и тупо считают:
Code:
es_duration-caldd = ld_date2 - ld_date1
при этом ld_date2 и ld_date1 формат дата, то есть считает дельту с учётом календаря: если в месяце 31 день, она так и берет. Итого 19740802 - 19740705 = 28 дней, которые потом и идут в стаж

Вот тут непонятно, или я туплю, или САП. Хотя сомнительно, что за много лет никто не обнаружил бы. Нот подходящих не нашла, свою ноту писать или переписать функцию в свою с правильным расчётом...
А как у вас считает?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 25 2008, 14:14 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
Ну хоть кто-нибудь попробуйте рассчитать по моим датам. Это так задумано или ошибка?
Что говорят ваши кадровики? Мои так за этот один день готовы удавиться/удавить.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 25 2008, 14:34 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, май 30 2006, 08:34
Сообщения: 1900
Мы тоже что-то исправляли, связанное с 31 днем. Но не помню где и не помню как.

_________________
С уважением.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 28 2008, 11:14 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Пт, сен 07 2007, 07:53
Сообщения: 1398
Galka написала:
Ну хоть кто-нибудь попробуйте рассчитать по моим датам. Это так задумано или ошибка?
Что говорят ваши кадровики? Мои так за этот один день готовы удавиться/удавить.


А что посчитать-то? Какой будет стаж между датами 05.09.73 по 01.08.74? Если под этими датами понимается рабочий период, то есть, дата 01.08.74 - это был последний рабочий день, то стаж будет 10 месяцес и 28 дней. САП посчитал правильно.

Расчет такой. Когда закончилось 04 июля 74 года сотрудник отработал ровно 10 месяцев. Далее
05.07.74 - 10 месяцев и 1 день
06.07.74 - 10 месяцев и 2 дня
...
31.07.74 - 10 месяцев и 27 дней
01.08.74 - 10 месяцев и 28 дней


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 28 2008, 11:45 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
если бы стаж считался в календарных днях, то ваш расчёт верный, однако же стаж считается в усреднённых месяцах по 30 дней, поэтому никаких
Цитата:
31.07.74 - 10 месяцев и 27 дней
не может быть. Это как раз и написано в документации к функциям расчёта стажа. Попросите ваших кадровиков рассчитать - они вам посчитают 10 месяцев 26 дней + день увольнения


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 28 2008, 11:58 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
Galka написала:
Ну хоть кто-нибудь попробуйте рассчитать по моим датам. Это так задумано или ошибка?
Что говорят ваши кадровики? Мои так за этот один день готовы удавиться/удавить.


Думаю, что последняя строка не правильная и не учитвает специфику 30 дней в месяце.
Попробуйте поставить сообщение на компоненту PA-PA-XX-TL-SEN.
Но думаю, что не поможет и придется писать свой ФМ


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 28 2008, 14:36 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Пт, сен 07 2007, 07:53
Сообщения: 1398
Цитата:
Это как раз и написано в документации к функциям расчёта стажа.

Ну так почему же у Вас не считается так, как написано? :)

Цитата:
Попросите ваших кадровиков рассчитать


Я разговаривал с кадровиками по этому поводу. Они мне сказали, что по большому счету ни где детально не описан этот вопрос. Но я это не проверял.
А на счет посчитать - возьмут календарик и посчитают прямо по дням, получится 28 :)

У нас правило "усреднённых месяцах по 30 дней" применятся только при сложении несмежных период.

Если вам не подходит вариант САПа, там очень легко написать свой ФМ.

Встречный вопрос. У сотрудника точка отсчета стажа 05 февраля. Ровно через 6 месяцев у него должны появиться какая-нибудь надбавка за что-нибудь. Вопрос - с какого числа должны появиться надбавка?
Вроде бы с 05 августа. Но по логике "усреднённых месяцах по 30 дней" стаж в 6 месяцев настанет уже 04 августа.
04.08.08
-05.02.08
=29.05.00 +1 день
=00.06.00


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 28 2008, 15:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, май 30 2006, 08:34
Сообщения: 1900
Цитата:
У нас правило "усреднённых месяцах по 30 дней" применятся только при сложении несмежных период.


Поддерживаю.

_________________
С уважением.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 28 2008, 17:11 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
calm написал(а):
Цитата:
У нас правило "усреднённых месяцах по 30 дней" применятся только при сложении несмежных период.


Поддерживаю.

интересно получается :)

Чел работал
01.01.2007 - 30.01.2007 1м
01.02.2007 - 28.02.2007 1м
02.03.2007 - 31.03.2007 1м
02.04.2007 - 31.05.2007 2м
02.06.2007 - 31.07.2007 2м
02.08.2007 - 31.08.2007 1м
02.09.2007 - 31.10.2007 2м
02.11.2007 - 31.12.2007 2м
Итого 12 месяцев
Но чел не работал 7 дней 31.01, 01.03, 01.04, 01.06, 01.08, 01.09, 01.11


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 28 2008, 17:15 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
360 - 30 стандартный банковский календарь, по-крайней мере был
и ни один банк в примере, который привела Galkf не подсчитает на 1 день больше.
Другое дело, что САП все равно вряд ли будет это дело править и придется писать свой ФМ :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 28 2008, 19:26 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Пт, сен 07 2007, 07:53
Сообщения: 1398
Murzik написал(а):
360 - 30 стандартный банковский календарь, по-крайней мере был
и ни один банк в примере, который привела Galkf не подсчитает на 1 день больше.


При чем тут банки я не понял. Если Вы внимательно посмотрите в описание услуи, которые предоставлют банки, то там обычно все достаточно ясно описано. Причем так, что не допускает двоякого толкования. Например, срок депозитов обычно указываются в днях, то есть не 3 месяца, а 91 день, не год, а 367 день.
Когда дело касается кредитов, то там упоминается количество дней в году, причем обычно это выглядит так "365(366)".
Откуда взялся "стандартный банковский календарь" и где он применятся я не знаю.

Пример, который Вы привели выше, касается немного другой стороны этого вопроса. В САПе расчет стажа разбит на 2 этапа:
1. Выделение периодов и оценка их длительности. Здесь мы оцениваем длительность периода так как хотим - в дня, в г.м.д, с учетом календарной длительности месяцов или на основе месяца в 30 дней. Как угодно. Изначано вопрос относился именно к этому этапу
2. Расчет итогового стажа на основе длительности периодов. На этом этапе из цепочек длительностей необходимо вычислить итоговой стаж. Причем технически это сделано так, что на вход подаются только длительности, ни каких дат тут уже нет. Итоговой стаж тоже можно как угодно. Вот только на основе календарных дней считать уже не получиться - дат нет и про какой месяц идет речь уже не узнать. Поэтому на этом этапе считается что в месяце 30 дней (по-моему там в исходнике где-то просто константа зашита).

Работу второго этапа и демонстируется Ваш пример. Только про это речи не было. Кстати, при оценки периодов на основе календарных дней результат работы будет немного другой, хотя итог такой же.

1. Оценка периодов
01.01.2007 - 30.01.2007 0м 30 д
01.02.2007 - 28.02.2007 1м 0 д
02.03.2007 - 31.03.2007 0м 30 д
02.04.2007 - 31.05.2007 1м 30 д
02.06.2007 - 31.07.2007 1м 30 д
02.08.2007 - 31.08.2007 0м 30 д
02.09.2007 - 31.10.2007 1м 30 д
02.11.2007 - 31.12.2007 1м 30 д

2. Расчет длительности
все складывается и получается 5 м и 210 дней. затем идет процедура выравнивания - дни делятся на 30, целая часть идет в месяцы, остаток от деления в дни. Получаем 12 м и 0 дней. Аналогично с месяцами.
Итог 1г 0м 0д.

Но что из этого следует?

У нас пользователи гораздо болезненей реагируют на сдвиг даты начала отсчета стажа - если начало стажа 05 число месяца, то следующий год тоже должен начаться 05-го числа того же месяца


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 29 2008, 08:43 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, май 30 2006, 08:34
Сообщения: 1900
Цитата:
интересно получается Smile

Нормально получается. Пользователи довольны.

Искал документы на эту тему и ничего толком не нашел.
Помню, что когда видел, документ не помню какой, и там был ясно прописано про 30 дней, но то документ имел отношение к какому-то сильно специфическому стажу, который меня не интересовал

_________________
С уважением.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 29 2008, 09:30 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
RoustR написал(а):
Murzik написал(а):
360 - 30 стандартный банковский календарь, по-крайней мере был
и ни один банк в примере, который привела Galkf не подсчитает на 1 день больше.

При чем тут банки я не понял.


Банки здесь в общем-то не причем.
Просто много лет назад с банковских договорах по кредитованию и депозитам преобладал календарь 360-30, где 31 числа нет. Потом видно это стало не очень понятным для народа и стали переходить на обычный календарь при расчете процентов.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 29 2008, 09:37 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, сен 13 2007, 09:44
Сообщения: 256
calm написал(а):
Цитата:
интересно получается Smile

Нормально получается. Пользователи довольны.

Искал документы на эту тему и ничего толком не нашел.


Это хорошо, когда юзеры довольны :)
Но в целом (это мое мнение, в том числе основанное на опыте работы в банке) расчет в САПе неправильный.
Откройте, наример excel. Там есть стандартная функция расчета дней между двумя датами по календарю 360-30 (DAYS360).
Считаем
05.09.1973 02.08.1974 327 дней
Она не включает в расчет последнюю дату - стаж с 05.09.1973 по 01.08.1974 = 10 месяцев и 27 дней.
Ну нет по календарю 360-30 31 числа.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 30 2008, 12:17 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
RoustR написал(а):
Я разговаривал с кадровиками по этому поводу. Они мне сказали, что по большому счету ни где детально не описан этот вопрос. Но я это не проверял.

У меня конечно не Россия, но у нас всё, по идее, слизано у вас:
Цитата:
ПОСТАНОВЛЕНИЕ СОВЕТА МИНИСТРОВ РЕСПУБЛИКИ БЕЛАРУСЬ 24 декабря 1992 г. N 777 ОБ УТВЕРЖДЕНИИ ПОЛОЖЕНИЯ О ПОРЯДКЕ ПОДТВЕРЖДЕНИЯ ТРУДОВОГО СТАЖА ДЛЯ НАЗНАЧЕНИЯ ПЕНСИЙ
...
40. Исчисление периодов работы, в том числе на основании свидетельских показаний, периодов иной деятельности и других периодов, засчитываемых в стаж работы, за исключением периодов, предусмотренных пунктами 41 - 45 настоящего Положения, производится в календарном порядке из расчета полного года (12 месяцев). Каждые 30 дней указанных периодов переводятся в месяцы, а каждые 12 месяцев этих периодов переводятся в полные годы.

читаем САП, так сказать "RTFM". Функция HR_SEN_CRULE_0100_DURATION
Цитата:
This function module is used for a conversion rule for employment period calculation.

The units years, months, and days are used for the calculation. The required conversions take place based on the assumption that 1 year = 12 months and 1 month = 30 days.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB