Конечно описание интерфейсов всегда было сильной стороной Топ Софта
поковырявшись в исходнике выяснил следущее
pcKatstroy-возвратит нрек объекта строительства если в
pbMulti - не задействован , но при вызове они зачем то ставят true
pbClear - признак предварительной очистки маркера от ранее выбранных значений
pwMask // бит 0 - запрет выбора строек, 1 - объектов строительства, 2 - объектов сбора затрат
сохраняется все это добро в маркер 'MarkerKatStroy'
вот кусочек кода с вызовом фейса:
Код: Выделить всё
if ( RunInterface('GetKatStroy', cKS, true, true, 5) <> cmDefault )
Exit;
mkStroi := InitMarker('MarkerKatStroy', 8, 100, 10, false);
bIns := false;
if ( GetMarkerCount(mkStroi) = 0 )
{
if ( GetFirst KatStroyT where (( cKS == KatStroyT.nRec )) = tsOk )
if ( KatStroyT.LevelObj = cgObj_Object )
if ( GetFirst ObjBazeZatrT where (( cnRec == ObjBazeZatrT.cObjZatr
and cKS == ObjBazeZatrT.cKatStroy
)) <> tsOk )
{
bIns := true;
ObjBazeZatr.cBazeZatr := BazeZatr.nRec;
ObjBazeZatr.cKatStroy := KatStroyT.nRec;
}
}
else
{
for (i := 0; i < GetMarkerCount(mkStroi); i := i + 1)
{
GetMarker(mkStroi, i, cKS);
if ( GetFirst KatStroyT where (( cKS == KatStroyT.nRec )) = tsOk )
if ( KatStroyT.LevelObj = cgObj_Object )
if ( GetFirst ObjBazeZatrT where (( cnRec == ObjBazeZatrT.cObjZatr
and cKS == ObjBazeZatrT.cKatStroy
)) <> tsOk )
{
if ( not bIns )
bIns := true;
else
{
insert current ObjBazeZatr;
ClearBuffer(#ObjBazeZatr);
}
ObjBazeZatr.cBazeZatr := BazeZatr.nRec;
ObjBazeZatr.cKatStroy := KatStroyT.nRec;
}
}
}
DoneMarker(mkStroi, 'MarkerKatStroy');
Надеюсь поможет