RE: Edit Posted sales invoice
You can modify selected information on posted documents, and entries. It is even implemented in the standard application. Look at how you can change the Due Date field on Customer G/L Entries for example.
However, you should be very cautious, if you implement such a function at a customer site, for the reasons mentioned in the two previous posts.
But, to do it you need to create object, for example a page, where you allow the user to input the information to change. The page object must have the permission to change the posted invoice header, and also the user must have the permission. You could say, that the user brings half the permission, and the object brings the other half, so in combination the change is allowed. This way you can alsy, by setting up permissions, decide which users are allowed to make changes to posted documents.
For inspiration, check out how Microsoft have implemented the possibility to change Due Date and On Hold in, for example. There the page itself has the permissions to modify existing Ventor Entries, and the majority of controls on the page are write protected (Editable = FALSE). However, the fields, that the user must be allowed to change are Editable = TRUE