Если Вы использовали статьи KB Article, то возможно, сталкивались с подобной проблемой. Рассмотрим на примере. Есть обращение, у которого на вкладке Notes and Article вставлен раздел Knowledge Base Article, где Вы можете в Lookup’е выбрать статью и, отметив checkbox «Show Article», отобразить статью в маленьком iFrame. Как оказалось, этот раздел всего лишь отображает страницу «/CS/articles/viewer/default.aspx» и передает Article ID как параметр. Эту зону нельзя подредактировать, а просматривать статью в таком маленьком окошке совсем неудобно.

С помощью некоторых изменений, уберем этот раздел совсем, добавим новую вкладку KB Article и создадим такой же функционал на эту вкладку.
Сначала следует экспортировать кастомизацию сущности Incident (Case) и внести в нее коррективы. Открываем файл customization.xml и удаляем часть кода, который передает Article ID в раздел Knowledge Base Article.

Также удаляем row, которые содержат этот раздел

Сохраняем, импортируем в MS CRM и публикуем. Важно хранить бэкапы кастомизаций на случай ошибки.
Через CRM создайте в сущности Incident новую вкладку с именем KB Article, добавьте раздел с именем Knowledge Base Article, в него поместите поле kbarticleid,а на OnChange этого поля пропишите следующий код:
DisplayKBArticle();
function DisplayKBArticle()
{
var oKBArticle = crmForm.all.IFRAME_KBArticle;
if (oKBArticle != null)
{
var oKBId = crmForm.all.kbarticleid.DataValue;
if (oKBId == null)
{
oKBArticle.src = oKBArticle.url;
}
else
{
oKBArticle.src=»/» + ORG_UNIQUE_NAME + «/CS/articles/viewer/default.aspx?IsRestrictedMode=true&id=» + oKBId[0].id;
}
}
}
Включите событие и сохраните. Добавьте в этот же раздел iFrame с такими настройками:
Name: IFRAME_KBArticle
URL: /_static/blank.htm
На вкладке Dependencies добавьте Knowledge Base Article.
Включите событие OnLoad сущности Incident и добавьте в него следующий скрипт:
if (crmForm.FormType == 2)
{
DisplayKBArticle();
}function DisplayKBArticle()
{
var oKBArticle = crmForm.all.IFRAME_KBArticle;
if (oKBArticle != null)
{
var oKBId = crmForm.all.kbarticleid.DataValue;
if (oKBId == null)
{
oKBArticle.src = oKBArticle.url;
}
else
{
oKBArticle.src=»/» + ORG_UNIQUE_NAME + «/CS/articles/viewer/default.aspx?IsRestrictedMode=true&id=» + oKBId[0].id;
}
}
}
Сохраняем, публикуем и открываем запись с Обращением, получаем такую вот вещь:

Прикладываю customization.xml, в котором содержится кастомизация только сущности Incident. Не забывайте, что если у вас были внесены какие-то изменения в данную сущности, то после публикации этой кастомизации они пропадут.
За основу данного поста взят пост Display KB Article Your Way.
