Тема: Добавление ссылки на текущий объект...

Задача состоит в следующем:
1. Есть объект "Клиент".
2. На форме объекта "Клиент" (для удобства юзеров) есть кнопка "Создать новый договор для текущего клиента".
3. Указанная в п.2 кнопа скриптом создает (должна  :rolleyes: ) новый "Договор"...
5. ...и добавляет в Договор (в атрибут "Ссылка на клиента") ссылку на текущего клиента.

Решаю задачу таким образом:

' ClientGUID = ThisObject.GUID
Set ParObj = ThisApplication.GetObjectByGUID("{FFE6A680-1245-4665-86B1-FFF0EAA2DEB6}")' Это GUID Ветви Реестр Договоров
Set NewObjDlg = ThisApplication.Dialogs.CreateObjectDlg
NewObjDlg.ParentObject = ParObj
NewObjDlg.ObjectDef = "OBJECT_DOG" ' Это SysID объекта Договор
NewObjDlg.Show ' показываем диалог создания объекта "Договор"

Новый договор создаётся без проблем.
А вот добавить ссылку на клиента не могу и не знаю как!
Подскажите, как выйти из тупика?

Re: Добавление ссылки на текущий объект...

Пробовал через такую конструкцию:

Set obDef = tdms.ObjectDefs("Договор").CreateObject()

и т.д.
Но CreateObject тупо (как я понял)  создаёт объект с нужными значениями атрибутов, не позволяя юзеру заполнять их в процессе создания.
Или я не разобрался?

Re: Добавление ссылки на текущий объект...

DeTrah пишет:

Подскажите, как выйти из тупика?

может так пойдет?

  Set ParObj = ThisApplication.GetObjectByGUID("{AC1AA95A-C4B6-4A75-A022-77EE065DC5D1}")' Это GUID Ветви Реестр Договоров
  set NewObj = ThisApplication.ObjectDefs("TEST")
  set NewObj = ParObj.Content.Create(NewObj)
  NewObj.Attributes("ATTR_LINK").object = ThisObject
  EditObjectDlg.Object = NewObj
  if EditObjectDlg.Show = False then
    NewObj.Erase
  end if 

(изменено: DeTrah, 28 июля 2010г. 14:12:59)

Re: Добавление ссылки на текущий объект...

vorona пишет:

может так пойдет?

  Set ParObj = ThisApplication.GetObjectByGUID("{AC1AA95A-C4B6-4A75-A022-77EE065DC5D1}")' Это GUID Ветви Реестр Договоров
  set NewObj = ThisApplication.ObjectDefs("TEST")
  set NewObj = ParObj.Content.Create(NewObj)
  NewObj.Attributes("ATTR_LINK").object = ThisObject
  EditObjectDlg.Object = NewObj
if EditObjectDlg.Show = False then
  NewObj.Permissions = SysAdminPermissions ' без этого удаление с ошибкой происходит, точнее вообще не происходит    :) 
  NewObj.Erase
end if 

Добавил в скрипт (перед удалением) строчку с сисадминскими правами.
Спасибо!