Собственно, примерно это и делает класс/форма SysRecIdRepair в Ax3.0. Там достаточно простой код. Почти наглядный
Правда, в отношении компании DAT не вполне понятно, а надо ли вообще что-то делать. Там такие огромные дыры в нумерации при относительно небольшом количестве записей, что получить конфликт из-за повтора RecId представляется маловероятным. У меня подозрение, что nextValue в ней уже идет по второму кругу, а мы этого как-то не заметили
Сейчас особо времени нет, поэтому пока собираю информацию по этому вопросу...