Предлагаю поделиться опытом по вопросу полномочий при переводе сотрудника.

Мой выход. Есть один табельный номер, который был переведен между двумя БЕ/РП. Назовем условно БЕ1, БЕ2, и, соответственно, кадровик 1, кадровик 2. Есть данные по деньгам — ИТ0008, который мы хотим показывать только тому кадровику и в том объеме, на которую БЕ у него есть полномочия.

Стандартная система работает так. Кадровик 1 увидит только свою информацию. Кадровик 2 увидит свою и Кадровика 1. Все дело в одной проверке в стандартном классе проверки полномочий CL_HRPAD00AUTH_CHECK_STD->CONSIDER_SY_DATUM. Здесь в коде прописана такая логика, что полномочия предоставляются на дату СЕГОДНЯ МИНУС КОЛВО ДНЕЙ ИЗ T77S0 (AUTSW ADAYS) по дату оргприсвоения. Соответственно, первый кадровик увидит только свое, второй все.

Вопрос в этом кусочке кода:

IF READ_LEVELS CS LEVEL.
* Read access.
DESCRIBE TABLE AUTHORIZATION_PERIODS_TAB.
* The table is assumed to be normalized hence the last entry
* will have the highest ENDDA.
READ TABLE AUTHORIZATION_PERIODS_TAB INTO PERIOD INDEX SY-TFILL.
CLEAR AUTHORIZATION_PERIODS_TAB.

PERIOD-BEGDA = LOW_DATE.

* If SY_DATUM is not after the highest ENDDA + ADAYS, then grant
* authorization until HIGH_DATE.
IF SY_DATUM_MINUS_ADAYS <= PERIOD-ENDDA. PERIOD-ENDDA = HIGH_DATE. ENDIF. " SY_DATUM_MINUS_ADAYS <= PERIOD-ENDDA. APPEND PERIOD TO AUTHORIZATION_PERIODS_TAB. ELSE. " READ_LEVELS CS LEVEL. Единственный способ полностью отключить возможность просмотра конфиденциальной информации, это переопределить весь класс и исключить вызов этого метода для определения периодов доступа к данным. Вторая заметка. В ракурсе настройки инфотипов V_T582A-VALDT есть поле "Полномоч/Доступ" (VALDT), которое определяет как будет работать вышеуказанный метод. Если для инфотипа галочка снята, то система не анализирует текущую дату и предоставляет полномочия на все периоды! Если галочка стоит, то в работу включается параметр КОЛВО ДНЕЙ ИЗ T77S0 (AUTSW ADAYS) для определения, сколько дней кадровик 2 может видеть данные кадровика 1. Но это не касается самого последнего перевода.