Как бы я это реализовывал... Создал новый тип записей: "Группа фильтров". По нажатию на кнопку:
1. Проверял есть ли выбранные записи. Для этого не обязательно открывать новый диалог, можно использовать ансаппорт:
Код:
var grid = document.all["crmGrid"];
var gridBody = grid.InnerGrid;
var selected = gridBody.SelectedRecords;
if (selected.length> 0)
{
//...
}
2. Открывал бы диалог поиска группы записей (вернет нам id созданной группы)
Код:
var lookupItems = LookupObjects(lookupField, lookupStyle, lookupClass, lookupTypes, lookupBrowse, bindingColumns, additionalParams, showNew, showProp, bPopulateLookup, defaultType, searchString);
if ( lookupItems )
{
if ( lookupItems.items.length > 0 )
{
itemObjectId = lookupItems.items[0].id;
}
}
3. Теперь когда у нас есть массив записей для добавления и идентификатор группы, ассоциируем записи:
Код:
AssociateObjects(crmForm.ObjectTypeCode, crmForm.ObjectId, oTypeAssociated, oNewItemsIds, false, "", oAssociationName);
Как видно из кода, я фанат ансаппорта. Все эти функции системные, так что использовать их можно только на свой страх и риск. Зато это просто!
p.s Как асоциировать записи из кода формы:
http://www.axforum.info/forums/blog.php?b=46