I went to St Petersburg & surrounding areas for work some years back
Visa was fine - I had the letter of invite & hotel all sorted.
One thing to watch for, the old roubles to dollars / dollars to roubles scam
Practiced everywhere, and guaranteed to leave you out of pocket (big time)
Everything is priced in roubles, but they wont accept roubles as payment it has to be dollars which they then convert to roubles (go figure)
They then give any change in roubles (which are worthless) & they wont accept
and guess what there's a conversion rate applied from dollars to roubles and roubles to dollars (which you never get back lol)
each hotel, taxi , bar, has it's own conversion factor .
So a £40 dollar taxi fare can often cost about £50 or £60 dollars once the conversion has been factored in .