Хочу выделить в отдельную тему проблему, которая возникла в
[
irbis.gpntb.ru]
Речь идет об использовании в ТВП инвертирования (<dbn>.fst) конструкций языка форматирования, связанных с обращением к другим записям (той же самой или другой БД) - REF..., &uf('D..., &uf('7..., &uf('J... и т.п.
В ОБЩЕМ СЛУЧАЕ использование таких конструкций в ТВП инвертирования НЕ ДОПУСТИМО! - т.е. в ТВП инвертирования можно использовать ТОЛЬКО те конструкции языка форматирования, которые оперируют данными ТЕКУЩЕЙ записи!
Использование в ТВП инвертирования конструкций, обращающихся к другим записям, будет давать положительный результат ТОЛЬКО в двух случаях:
- при создании словаря заново;
- если связанные данные являются СТАТИЧЕСКИМИ (неизменяющимися) по отношению к текущей записи.
Как же быть, если необходимо в словарях (ТВП инвертирования) отразить связь между изменяющимися записями (базами данных)?
Можно рекомендовать следующую общую схему решения этой проблемы.
Если запись (или точнее - записи) типа А связана с записью (записями) типа В (не имеет значения - в той же или другой БД) и эта связь должна динамически отражаться в словарях, необходимо сделать следующее:
1. В записи типа А создать (явно или скрыто) специальное поле NN, в котором будет отражаться данная связь.
2. Через механизм автоввода (AUTOIN.GBL, команда CORREC) отражать в поле NN изменения записи типа В.
3. В ТВП инвертирования создать соответствующую инверсию поля NN.
Вся эта информация, разумеется, адресована только тем, кто ведет самостоятельные разработки в ИРБИС.