Создание статей базы знаний
Требуемые роли:
- Создание – admin, knowledge_admin, knowledge_agent.
- Чтение – admin, service_catalog_manager, knowledge_admin; knowledge_agent, если этот пользователь является ответственным или входит в группу, ответственную за указанную Категорию базы знаний или Базу данных контента, или имеет право на редактирование указанной Категории базы знаний. Пользователи с другими ролями могут просматривать только опубликованные статьи с внешней Категорией объекта.
- Изменение – admin; knowledge_admin, если статья не опубликована; knowledge_agent, если этот пользователь является ответственным или входит в группу, ответственную за указанную Категорию базы знаний или Базу данных контента, или имеет право на редактирование указанной Категории базы знаний.
- Удаление – admin.
В системе доступны два способа создания и редактирования статьи, для каждого из которых, в зависимости от выбранного формата, предусмотрен отдельный редактор:
- При формате Блоки работа со статьей происходит в Редакторе статей. Ее содержание разбивается на блоки разных типов.
- При формате HTML работа со статьей происходит в HTML-редакторе на форме статьи.
На портале статья будет отображаться одинаково вне зависимости от ее формата.
Статью формата Блоки в любом статусе, кроме Опубликована, можно конвертировать в HTML. Для этого выберите Изменить формат на HTML в бургер-меню на форме нужной статьи. Все блоки статьи, включая добавленные изображения, конвертируются без изменений в их отображении и добавляются в поле Содержание статьи.
Обратите внимание, что обратная конвертация (из HTML в Блоки) невозможна.
Блоки
Чтобы создать статью в формате Блоки, выполните следующие действия:
- Перейдите в раздел База знаний → Все статьи или Мои статьи.
- Нажмите Создать на представлении списка. Вы также можете открыть форму существующей статьи и нажать Создать там.
- Заполните поля статьи. В поле Формат выберите Блоки.
- Нажмите Сохранить.
После создания статьи вы можете перейти к ее наполнению в Редакторе статей. Для этого нажмите кнопку Открыть редактор в правом верхнем углу формы статьи.
Редактор статей сохраняет изменения содержания статьи автоматически. Тем не менее, на портале они появляются только после их публикации.
Использование блоков
Чтобы добавить блок статьи в Редакторе статей, выполните следующие шаги:
-
Нажмите клавишу
/. Вы также можете навести указатель на строку с подсказкой о создании блока или существующий блок и нажать . Чтобы создать блок типа Контент напрямую, нажмите строку с подсказкой о создании блока. -
Выберите необходимый тип блока. По умолчанию доступны следующие типы:
- Используйте блок Контент для добавления текста и изображений.
- Используйте блок Заголовок для добавления в статью заголовков. Вы можете использовать добавленные заголовки для навигации по статье.
- Используйте блок Разделитель для добавления в статью разграничительной линии.
к сведениюПользователи с ролью admin могут настроить другие типы блоков.
-
Для блоков типа Контент и Заголовок добавьте содержимое.
Чтобы отобразить опции форматирования Контента, нажмите . Вы также можете отформатировать уже добавленный текст, выделив его и выбрав нужную опцию в появившемся меню.
-
Нажмите клавишу
Enterили любое место вне поля, чтобы сохранить блок вместе с его содержимым.
Созданные блоки добавляются в таблицу Блоки статей (article_block). Все изменения, внесенные в блоки через Редактор статей, синхронизуются с таблицей. На форме статьи есть связанный список Блоки с записями таблицы Блоки статей (article_block), отфильтрованных по этой статье. Через связанный список вы можете Создать новые блоки или Удалить имеющиеся.

Создание пользовательских типов блоков
Требуемая роль: admin.
Вы можете добавлять свои типы блоков, используя внешние скрипты. Для этого необходимо создать запись скрипта и затем добавить ее в запись нового блока:
- Откройте запись таблицы Типы блоков статей (article_block_type).
- Нажмите Создать.
- Заполните поля формы.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
После этого созданный блок будет доступен в редакторе статей.
Поля формы Типы блоков статей
| Поле | Обязательно | Описание |
|---|---|---|
| Наименование | Да | Укажите название блока. |
| Тип поля ввода | Нет | Укажите тип поля для ввода данных. Доступные опции:
|
| Внешний скрипт | Да | Добавьте ссылку на запись из таблицы Внешние скрипты (sys_script_include), созданную для нового блока. |
Внутри разметки допускается использование только инлайн-стилей (style="...").
Пример 1. Подсказка

/**
* Преобразует значение блока подсказки (Hint) в его HTML-представление.
* @param {string} value - Экранируемый текст подсказки.
* @returns {string} - HTML-строка с элементом подсказки.
*/
function convertHintToHtml(value) {
return `
<div style="margin: 20px 0; padding: 15px 20px; background-color: #f8f9fa; border-left: 4px solid #0d6efd; border-radius: 4px; font-family: sans-serif; font-size: 14px; line-height: 1.5; color: #333;">
<strong style="color: #0d6efd;">Подсказка:</strong> ${value}.
</div>
`;
}
Пример 2. Код

