Загружаем зп в систему через таблицу T558B и схему Ru30. Случилось так, что человек в одном месяце был уволен и принят обратно. Один табельный номер. Как правильно положить суммы в загрузку?

С помощью отладчика выяснил следующее. В драйвере расчета до запуска схемы идет проверка на строчку PGM TRN. Если такая строчка найдена, то система игнорирует состояние управляющей записи и грузит все периоды, которые есть в T558B. Но, для корректности загрузки она внутри себя строит таблицу APER, в которой по WPBP сама собирает периоды расчета. Если человек принят повторно в месяце, то мы должны разделить расчет заработной платы на два с помощью отдельного мероприятия — повторный прием. Признак разделения устанавливается в таблице T530. Система по этому признаку наш месяц поделила на два периода расчета с одним годом и месяцем, но разными датами начала и окончания (begda-endda).

Следующим шагом система читает t558b и сравнивает периоды в ней с периодами в APER. Если не сошлись, то выдает ошибку «Расчетный период 12 в T558B не совпадает с основными данными» (период расчета может быть любой). Поэтому в T558b должно быть два периода — уволенный сотрудник (без видов оплаты), вновь принятый (с видами начислений/удержаний). Если работник уволен, а потом повторно принят с разрывом в несколько месяцев, то в таблице T558b должны быть периоды, когда работник не работал.

В HRUCALC0 смотреть здесь:
Include RPCHRT09_FILL_APER

*———————————————————————-*
* new: to this point «K11K127822*
*———————————————————————-*
WHEN ‘TRN’. «tranfer old payroll results
PERFORM check_payty_t558b.
IF NOT rueckrab IS INITIAL.
PERFORM fill_aper_for_regular_payroll «QNZ note 331016
USING fa_datum. «QNZ note 331016
PERFORM check_aper_versus_t558b.
ENDIF.
PERFORM insert_bonus_runs_from_t558b.

А еще апельсины можно загружать с помощью IDOC: LSMW и IDOC инструкция для начинающих