Re: Некорректная работа функции &UNIFOR
Пользователь:
Соколинский К.Е. (СЗТУ) (IP-адрес скрыт)
Дата: 04, April, 2005 00:28
С точки зрения логики очевидно, что функция &UNFOR('I не должна быть связана с повторяющимися полями. Как бы не изменялись значения в повторяющихся полях, параметр INI файла всегда остаётся константой, поэтому функция должна возвращать такое же постоянное значение, как и безусловный литерал.
Тем не менее, она работает иначе.
Предположим, поле 907: ^CАДМ^A20050131^BСКЕ, а в INI файле параметр FIO=СКЕ.
1. (if v907^b='СКЕ' then 'Соколинский Кирилл Евгеньевич' fi/) - работает.
2. (if v907^b=&uf('IPRIVATE,FIO,') then 'Соколинский Кирилл Евгеньевич' fi/) выдаёт ошибку ***Format error 57, однако, один раз срабатывает(возвращает True) если значение FIO не задано.
3. (if p(v907^b) then if v907^b=&uf('IPRIVATE,FIO,') then 'Соколинский Кирилл Евгеньевич' fi fi/) - работает
4. (&uf('+1W55#',v907^b),if &uf('+1R55')=&uf('IPRIVATE,FIO,') then 'Соколинский Кирилл Евгеньевич' fi/) - работает
Не могу дать этому ни одного разумного объяснения, не могу понять логики работы(или условий возникновения ошибки) этой функции. При её использовании произошел первый случай, когда я дважды, по просьбе каталогизаторов исправлял одну ошибку...