C помощью EntityRule. В примере ниже управление видимостью относительно конкретного объекта задается для вкладки (Вам мунжно по аналогии сделать для кнопки).
X++:
<RibbonDiffXml>
<CustomActions>
<CustomAction Id="Sample.Form.account.CustomTab.CustomAction" Location="Mscrm.Tabs._children" Sequence="40">
<CommandUIDefinition>
<Tab Id="account.Form.CustomTab1" Command="Sample.Form.account.CustomTab" Title="Супер вкладка" Sequence="40">
<Scaling Id="Sample.Form.account.CustomTab.Scaling">
<MaxSize Id="Sample.Form.account.CustomTab.FirstGroup.MaxSize" GroupId="Sample.Form.account.CustomTab.FirstGroup" Sequence="10" Size="LargeMedium" />
</Scaling>
<Groups Id="Sample.Form.account.CustomTab.Groups">
<Group Id="Sample.Form.account.CustomTab.FirstGroup" Command="Sample.Form.account.FirstGroup" Sequence="10" Title="Первая группа" Template="Mscrm.Templates.3.3">
<Controls Id="Sample.Form.account.CustomTab.FirstGroup.Controls">
<Button Id="Sample.Form.account.CustomTab.FirstGroup.FirstButton" ToolTipTitle="Кнопка 1 заголовок" ToolTipDescription="Кнопка 1 описание" Command="Form.account.CustomButton" Sequence="10" LabelText="Кнопка 1" Alt="Кнопка 1" Image16by16="$webresource:new_cub16.png" Image32by32="$webresource:new_cub32.png" TemplateAlias="o1" />
</Controls>
</Group>
</Groups>
</Tab>
</CommandUIDefinition>
</CustomAction>
</CustomActions>
<Templates>
<RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
</Templates>
<CommandDefinitions>
<CommandDefinition Id="Sample.Form.account.CustomTab">
<EnableRules>
<EnableRule Id="Mscrm.Enabled" />
</EnableRules>
<DisplayRules>
<DisplayRule Id="Mscrm.CanWriteaccount" />
</DisplayRules>
<Actions />
</CommandDefinition>
<CommandDefinition Id="Sample.Form.account.FirstGroup">
<EnableRules>
<EnableRule Id="Mscrm.Enabled" />
</EnableRules>
<DisplayRules>
<DisplayRule Id="Mscrm.CanWriteaccount" />
</DisplayRules>
<Actions />
</CommandDefinition>
<CommandDefinition Id="Form.account.CustomButton">
<EnableRules>
<EnableRule Id="Mscrm.Enabled " />
</EnableRules>
<DisplayRules>
<DisplayRule Id="Mscrm.CanWriteaccount" />
</DisplayRules>
<Actions>
<JavaScriptFunction Library="$webresource:new_alert.js" FunctionName="show" />
</Actions>
</CommandDefinition>
</CommandDefinitions>
<RuleDefinitions>
<TabDisplayRules>
<TabDisplayRule TabCommand="Sample.Form.account.CustomTab">
<EntityRule EntityName="account" Context="Form" AppliesTo="PrimaryEntity" />
</TabDisplayRule>
</TabDisplayRules>
<DisplayRules />
<EnableRules />
</RuleDefinitions>
<LocLabels/>
</RibbonDiffXml>
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога