Default income account is still set in sales invoice items

is there any way to stop the native function that assign to an item’s row added in child doctype, sales invoice item, the default income account from company doctype?
i’m trying by a custom script to adding a specific income account when a row is added, but it’s always replaced by that default account. i used a “setTimeout” js function to apply the specific account after that native function is called. it works but if there is another smarter way , it would be cool.

You can set an Income Account even at the Item level. This way you can override the company default without customization. You will find it under “Sales,Purchase,Accounting Defaults” in the “Item” master.