Перенос информации из одной Базы в другю

Формулы
cocos
Сообщения: 25
Зарегистрирован: Чт июл 10, 2025 1:44 pm

Перенос информации из одной Базы в другю

Сообщение cocos »

Имеются 2 Базы Данных: Лицо "ЛЦ" и Фото "ФТ", связанных прямой-обратной отсылкой по полю ЛЦ110.
Нужно содержимое поля ЛЦ2 (типа "Файл") перенести в поле ФТ1 (тоже типа "Файл").

@N:=0;
A:;
@N:=(@N+1);
@A:=GETIZN(ЛЦ2,@N);
IF(@A = "")THEN(GOTO B)ELSE(@sn:=NEW(ЛЦ110_ФТ));
USERECORD (ФТ{@sn}, ФТ1:=@A);
GOTO A;
B:

При поиске ЛЦ и проведении Массовой коррекции в режиме "пересчитывать все", формула почему-то не работает: в Базу ФТ ничего не переносится, хотя в свойстве формулы (Ctrl-P) стоит галочка "Обязательная". Где в формуле закралась ошибка?
В DOS-овской версии Кроноса аналогичная формула с незначительным изменением работала.
Zuluss
Сообщения: 51
Зарегистрирован: Чт авг 22, 2024 1:35 pm

Re: Перенос информации из одной Базы в другю

Сообщение Zuluss »

Для полей типа файл следует использовать функции GETFILE-SETFILE.
cocos
Сообщения: 25
Зарегистрирован: Чт июл 10, 2025 1:44 pm

Re: Перенос информации из одной Базы в другю

Сообщение cocos »

Спасибо, буду думать дальше.
Кстати, в DOS-овской версии несколько измененная формула работала с текстовыми полями.
Zuluss
Сообщения: 51
Зарегистрирован: Чт авг 22, 2024 1:35 pm

Re: Перенос информации из одной Базы в другю

Сообщение Zuluss »

Надо проверить, но по-моему функция GETIZN вообще исключена из описания и не работает. Вместо нее используются другие возможности.
cocos
Сообщения: 25
Зарегистрирован: Чт июл 10, 2025 1:44 pm

Re: Перенос информации из одной Базы в другю

Сообщение cocos »

Формулу переделал: перенос из множественного значения поля 2 Базы ЛЦ в немножественное поле 1 создаваемой Базы ФТ – поля типа “Файл”.

@N:=0;
A:;
@N:=(@N+1);
@A:=GETFILE(ЛЦ2(@N));
IF(@A="")THEN(GOTO B)ELSE(@sn:=NEW(ЛЦ110_ФТ));
USERECORD(ФТ{@sn}, SETFILE(ФТ1,@A));
GOTO A;
B:

К сожалению формула не заработала – зацикливается на создание множества Баз ФТ.
Где ошибка?
Zuluss
Сообщения: 51
Зарегистрирован: Чт авг 22, 2024 1:35 pm

Re: Перенос информации из одной Базы в другю

Сообщение Zuluss »

Работающая формула

Код: Выделить всё

@N:=VALCOUNT(ЛЦ1);
@I:=1
while (@I<=@N) do 
[
	@F:=GETFILE(ЛЦ1(@I))
	@SN:=NEW(ЛЦ510_ФТ);
	USERECORD(ФТ{@SN},SETFILE(ФТ1,@F));
@I:=@I+1	
]
cocos
Сообщения: 25
Зарегистрирован: Чт июл 10, 2025 1:44 pm

Re: Перенос информации из одной Базы в другю

Сообщение cocos »

К сожалению, данная формула не заработала: программа начала зависать, создавая множество пустых связанных Баз ФТ. Может причина в том, что пересылается .PDF-файл, которого нет в списке выбираемых файлов? В любом случае, это уже не актуально: после “урезания” функционала CronosPro проблема с задержкой копирования файлов в Банк Данных была решена. В любом случае, буду “добивать” эту формулу для получения нужного результата.
Zuluss
Сообщения: 51
Зарегистрирован: Чт авг 22, 2024 1:35 pm

Re: Перенос информации из одной Базы в другю

Сообщение Zuluss »

А номера полей все поменяли? ЛЦ1, ЛЦ510, ФТ1. Тут нужны ваши номера. Формула работает хорошо, вне зависимости от типа файла.
cocos
Сообщения: 25
Зарегистрирован: Чт июл 10, 2025 1:44 pm

Re: Перенос информации из одной Базы в другю

Сообщение cocos »

Менял, конечно, ведь без этого сама формула не сохранится и не запустится: проверял кнопкой "Проверка".
Zuluss
Сообщения: 51
Зарегистрирован: Чт авг 22, 2024 1:35 pm

Re: Перенос информации из одной Базы в другю

Сообщение Zuluss »

Если поле с упоминаемым номером есть в базе, но оно не имеет отношения к необходимой операции(не является полем Файл и связным полем), то кнопка Проверить роли не сыграет, а результата может не быть.
Ответить