Karmen написал(а):
С помощью объекта полномочий и роли можно ограничить доступ к данным, разработанным Z-полям... Но вопрос немного в другом. Пользователь получает полномочия на изменения значений разработанных Z-полей в карточке ОС, когда ему дается некая роль, где есть транзакция AS02 (изменение ОС). Если пользователь имеет полномочия на AS02, то он автоматически имеет доступ ко всем остальным (стандартным) полям в карточке ОС. Задача состоит в том, чтобы пользователь при запуске операции изменения ОС, увидел открытыми только Z-поля, а остальные стандартные поля оставались серыми - не редактируемыми....

Существует ли какой-нибудь механизм, реализующий данную задачу? Или же придется разработать некий свой интерфейс на ABAP для решения этой задачи?
А вот тут вы ошибаетесь. Мы например, с помощью абапа так сделали несколько проверок на стандартных полях. Все как
Кросафчег!!! описал. В вашем случае можно сделать объект полномочий и добавить его в стандартную роль для отдела учета, при сохранении, либо по enter система будет проверять есть ли пользователя объект на изменение таких-то полей, если нет, то система будет выдавать сообщение о нехватке полномочий.
Примерно выглядет это так:
DO 1 TIMES.
AUTHORITY-CHECK OBJECT 'Z_AA_MSFO'
ID 'ACTVT' FIELD '02'.
CHECK sy-subrc NE 0.
DATA: lv_ord42_global TYPE string VALUE '(SAPLXAIS)anla-ord42',
lv_with1 TYPE string,
lv_with2 TYPE string,
lv_with3 TYPE string,
lv_num TYPE i.
FIELD-SYMBOLS <fs_ord42> LIKE anla-ord42.
FIELD-SYMBOLS <fs_anla> LIKE LINE OF t_anla.
READ TABLE t_anla INDEX 1 ASSIGNING <fs_anla>.
ASSIGN (lv_ord42_global) TO <fs_ord42>.
IF <fs_ord42> IS ASSIGNED AND <fs_anla> IS ASSIGNED.
IF <fs_anla>-ord42 NE <fs_ord42>.
<fs_anla>-ord42 = <fs_ord42>.
MESSAGE w155(zfi) DISPLAY LIKE 'E' WITH 'поле "Группа имущ. МСФО" ' '[ORD42]'.
ENDIF.
ENDIF.
TYPES: tt_anlb TYPE TABLE OF anlb.
DATA: lv_afasl_global TYPE string VALUE '(SAPLXAIS)GT_ANLB[]',
wa_anlb_pred TYPE anlb.
FIELD-SYMBOLS <fs_anlb_pred> TYPE tt_anlb.
FIELD-SYMBOLS <fs_anlb> LIKE LINE OF t_anlb.
ASSIGN (lv_afasl_global) TO <fs_anlb_pred>.
IF <fs_anlb_pred> IS ASSIGNED.
READ TABLE <fs_anlb_pred> WITH KEY afabe = '05' INTO wa_anlb_pred.
IF sy-subrc EQ 0.
READ TABLE t_anlb WITH KEY afabe = '05' ASSIGNING <fs_anlb>.
IF sy-subrc EQ 0.
IF wa_anlb_pred-afasl NE <fs_anlb>-afasl OR wa_anlb_pred-ndjar NE <fs_anlb>-ndjar OR wa_anlb_pred-ndper NE <fs_anlb>-ndper.
CLEAR: lv_with1, lv_with2, lv_with3, lv_num.
IF wa_anlb_pred-afasl NE <fs_anlb>-afasl.
<fs_anlb>-afasl = wa_anlb_pred-afasl.
lv_with1 = '"Код амортизации [AFASL]" '.
ADD 1 TO lv_num.
ENDIF.
IF wa_anlb_pred-ndjar NE <fs_anlb>-ndjar.
<fs_anlb>-ndjar = wa_anlb_pred-ndjar.
lv_with2 = '"СрокЭспл [NDJAR]" '.
ADD 1 TO lv_num.
ENDIF.
IF wa_anlb_pred-ndper NE <fs_anlb>-ndper.
<fs_anlb>-ndper = wa_anlb_pred-ndper.
lv_with3 = '"Период [NDPER]" '.
ADD 1 TO lv_num.
ENDIF.
IF lv_num EQ 1.
CONCATENATE 'поле' lv_with1 INTO lv_with1 SEPARATED BY ' '.
ELSE.
CONCATENATE 'поля' lv_with1 INTO lv_with1 SEPARATED BY ' '.
ENDIF.
MESSAGE w155(zfi) DISPLAY LIKE 'E' WITH lv_with1 lv_with2 lv_with3 ' для 5-й области'.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDDO.