Ниже приведен пример использования операции ChangeDimSelection для изменения отметки элементов. В запросе передается моникёр открытого экземпляра справочника и два набора параметров, в соответствии с которыми будет изменена отметка. Сначала будут отмечены все элементы, затем отметка будет снята с непосредственных дочерних элементов элемента с ключом «1». В ответе будет сводная информация об отмеченных элементах и моникёр нового экземпляра справочника.
{
"ChangeDimSelection" :
{
"tDim" :
{
"id" : "S1!M!S!S1"
},
"tArg" :
{
"newInstance" : "true",
"elSelectOp" : "Select",
"elRelative" : "All",
"next" :
{
"elSelectOp" : "Deselect",
"elRelative" : "Children",
"elKeys" :
{
"it" :
{
"key" : "1"
}
}
}
}
}
}
{
"ChangeDimSelectionResult" :
{
"id" : "S1!M!S!S7",
"selectionInfo" :
{
"firstSelected" :
{
"n" : "Первый элемент",
"a" :
{
"it" :
[
"Первый элемент",
"1",
"1",
"0",
"A000123"
]
},
"ea" :
{
"it" :
[
{
"@v" : "Первый элемент"
},
{
"@v" : "1"
},
{
"@v" : "1"
},
{
"@v" : "0"
},
{
"@v" : "A000123"
}
]
},
"k" : "1",
"h" : "0",
"o" : "0"
},
"lastSelected" :
{
"n" : "Пятый элемент",
"a" :
{
"it" :
[
"Пятый элемент",
"5",
"5",
"0",
"A000127"
]
},
"ea" :
{
"it" :
[
{
"@v" : "Пятый элемент"
},
{
"@v" : "5"
},
{
"@v" : "5"
},
{
"@v" : "0"
},
{
"@v" : "A000127"
}
]
},
"k" : "5",
"h" : "0",
"o" : "0"
},
"selectedCount" : "4",
"schema" :
{
"k" : "4294967295",
"vis" : "1",
"applyOnlyOnce" : "0",
"onceApplied" : "0",
"applyOnRebuild" : "0"
}
}
}
}
public static ChangeDimSelectionResult ChangeSelectionWithNext(DmId moniker)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tSel = new ChangeDimSelection()
{
tArg = new ChangeDimSelectionArg()
{
//1 этап. Выделить все элементы
newInstance = true,
elRelative = DmElRelative.All,
elSelectOp = DmElSelectOp.Select,
//2 этап. Снять отметку с непосредственных дочерних элементов указанного элемента
next = new DmSelectionArg()
{
elKeys = new ElKey[1]
{
new ElKey() { key = "1"}
},
elRelative = DmElRelative.Children,
elSelectOp = DmElSelectOp.Deselect
}
},
tDim = moniker
};
//Изменение отметки
var result = somClient.ChangeDimSelection(tSel);
return result;
}
См. также: