1. Фильтр в отчете запаса на эту карточку.
2. Если не было по ней сумм т.е. таблица anlc - для неё пустая. То можно удалить карточку с помощью As06, но для этого надо почистить поле anla-avtiv лучше вообще все даты.
Для себе писал такую программульку :
Первый раз запускаем без галки, Если программа пишет:
1) Удалить нельзя - у неё уже заведены суммы - то суммы есть в anlc и as06 делать нельзя
2) Можно удалить - смело запускаем с галкой.
И после запускаем as06 и удаляем картку совсем
Тексты для критериев выбора
P_ANLN1 Номер ОС
P_ANLN2 Субноемр ОС
P_BUKRS БЕ
X_DO Выполнить изменение
____________________________
Code:
REPORT z_delete_pre.
TABLES: anla,
anlc.
DATA: gs_anla TYPE anla.
PARAMETERS: p_bukrs TYPE bukrs OBLIGATORY DEFAULT '1000',
p_anln1 TYPE anla-anln1 OBLIGATORY,
p_anln2 TYPE anla-anln2 OBLIGATORY,
x_do AS CHECKBOX.
SELECT SINGLE * FROM anla
INTO gs_anla
WHERE bukrs = p_bukrs
AND anln1 = p_anln1
AND anln2 = p_anln2.
IF sy-subrc = 0.
SELECT SINGLE * FROM anlc
WHERE bukrs = p_bukrs
AND anln1 = gs_anla-anln1
AND anln2 = gs_anla-anln2.
IF sy-subrc = 0.
WRITE : 'Карточку ОС', p_anln1, '-', p_anln2, 'Удалить нельзя - у неё уже заведены суммы'.
ELSE.
IF x_do IS INITIAL.
WRITE: 'Карточку ОС', p_anln1, '-', p_anln2, 'Можно удалить'.
ELSE.
CLEAR: gs_anla-aktiv,
gs_anla-zugdt,
gs_anla-zujhr,
gs_anla-zuper.
MODIFY anla FROM gs_anla.
COMMIT WORK AND WAIT.
WRITE: 'Карточка ОС', p_anln1, '-', p_anln2, 'Готова для удаления с помощью AS06'.
ENDIF.
ENDIF.
ELSE.
WRITE: 'ОС с номером', p_anln1, '-', p_anln2, 'Не существует'.
ENDIF.