Форма .. .отпадает.Форму можно "внедрить" используя Parent.
...
tsDatail: TTabSheet;
...
procedure TMainFM.tsDatailShow(Sender: TObject);
begin
if FilmDatailFM = nil then begin
FilmDatailFM := TFilmDatailFM.Create( Application );
FilmDatailFM.Parent := tsDatail;
end;
FilmDatailFM.Show;
end;
значение может увеличиться на 1000Либо у вас есть репликация на этой базе данных, либо неправильно настроено восстановление после сбоя (без отката незавершённых транзакций).
с добавлением еще одного поля... логику которого нужно как раз и прописатьДа, в триггере либо вычислять пропущенный номер, либо завести отдельную таблицу неиспользованных номеров и брать из неё.
все варианты превратить в однотипные абстрактныеИмя не может быть абстрактным по-определению. Код может.