Pues la solicion de ingeniero es similar a la mia jaja, un numero interno y el numero de factura, cuando esta operando asignas con el id interno este no hay problema puede ser un generador y solo mostras la factura que toca (esto como dato informativo) en Firebird para realizar un bloqueo exclusivo se puede hacer asi
Código SQL
[-]UPDATE FAC_CORRELATIVO SET CODIGO = CODIGO WHERE CODIGO = :codigo;
o bien
Código SQL
[-]SELECT CODIGO FROM FAC_CORRELATIVO WHERE CODIGO = :CODIGO WITH LOCK;