Not sure I understand, but I think you are talking about the ONS instruction for a PLC5 or a ControlLogix. It has a storage bit, that is a boolean 1 when the one-shot has 'fired' and 0 when the one-shot is 'reset'
For the one-shot to reset itself, the conditions that preceed it on the rung have to execute when they are false. This is considered the 'normal' method of resetting the one-shot. If you can find a way to call the subroutine while the condition that fires the one-shot is false, that is the least confusing way of using the subroutine.
You can 'manually' reset the ons by clearing the storage bit. This is not good programming practice ... sort of like using GOTO in Basic. But it does work. An OTU instruction can be used and will not affect other logic. But it is a duplicate destructive instruction aimed at the same address, so your programming software should (correctly) warn you about it.
Using the same ONS storage bit on a different rung, and having it execute with the conditions that preceed it on the rung evaluate to false, will also reset the One-shot. This is also a duplicate destructive instruction aimed at the same address, so your programming software should (correctly) warn you about it. BUT this method will CONFUSE the heck out of anyone who looks at the code. Ask me how I know! This is horrible programming practice. Kind of like using self-modifying code in assembly. I list it because it does work. But please don't do this.
Whatever method you use to reset the one-shot - PLEASE DOCUMENT WHY you are doing what you are doing. Extra calls to subroutines that don't make sense are hard to figure out. OTUs on one-shot bits are harder to figure out. And multiple uses of ONS storage bits are the worst of the lot. Be kind to yourself the next time you review the logic, and document it well.