Определил метод OnGetProfileKey:
public void OnGetProfileKey(IWindow Window, Value Key) {
if (ScrUtils.Assigned(dlData.Dataset)) {
Key.Value = __global.System.ExtractUSICode(dlData.Dataset.USI);
}
}
В результате на одно окно сохраняется несколько профилей.
НО. при загрузке окна выполняется запрос без фильтрации по ключу и ВСЕГДА применяется первый профиль из выборки.
exec sp_executesql N'SELECT
[tbl_ProfileData].[ID] AS [ID],
[tbl_ProfileData].[XMLData] AS [XMLData]
FROM
[tbl_ProfileData] AS [tbl_ProfileData]
WHERE
([tbl_ProfileData].[UserID] = @P1 AND
[tbl_ProfileData].[ServiceID] = @P2)',N'@P1 varchar(38),@P2 varchar(38)','{42708305-508B-4975-B92D-2E7A695A82FA}','{43E4D9B2-2EC8-48EA-A1FE-0E1C1842E307}'