Я бы в Автовводе для формирования 903 поля оставил вот такой формат:
&uf('+7w2#0'),
(if val(&uf('j,I='&uf('ag1#1')))>0 or &uf('ag1#1') = '' then
&uf('+7w1#'&uf('6create_903')),
if val(&uf('ag2#1'))>10 then
'ERROR: Больше 10 попыток создания шифра'
,break,
else
&uf('+7w2#'f(rsum(&uf('ag2#1')';1'),0,0)),
fi,
else
&uf('ag1#1'),
,break,
fi)
А в файле create_903.pft прописал алгоритм формирования шифра.
Суть вот этого формата в том, что он вызывает формат create_903.pft до тех пор, пока не удается сформировать уникальный шифр, отсутствующий в текущей базе. На всякий случай я добавил заглушку, которая проверяет и после 10 неудачных попыток выдает сообщение