Страница 1 из 1
					
				Внешние атрибуты - ссылка (другие таблицы)
				Добавлено: 29 сен 2014, 16:32
				 Den_Is
				Вопрос наверное простой. Необходимо добавить внешний атрибут с сылкой на каталог стран. Создаю атрибут, делаю ссылка (прочие таблицы), открывается список таблиц, в списке каталога стран нет. Клавиша F7 не отрабатывает (права админа, доступ на чтение и запись всех таблиц). Как добавить в список таблиц нужную мне таблицу? 
p/s Галактика 7.12.
			 
			
					
				Re: Внешние атрибуты - ссылка (другие таблицы)
				Добавлено: 29 сен 2014, 17:22
				 Den
				наверное, никак.
дублировать может тока через пользовательскую аналитику его.
			 
			
					
				Re: Внешние атрибуты - ссылка (другие таблицы)
				Добавлено: 29 сен 2014, 19:20
				 Dmitry_Sol
				Вопрос конечно не в этой теме, а больше относится к программированию.
Но решаемый. Вот этот код добавляет каталог стран в список Прочих таблиц в аттрибутах.
Код: Выделить всё
#include GetAttrTable.vih
const
  coState    : Word =1458;
end;
#ifdef ComponentVersion
#component "C_EXTCLASS"
#endif
VipInterface CreateAttrRef_GalMy implements ObjCreateAttrRefPlugin licensed (FREE);
//------------------------------------------------------------------------------
Handler with replace Gal_CreateAttrRefTableMy on extensionPoint epCreateAttrRefTable (AttrRef : ObjGetAttrTable) [10] // i??< 11
Action
{
   Result := true;
   var ifc : CreateAttrRef_GalMy;
   ifc.AddAttrRefTable (AttrRef);
}
//------------------------------------------------------------------------------
Handler with replace Gal_PickTableRefMy on extensionPoint  epPickTableRef (_coTable: word; _cAttrVal: comp) [10]
Action
{
   case _coTable of
   coState :
   { var ifc : CreateAttrRef_GalMy;
     Result := not ifc.PickValueRef (_coTable, _cAttrVal);
     Result := False ;
   }
   else Result:=true ;
   end ;
}
Interface CreateAttrRef_GalMy;
Create view
From
AttrVal
,Persons
,IeHead
,HozOper
;
Public Procedure AddAttrRefTable (AttrRef : ObjGetAttrTable);
{
  AttrRef.AddTable(coState);
}
Public  Function PickValueRef (_coTable: word; _cAttrVal: comp): boolean;
var
  cStatePick: Comp;
begin
  PickValueRef := false;
  if (getFirst AttrVal where ((_cAttrVal == AttrVal.nRec)) <> tsOk)
     Exit;
  case _coTable of
	coState :
	  {
         cStatePick := AttrVal.vComp;
         RunInterFace(L_KATORG::GETSTATE,cStatePick);
	   if (getFirst KatState where ((cStatePick == KatState.nRec)) = tsOk)
 	   {
		 AttrVal.vComp     := KatState.nRec;
		 AttrVal.vString   := KatState.Name;
		 PickValueRef      :=true;
	   }
	  }
	else  // Если нет интерфейса выбора
    {
      PickValueRef:=false;
      message ('Для таблицы с кодом ' + string(_coTable) + ' нет интерфейса выбора.');
    }
  end; // case
  if  PickValueRef
  {
    var err : word;
    err := Update current AttrVal
    if err <> 0
    {
      Message ('Ошибка N ' + string(err) + ' обновления записи в таблице AttrVal.');
      exit;
    }
  }
end;
end.
Правда не уверен, что это будет работать на 7.12
 
			
					
				Re: Внешние атрибуты - ссылка (другие таблицы)
				Добавлено: 29 сен 2014, 19:49
				 Den
				точки расширения с 5го атлантиса тока кажись. Надо смотреть Галка 7,12 на каком функциклирует.
			 
			
					
				Re: Внешние атрибуты - ссылка (другие таблицы)
				Добавлено: 25 окт 2024, 14:38
				 YuryN
				Доброго времени суток, уважаемые форумчане.
Создал внешний атрибут-ссылку на пользовательскую таблицу аналитики. Заполнил таблицу. А как достать значения?
Подскажите, какими функциями работать с этим атрибутом.
			 
			
					
				Re: Внешние атрибуты - ссылка (другие таблицы)
				Добавлено: 25 окт 2024, 16:40
				 Irina_
				Здравствуйте.
Я делаю, например, так. Если кроме наименования мне надо еще что-то, например код:
Код: Выделить всё
#include ExtAttrClassInfo.vih
Var
  var1    : iExtAttrClassInfo;
  crec_, cAttr_  : Comp;
  sVA, sName, sCode_  : String;
…
sVA:=  'Имя ВА'; //наим-е ВА 
cAttr_:=  var1.ExtAttr_ID( coMoveOs, sVA ); // Nrec ВА к табл.MoveOs
sName:= '';
sCode_:= '';
If var1.ExtAttr_ValueExistsID( coMoveOs, MoveOs.Nrec, cAttr_ )
   {
      crec_:= var1.coGetAttrID( coMoveOs, MoveOs.Nrec, cAttr_ );
      If ( GetFirst SpKau Where (( crec_ == SpKau.Nrec )) = tsOk )
        {
          sName:= SpKau.Name;
          sCode_:= SpKau.Code;
         }
   }
Если нужно только наименование, то, думаю, подойдет:
Код: Выделить всё
sName:= If( ( var1.ExtAttr_ValueExistsID ( coMoveOs, MoveOs.Nrec, cAttr_ ) = False ), '', var1.sGetAttrID( coMoveOs, MoveOs.Nrec, cAttr_ ) );
 
			
					
				Re: Внешние атрибуты - ссылка (другие таблицы)
				Добавлено: 25 ноя 2024, 12:08
				 YuryN
				Спасибо, Ирина.
			 
			
					
				Re: Внешние атрибуты - ссылка (другие таблицы)
				Добавлено: 12 дек 2024, 09:29
				 Алексей
				YuryN писал(а): 25 окт 2024, 14:38
Доброго времени суток, уважаемые форумчане.
Создал внешний атрибут-ссылку на пользовательскую таблицу аналитики. Заполнил таблицу. А как достать значения?
Подскажите, какими функциями работать с этим атрибутом.
 
Объект ExtAttr.vih метод sGetAttr