Нет, счетчик работает. Проверить можно, подставив вместо 'S1' 'S1A' - увеличение с выводом. Это функция F() не может обработать штрих-код как целое число:
Цитата:Если при преобразовании целых чисел и чисел с фиксированной точкой оказывается, что целая часть числа слишком большая для ее представления, то выходная строка заменяется последовательностью символов "*".
Но с параметрами 0,0 она не выводит ни одной звездочки, хотя должна бы вернуть шестнадцать.
А с параметрами 0,1 функция работает. Ненужную дробную часть можно убрать так:
&unifor('S0'), if p(v910) then (if p(v910) then &unifor('G0.',f(val(v910^h)+val(&unifor('SA')),0,1)), &unifor('S1') fi/) fi
Только этот код будет правильно наращивать значение штрихкода, если во всех повторениях поля 910 изначально указан один и тот же штрихкод.