R-Service

Пользовательские коллекции в R-Service: управление большими наборами данных внутри пространств.

2025-05-29 16:23
В своём опыте работы с различными платформами для управления услугами мы часто сталкивались с необходимостью хранить различные атрибуты бизнес-логики в созданных пользователями полях.

Проблемы хранения данных и решение от R-Service

Разные платформы автоматизации по-разному решают задачу хранения и использования нормативно-справочной информации, необходимой для поддержки пользовательских сценариев:
  • предоставляют возможность интеграции с внешними источниками данных через API;
  • позволяют создавать таблицы-контейнеры, не участвующие в бизнес-логике и повышающие нагрузку на базу данных;
  • или вовсе ограничивают функциональность, исключая возможность создания таких полей и атрибутов, обосновывая это наличием всего необходимого в базовой поставке.

В R-Service для управления большими объемами данных используются Расширения UI, адаптированные под конкретные типы запросов, изменений, КЕ и другие виды записей с особыми полями, например, полями типа «Выбор». Типичный пример использования такого поля — при запросе нового ноутбука или программной лицензии пользователю необходимо выбрать центр затрат.

Организации могут сталкиваться со следующими сложностями при использовании таких полей:
  • список доступных значений может быть слишком объемным;
  • эти опции должны быть получены в реальном времени из внешних систем (например, 1С или ЭДО);
  • состав значений часто меняется, что требует регулярного обновления.

Пользовательские коллекции: концепция и назначение

«Пользовательские коллекции» — это встроенный механизм в R-Service, предназначенный для устранения типичных сложностей при работе с объемными справочными списками. Коллекции позволяют:
  • хранить большие объемы данных внутри пространств R-Service;
  • автоматизировать управление этими данными;
  • создавать пользовательские поля с возможностью выбора значений из таких коллекций.

Поскольку предполагается, что такие списки будут очень длинными, соответствующие пользовательские поля реализуются в виде полей с предложением выбора. Это означает, что пользователи смогут быстро находить нужные значения с помощью поиска, а не прокручивать весь список вручную.

Настройка пользовательской коллекции: шаг за шагом

Перед тем как добавить пользовательское «предлагающее» поле в Расширение UI, администратору необходимо заранее подготовить коллекцию значений — список опций выбора для этого поля.
Рассмотрим пример: крупная топливно-энергетическая компания (ТНК) хочет классифицировать все свои объекты эксплуатации. Для этого к записям типа «Филиал» добавляется особое поле, в котором можно выбрать тип объекта из заранее подготовленной пользовательской коллекции.
Первым шагом для дизайнера или администратора является создание новой пользовательской коллекции в соответствующей секций консоли Настроек. Такая коллекция предназначена для группировки значений, которые впоследствии будут использоваться в полях с выбором.
После создания коллекции администратор может приступить к добавлению в неё элементов — значений, которые будут доступны пользователям в полях с предложением выбора.

Добавление и редактирование элементов осуществляется вручную через консоль Настроек. Для каждого элемента необходимо указать краткое имя, по которому он будет отображаться в интерфейсе. Система R-Service автоматически сгенерирует уникальный идентификатор (ID) для каждого элемента.
При работе с большим количеством данных рекомендуется использовать API Импорт, позволяющий не только массово загружать значения в пользовательские коллекции, но и управлять ими централизованно. Для синхронизации элементов со сторонней системой можно использовать GraphQL API.
В некоторых случаях для повышения удобства пользователей стоит добавить к элементам иконки — это поможет быстрее ориентироваться в списке.

Добавить иконку можно при редактировании элемента: достаточно нажать кнопку «Изменить» под областью загрузки изображения и выбрать соответствующий файл.
После загрузки элементов в пользовательскую коллекцию необходимо создать пользовательское представление. Оно определяет, какие именно элементы коллекции будут доступны пользователю при работе с соответствующим «предлагающим» полем.
После создания представления можно приступить к добавлению особого «предлагающего» поля в нужное Расширение UI и связать его с этим представлением.

Для этого дизайнер или администратор должен:
  1. Перейти в секцию «Расширения UI» консоли Настроек.
  2. Открыть существующее расширение либо создать новое.
  3. С помощью инструмента «Фрагменты» добавить поле типа «custom-suggest».
  4. Настроить связь между этим полем и ранее созданным представлением коллекции.
Хотя описанные шаги достаточно просты, важно соблюдать их последовательность. Только так можно в результате получить поле, позволяющее пользователям с легкостью находить нужные опции.
Даже при работе с очень объемными списками, содержащими сотни или тысячи вариантов, пользователям по-прежнему легко найти нужную опцию, достаточно ввести первые несколько букв названия или описания элемента. Благодаря встроенному механизму поиска поле быстро предлагает релевантные результаты, значительно упрощая навигацию по справочным данным.

Централизованное использование пользовательских коллекций в пространствах R-Service

Важно отметить, что пользовательские коллекции можно создавать в любом типе пространства R-Service, включая Головное пространство. Коллекции и представления, созданные в Головном пространстве, автоматически становятся доступными во всех пространствах доменов поддержки.

Такая настройка позволяет централизованно управлять всеми центрами затрат организации и обеспечивать доступ к ним из любых пространств доменов поддержки.

Дизайнеры и администраторы пространств доменов поддержки могут добавить поле «Центр затрат» в соответствующее Расширение UI, связанное с шаблоном запроса или конкретным продуктом.

В результате пользователи смогут выбирать нужный центр затрат при создании типовых запросов, а менеджеры конфигураций — связывать его с определёнными типами конфигурационных единиц (КЕ).

В мультиязычных средах поддержки, где пользователи взаимодействуют с порталом самообслуживания R-Service на предпочитаемом языке, элементы пользовательских коллекций требуют перевода.

Это можно выполнить через раздел «Переводы» в консоли Настроек — по тому же принципу, что и для других типов записей в платформе. Такой подход обеспечивает корректное отображение значений коллекций на всех поддерживаемых языках и способствует более удобному пользовательскому опыту.