I use two types of unique identifiers, one to ID each project and one to ID invoices.
The first is comprised of letter and numbers. It takes certain truncated fields and puts it together to form a unique ID. for example: Project’s manager truncated to 3 capitalized: ‘VIN’. This way you can string together a couple of unique identifiers.
As for the invoice, we use a fixed number,lets say: 17001. The next one is basically the last one + 1 (with the ability to manually override.