I believe the following works. It generates all$^1$ candidate lists $\beta_i$ such that $\sum_i i\beta_i' \leq d$ and then compares them element-wise to $\beta$.
generateTuples[beta_, d_] := Module[{lst = PadRight[beta, d], candidates}, candidates = Flatten[FrobeniusSolve[Range[d], #] & /@ Range[d], 1]; TakeWhile[#, # > 0 &] & /@ Select[candidates, And @@ Thread[lst <= #] &] ] So:
generateTuples[{1}, 3] (* {{1}, {2}, {1, 1}, {3}} *) $^1$ I'm not entirey sure that I'm capturing all the possibilities or that I'm understanding the OP's requirement. The OP should check my assumptions and test this with lots of example lists.