Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис    FTP-сервер
АРМ Каталогизатор :  ИРБИС Irbis
 
Глобальная корректировка 910 в 317
Пользователь: gavrikov (IP-адрес скрыт)
Дата: 08, April, 2019 15:45

Коллеги, помогите пожалуйста необходима корректировка которая копирует экземпляры с коллекциями из 910 поля в 317. И вроде не сложно, но у некоторых записей 317 поле уже может быть заполнено, например дарственные надписи и т.п.

Ниже ГК которой я пытаюсь это делать, но она в случае существующего значения 317 поля при каждом сохранении будет добавлять повторение поля... Нам необходимо чтобы эта ГК была в autoin.gbl/


0
IF
if v317^A<>'' then '1' else '0' fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
ADD
317
XXXXXXXXXXXXXXXXXXX
(if (v317^!=v910^b and v317^A<>v910^q) then '^A'v910^q,'^!'v910^b fi/)
XXXXXXXXXXXXXXXXXXX
FI
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
IF
if v317^A='' then '1' else '0' fi
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
ADD
317
XXXXXXXXXXXXXXXXXXX
(if p(v910) then if v910^q<>'' and v910^b<>'' then '^A'v910^q,'^!'v910^b fi fi/)
XXXXXXXXXXXXXXXXXXX
FI
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX



Редактировано 1 раз. Последний раз 08.04.2019 15:46 пользователем gavrikov.

Re: Глобальная корректировка 910 в 317
Пользователь: Gena (IP-адрес скрыт)
Дата: 08, April, 2019 18:29

ADD
317
XXXXXXXXXXXXXXXXXXX
&uf('+7w1#'(if p(v317) then'!'v317^!'!' fi)), (if p(v910) then if v910^q<>'' then if &uf('ag1#1'): s('!'v910^b'!') then else '^A'v910^q,'^!'v910^b fi fi fi/)
XXXXXXXXXXXXXXXXXXX

AVD System, Техническая поддержка, [www.open4u.ru]



Редактировано 2 раз. Последний раз 08.04.2019 18:30 пользователем Gena.

Re: Глобальная корректировка 910 в 317
Пользователь: gavrikov (IP-адрес скрыт)
Дата: 09, April, 2019 07:13

Не срабатывает в случае если в 317 уже есть запись, например дарственная, то коллекция не заносится потому что инвентарный номер один...

То есть если в поле 317 есть:
^AДарственная надпись...^!Р-7891
то должно получиться:
^AДарственная надпись...^!Р-7891
^AАвторефераты^!Р-7891
^AАвторефераты^!Р-7933

Подскажите что делает конструкция &uf('ag1#1'):s('!'v910^b'!') и где про это почитать?

Re: Глобальная корректировка 910 в 317
Пользователь: Gena (IP-адрес скрыт)
Дата: 09, April, 2019 08:01

gavrikov написал(а):
-------------------------------------------------------
> Не срабатывает в случае если в 317 уже есть
> запись, например дарственная, то коллекция не
> заносится потому что инвентарный номер один...
>

Это потому, что я не понял задачи и специально сделал проверку - если в 317 уже есть такой инв номер, то ничего не делать.Тогда вот такой вариант

Тогда да, чуть хитрее надо сделать. Хороший вариант:
1. Создать новое поле 1910, скопировать в него все 910 поля с коллекциями
2. Сделать цикл UNTIL, в котором:
2.1. первое повторение поля 1910 сравнивается со всеми повторениями 317. Если в 317 нет совпадения по названию коллекции и инв. номеру, то добавляется новое повторение 317
2.2. удаляется первое повторение поля 1910


> То есть если в поле 317 есть:
> ^AДарственная надпись...^!Р-7891
> то должно получиться:
> ^AДарственная надпись...^!Р-7891
> ^AАвторефераты^!Р-7891
> ^AАвторефераты^!Р-7933
>
> Подскажите что делает конструкция
> &uf('ag1#1'):s('!'v910^b'!') и где про это
> почитать?

Это просто проверка на вхождение текста '!'v910^b'!' в переменную &uf('ag1#1'). Я в нее в начале все инв.номера из 317 записал

AVD System, Техническая поддержка, [www.open4u.ru]

Re: Глобальная корректировка 910 в 317
Пользователь: gavrikov (IP-адрес скрыт)
Дата: 10, April, 2019 12:26

Подскажите, что надо сделать чтобы ГК во вновь созданное 1910 поле вносила изменения? Запускаю любую ГК и изменений в поле 1910 не происходят...

Re: Глобальная корректировка 910 в 317
Пользователь: ochagova (IP-адрес скрыт)
Дата: 11, April, 2019 11:28

Вы у себя сделали новое поле 1910? Это поле, наверняка, используется в какой-то ГК, как промежуточное, а промежуточные поля в конце ГК всегда удаляются.

Re: Глобальная корректировка 910 в 317
Пользователь: gavrikov (IP-адрес скрыт)
Дата: 12, April, 2019 07:34

их содержимое удаляется автоматически? то есть даже после такой простой ГК:
0
ADD
1910
XXXXXXXXXXXXXXXXXXX
'test'
XXXXXXXXXXXXXXXXXXX

Re: Глобальная корректировка 910 в 317
Пользователь: ochagova (IP-адрес скрыт)
Дата: 12, April, 2019 08:57

А вы помните об автовводе? Попробуйте при выполнении ГК отключить автоввод

Re: Глобальная корректировка 910 в 317
Пользователь: gavrikov (IP-адрес скрыт)
Дата: 12, April, 2019 11:17

Спасибо большое! Автоввод оказался виноват :) Подскажите, где можно подробнее про UNTIL почитать и примеры посмотреть? Как-то мало про него совсем информации.

Re: Глобальная корректировка 910 в 317
Пользователь: ochagova (IP-адрес скрыт)
Дата: 12, April, 2019 13:05

Только в общем описании -приложение 7. Но там очень кратко, т.к. непонятно какие м.б. проблемы? Главное - условие выхода из цикла.



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