When writing queries, you should not use virtual tables joins. Only metadata objects or temporary tables should be joined to each other.
If the query uses a join to a virtual table (for example, AccumulationRegister.Products.Balance) and the query is slow, then it is recommended to move the data reading from the virtual table into a separate query with the results saved in a temporary table.