"By making an offsetting entry, you are not really voiding the check, right?"
Exactly; that is a typical Error. This Topic is in regards to a Prior Period. You don't want to change that period, unless you intend to Amend reporting and/or restate. Like this:
I sent you a $150 check that got lost in the mail. I don't incur more Expense; we lost the Banking. I would deposit against a Liability and pay you again. This is the New Check, not New expense. And now the original check is offset by the deposit = Net of 0.
"The check will still show up as a valid check, it will not be labeled as voided, right?"
Again, Prior Period is the Concern, here. If you don't care, go ahead and Void it. For instance: I can Reprint that original QB check I sent you on New #, and then enter a Write Check as placeholder for the # that is Lost and VOID it. I would never do this against Last Year's tax reporting.
"Why can't a big operation like QB allow you to choose the void date"
When you Void Something, it already has the date on it. There is no VOID date; there is That Transaction and its date.
"and make the offset on the chosen date?"
Why do you keep insisting it needs to be Two Parts? I explained how to do it with One Step, and you get to Set the date on that offsetting deposit.
"How hard is it to write that program in?"
Did you know you are not in Live Chat with Intuit support or programming? Because this Peer Users. As a Peer User, I would rather make One Entry, not Two, for what you intend to Void. Half as much work.
"Also, will that "voided" check still show up as a valid payment on the 1099 report?"
Not if you VOID it. Keep in mind this topic is for Prior Period. And this is exactly why the offsetting deposit is Not Expense, again. The Banking issue is resolved by using Liability in and out, to Replace a check; not to Pay More expense.
"Thank you for replying."
The whole point is not to Void an expense and create Expense, again, just to fix Banking. Don't make things Worse; stop doing too many steps.