cro-logo      
Добро пожаловать, Гость. Пожалуйста, выберите Вход или Регистрация

 
 
  ГлавнаяСправкаПоискВходРегистрация  
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать
Не корректная работа AddLink (Прочитано 241 раз)
Константин
Пользователь
**
Вне Форума



Сообщений: 10
Не корректная работа AddLink
03.10.2018 :: 11:13:05
 
Здравствуйте. Создаю связку между полями двух баз. С помощью AddLink. На одной связь прямая на другой обратная. В одной базе создаётся ссылка другую. А во второй этой связи не видно. Причем на определенных записях все хорошо, обе связи видны. А на некоторых возникает данная проблема. Читал в других темах. Пишут что проблема с блокировкой записей. Но если на некоторых записях все хорошо, значит проблема в чем то другом. Подскажите пожалуйста, в чем ещё может быть проблема?
Наверх
 
 
IP записан
 
Энкан
Профи
****
Вне Форума



Сообщений: 224
Владивосток
Re: Не корректная работа AddLink
Ответ #1 - 03.10.2018 :: 14:47:51
 
Не припонмю что то такой функции для создания связи между базами,  а в каком контексте используется формула? можно пример кода? как база понимает, что эти банки должны быть связаны?
Если создается через new , то такая ошибка бывает, для этого надо как бы из нутри прописать эту связь, просто в контексте userecord прописать в поле связи системный номер связуемой записи.
В общем ждем примера кода и будем разбираться, и версию кроноса скажите.
Наверх
 
 
IP записан
 
Константин
Пользователь
**
Вне Форума



Сообщений: 10
Re: Не корректная работа AddLink
Ответ #2 - 03.10.2018 :: 19:20:14
 
есть кнопка на форме ввода записи базы FL. при нажатии на нее должна создаваться связь с только что созданной записью базы EF.
проблема в том, что на некоторых записях базы FL не видна эта связь, хотя на записи базы EF эта связь проставлена. версия кронос старая, если не ошибаюсь 5.1. (точно посмотреть возможности сейчас нет)
base1 = CroApp.GetBank():GetBase("FL");
base2 = CroApp.GetBank():GetBase("EF");
record1 = base1:GetRecord(Me.поле9.Value); --сохраняем идентификатор записи FL. в поле  Me.поле9.Value хранится SN записи базы FL.   
newRec1 = base2:AddRecord();-- создаем новую запись в базе EF
record1:UnLock();
base1:AddLink(record1.SN, 24, base2, newRec1.SN,Base.LockWait,Base.LockWait);--создаем связку.
record1:Lock();
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 425
Санкт-Петербург
Re: Не корректная работа AddLink
Ответ #3 - 03.10.2018 :: 21:31:21
 
Ещё раз смотрите тут.
Открытую запись в форме ввода Вы пытаетесь связать с другой. В другой связь появится, а в открытой в форме нет. В результате появится односторонняя отсылка.
Наверх
 
 
IP записан
 
Константин
Пользователь
**
Вне Форума



Сообщений: 10
Re: Не корректная работа AddLink
Ответ #4 - 03.10.2018 :: 22:55:49
 
это понятно, только вот односторонняя отсылка создается не всегда. в некоторых случаях связи создаются как положено. переделал так, что данный код перенес на дополнительную форму. эта форма открывается при нажатии на кнопку, которая ранее выполняла данный код. передал туда с помощью аргументов два параметра, SN обеих записей. в событие открытия формы вписал закрытие формы в которой велась работа с записью базы FL. и после закрытия выполнил привязку. результат тот же самый. какие то связи создаются корректно, какие то в одностороннем порядке.
function Форма_Open( form )
Me.label1.Text=Arg.arg1;
Me.label2.Text=Arg.arg2;
local iForms = Form.OpenedForms;
local form;
for form in iForms do                  
      if (form.NameInList == "Form_FL") then
            form:CloseForm();
      end
end
base1 = CroApp.GetBank():GetBase("FL");
base2 = CroApp.GetBank():GetBase("EF");
record1 = base1:GetRecord(Me.label1.Text);
record2 = base2:GetRecord(Me.label2.Text);
record1:UnLock();
base1:AddLink(record1.SN, 24, base2, record2.SN,Base.LockWait,Base.LockWait);
record1:Lock();
Me:CloseForm();
end
Наверх
 
 
IP записан
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать