Сделал сам по такой схеме - может это кому-то пригодится. Создал дополнительную таблицу system В ней одна запись, четыре поля, в которых храниться последний номер для каждого из четырех типов. Также сделал поле для номера версии базы. У меня работают с базой четыре пользователя через локальную сеть. Идея такая - при выпуске новой версии моей программы, если изменилась структура базы, а клиентские части остались не обновленные, то возможно будут глюки работы программы. Поэтому в скрипте определяю константу номера версии и при запуске программы читаю версию базы и сравниваю ее с этой константой - если не совпадают, то выдаю сообщение, что программу нужно обновить и завершаю ее. Кстати, делаю это через MainForm.Close. Прочитал, что завершать программу можно через Application.Terminate но у нас в скрипте это не работает.
Работаю со значениями номеров в таблице system так: перехватываю событие показа формы onShow с редактированием записи БД. Определяю, через параметр Action, что это newRecord. В этом случае читаю из таблицы system текущий номер из поля для нужного типа, прибавляю к нему 1 и заношу в поле номера в форме. Также на форме размещен невидимый чекбокс, который устанавливается из скрипта в обработке onShow (он будет нужен при сохранении) При сохранении делаю так: Перехватываю onClick кнопки сохранения и если это новая запись (установлен чекбокс) то записываю в таблицу system новое значение номера в соответствующее поле. Все!