Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Общие вопросы Ирбис64 :  ИРБИС Irbis
 
Состав полей попадающих в индекс DS=
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 24, November, 2016 13:19

Здравствуйте, уважаемые коллеги!

Пожалуйста подскажите, можно ли самостоятельно исключить из индекса с префиксом DS= отдельные поля (в сценариях FST и IFS файлов), например поле 951 или 952 или формирование данного индекса реализовано жестко в dll?

Re: Состав полей попадающих в индекс DS=
Пользователь: Alio (IP-адрес скрыт)
Дата: 24, November, 2016 14:13

А. Роман написал(а):
-------------------------------------------------------
> Здравствуйте, уважаемые коллеги!
>
> Пожалуйста подскажите, можно ли самостоятельно
> исключить из индекса с префиксом DS= отдельные
> поля (в сценариях FST и IFS файлов),
Можно.



например поле
> 951 или 952 или формирование данного индекса
> реализовано жестко в dll?

Re: Состав полей попадающих в индекс DS=
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 24, November, 2016 19:05

Александр Иосифович, спасибо, но я имел ввиду работу форматного выхода &uf('++0')

В документации описания найти не удалось. То, что можно написать условие обработки результатов данного формата, я понимаю.

Коллеги предлагают использовать, к примеру, такой формат :

&uf('+1w1#'&unifor('++0')),(if p(v951) then &uf('+1w1#'&uf('+9i!'v951'!@@'&uf('+1R1,1'),)) fi),g1,

которым заменить часть конструкции (выделено в тексте), использующейся в FST и IFS файлах:

1111 8 MHL,'/',&uf('IMAIN,DebilPrefix,DS='),'/',if &unifor('IMAIN,DBSCH,')='1'then &unifor('++0'),/mhl,&unifor("K900t.mnu|"v900^t),/&unifor("Kvd.mnu|"v900^B.2),/if '03040507':v900^b.2 and a(v982) then if 'a1 b':v900^t or a(v900^t) then'книга'fi fi,/&unifor("K110b.mnu|"v110^B.2),/"Юридический директивный документ"d981,/&unifor("Khd.mnu\"v900^C),/&unifor("Khd.mnu\"v900^2),/&unifor("Khd.mnu\"v900^3),/&unifor("Khd.mnu\"v900^4),/&unifor("Khd.mnu\"v900^5),/&unifor("Khd.mnu\"v900^6),/&unifor("Kstr.mnu\"v102),(/&unifor(|Kjz.mnu\|v101)),if v900^b:'o'or p(v102) and &unifor('Korg.mnu|1')=v102 then'отечественный'fi,/if v900^b:'z'or p(v102) and &unifor('Korg.mnu|1')<>v102 then 'иностранный зарубежный'fi fi/

Но если необходимо исключить кроме 951 поля еще ряд полей, то придется усложнять конструкцию.

Т.е. если то, о чем Вы говорили на "Школе ИРБИС" в Суздале (про исключение 907 поля) жестко зашито в &unifor('++0'), то вопросов нет.

Тогда есть только пожелание и просьба предусмотреть в перспективе конструкцию, исключающую вывод полей перечисленных, например в дополнительном параметре, передаваемом через функцию &unifor('++0').



Редактировано 1 раз. Последний раз 24.11.2016 19:07 пользователем А. Роман.

Re: Состав полей попадающих в индекс DS=
Пользователь: Alio (IP-адрес скрыт)
Дата: 25, November, 2016 10:35

А. Роман написал(а):
-------------------------------------------------------
> Александр Иосифович, спасибо, но я имел ввиду
> работу форматного выхода &uf('++0')
Начиная с версии 2016.1 форматный выход &uf('++0') модифицирован следующим образом
&uf('++0,nnn,mmm,...')
nnn, mmm - метки полей, которые ИСКЛЮЧАЮТСЯ из форматирования.

Re: Состав полей попадающих в индекс DS=
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 26, November, 2016 14:04

Александр Иосифович, большое спасибо!

Жаль, что в текст релиза не попала эта информация, не пришлось бы Вас отвлекать.



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.