Внешний скрипт для кода
/**
* Преобразование JavaScript-кода в HTML с подсветкой синтаксиса
* @param {string} js - JavaScript-код.
* @returns {string} - HTML с подсветкой кода JavaScript.
*/
function convertMarkdownToHtml(js) {
js = js
.replace(/ /g, '\n')
.replace(/ /g, '\r')
.replace(/	/g, '\t')
.replace(/"/g, '"')
.replace(/"/g, '"')
.replace(/'/g, "'")
.replace(/'/gi, "'")
.replace(/'/g, "'")
.replace(/&/g, '&');
const styles = {
keyword: 'color:#C586C0;',
string: 'color:#CE9178;',
number: 'color:#B5CEA8;',
comment: 'color:#6A9955;',
constant: 'color:#569CD6;',
function: 'color:#DCDCAA;',
property: 'color:#9CDCFE;',
operator: 'color:#D4D4D4;'
};
const keywords = new Set([
'const',
'let',
'var',
'function',
'return',
'if',
'else',
'for',
'while',
'do',
'switch',
'case',
'break',
'continue',
'new',
'class',
'extends',
'import',
'export',
'from',
'default',
'async',
'await',
'try',
'catch',
'finally',
'throw',
'typeof',
'instanceof',
'in',
'of',
'this',
'super',
'delete',
'void',
'yield',
'static',
'get',
'set'
]);
const constants = new Set([
'true',
'false',
'null',
'undefined',
'NaN'
]);
const tokenRegex =
/\/\/[^\n]*|\/\*[\s\S]*?\*\/|`(?:\\[\s\S]|[^`\\])*`|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\b\d+(?:\.\d+)?\b|===|!==|==|!=|=>|<=|>=|\+\+|--|\+=|-=|\*=|\/=|&&|\|\||\?\?|\b[A-Za-z_$][\w$]*\b/g;
let result = '';
let lastIndex = 0;
let match;
while ((match = tokenRegex.exec(js)) !== null) {
const start = match.index;
const value = match[0];
if (start > lastIndex) {
result += js.slice(lastIndex, start);
}
const type = getTokenType(value, start);
if (type) {
result += `<span style="${styles[type]}">${value}</span>`;
} else {
result += value;
}
lastIndex = tokenRegex.lastIndex;
}
if (lastIndex < js.length) {
result += js.slice(lastIndex);
}
return `<pre style="
margin:0;
padding:20px 24px;
overflow:auto;
background:#1E1E1E;
color:#D4D4D4;
border-radius:10px;
font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;
font-size:14px;
line-height:1.6;
tab-size:4;
white-space:pre;
"><code>${result}</code></pre>`;
function getTokenType(value, position) {
if (
value.startsWith('//') ||
value.startsWith('/*')
) {
return 'comment';
}
if (
value.startsWith('"') ||
value.startsWith("'") ||
value.startsWith('`')
) {
return 'string';
}
if (/^\d/.test(value)) {
return 'number';
}
if (constants.has(value)) {
return 'constant';
}
if (keywords.has(value)) {
return 'keyword';
}
if (
/^(===|!==|==|!=|=>|<=|>=|\+\+|--|\+=|-=|\*=|\/=|&&|\|\||\?\?)$/.test(value)
) {
return 'operator';
}
const before = js.slice(0, position);
const after = js.slice(position + value.length);
if (
/\bfunction\s*$/.test(before)
) {
return 'function';
}
if (
/^\s*\(/.test(after)
) {
return 'function';
}
if (
/^\s*:/.test(after)
) {
return 'property';
}
return null;
}
}
Пример 3. IFrame

/**
* Конвертация значения блока IFrame в HTML.
* @param {string} value - ссылка в виде текста
* @returns {string} - строка HTML с элементом IFrame
*/
//eslint-disable-next-line no-unused-vars
function convertIFrameToHtml(value) {
return `<iframe src="${value}" style="width: 100%; height: 720px;"></iframe>`;
}
Действия с блоками
Чтобы отредактировать блок, нажмите его и внесите необходимые изменения. Затем нажмите клавишу Enter или любое место вне блока статьи, чтобы применить изменения.
Добавленные блоки можно свободно перемещать по статье, меняя порядок их отображения. Для этого наведите указатель на нужный вам блок и найдите иконку меню блока . Переместить блок с ее помощью можно двумя путями:
- Нажмите иконку и, удерживая ее, перетащите блок в нужное место.
- Нажмите иконку без удерживания, чтобы открыть меню блока. В нем выберите нужное действие: Переместить выше (неактивно для самого верхнего блока) или Переместить ниже (неактивно для самого нижнего блока).
Через меню вы также можете Удалить блок. Обратите внимание, что удаленный блок невозможно восстановить.
На блоки можно оставлять Комментарии. Для этого выполните следующие шаги:
- Наведите указатель на блок и нажмите иконку .
- На открывшейся справа панели Активность по блоку введите сообщение в поле Комментарии и нажмите Отправить.
Блоки с комментариями отмечены в Редакторе статей иконкой со счетчиком комментариев. Нажмите ее, чтобы посмотреть комментарии в Активности по блоку. Вы также можете просматривать Активность по блоку при его редактировании, нажав иконку . Помимо комментариев, Активность по блоку содержит Историю изменений блока.
Действия со статьей
В Редакторе статей вы можете:
- Открыть настройки , чтобы отредактировать поля статьи, не возвращаясь на ее форму.
- Статус статьи в редакторе можно поменять только с помощью кнопок Опубликовать и (Снять с публикации).
- Добавить статью в избранное , чтобы переходить в нее напрямую из навигатора. Статью затем можно убрать из избранного, нажав иконку еще раз.
- Воспользоваться навигацией по заголовкам. Для этого нажмите иконку в левой верхней части редактора, а затем заголовок нужного вам раздела на открывшейся слева панели Навигация по статье.
- Посмотреть Активность по статье – Историю ее изменений и Комментарии, оставленные к ней.
- Вернуться на форму статьи .
- Добавить, просматривать и удалять вложения.
Нажмите Опубликовать в правом верхнем углу редактора, чтобы статья стала доступной на портале. Статус статьи поменяется на Опубликована.
Вы можете отредактировать статью после публикации. Внесите необходимые изменения и нажмите Опубликовать изменения в правом верхнем углу редактора, чтобы обновить статью на портале.
Чтобы снять статью с публикации, нажмите . Статья перейдет в статус Скрыта. При необходимости после этого вы вновь можете Опубликовать статью.
HTML
Чтобы создать статью в формате HTML, выполните следующие действия:
- Перейдите в раздел База знаний → Все статьи или Мои статьи.
- Нажмите Создать на представлении списка. Вы также можете открыть форму существующей статьи и нажать Создать там.
- Заполните поля статьи. В поле Формат выберите HTML.
- Нажмите Сохранить.
В поле Содержание вы можете добавлять форматируемый текст и изображения как в визуальном редакторе, так и через исходный код.
Чтобы отобразить созданную статью на портале, измените ее Статус на Опубликована. Опубликованную статью можно скрыть с портала, переведя ее в статус Скрыта.
Поля формы Статья
| Поле | Обязательно | Описание |
|---|---|---|
| Номер | Да | Это поле заполняется автоматически и имеет формат ART0000000. |
| Наименование | Да | Укажите имя для статьи. |
| Продукт | Нет | Выберите продукт, с которым связана статья. |
| Модули продукта | Нет | Выберите модули продукта, с которыми связана статья. Это поле очищается, если очищается или изменяется значение поля Продукт. |
| База данных контента | Да | Укажите базу данных контента, с которой связана статья. |
| Категория базы знаний | Да | Укажите категорию базы знаний, в которой эта статья будет отображаться на портале. |
| Класс элемента контента | Да | Определите класс статьи. Например:
Дополнительные сведения смотрите в разделе Создание классов элементов контента. |
| Категория объекта | Нет | Это поле определяет доступ к категории в соответствии с выбранным Классом элемента контента. Если класс является внешним, категория также будет внешней. Это поле заполняется автоматически после указания значения поля Класс элемента контента. Доступные опции:
|
| Кем изменено | Нет | Поле заполняется автоматически именем последнего пользователя, внесшего изменения в статью. |
| Формат | Нет | Выберите формат статьи. Доступные опции:
|
| Содержание | Нет | Добавьте содержание статьи. Поле отображается, только если выбран формат HTML. |
| Рабочие заметки | Нет | Добавьте комментарии к статье. Для статей формата Блоки, помимо ленты активности формы, они будут отображаться на панели Активность по статье в Редакторе статей. |
| Статус | Нет | Определяет статус статьи. Доступные опции:
При удалении статьи с формы связанной услуги на форме статьи очищается поле Услуга, статус статьи при этом не меняется. Перевод статьи в статус Черновик и Скрыта невозможен, если текущая статья связана с Услугой и является для нее единственной опубликованной статьей типа SLA или Описание услуги внешней спецификации или единственной опубликованной статьей внутренней спецификации. |
| Услуга | Нет | Выберите услугу, с которой связана статья. При удалении ссылки на услугу запись о текущей статье также стирается из записи этой услуги. |
| Владелец | Нет | Поле автоматически заполняется именем владельца выбранной услуги. |
| Ответственная группа | Да/Нет | Укажите группу, ответственную за статью. Поле необязательно, если указан Ответственный. |
| Ответственный | Да/Нет | Укажите пользователя, ответственного за статью. Поле необязательно, если указана Ответственная группа. |
| Метаинформация | Нет | Заполните поле метаданными. |
| Кем создано | Нет | Поле заполняется автоматически именем пользователя, создавшего статью. |
Вы можете добавить поля Связанные инциденты, Связанные изменения и Связанные проблемы на форму, чтобы просматривать связанные со статьей записи ITSM. Подробнее читайте в статье Представление формы.
На форму статьи вынесен виджет ленты активности, где вы можете просматривать Историю ее изменений, а также оставленные к ней Рабочие заметки (Комментарии в Редакторе статей).