Коротко. Доступ ассистента к входящим руководителя в Directum RX даёт замещение, и история отмечает его действия «По замещению». rxmcp под учёткой ассистента показывает в rx_my_assignments только задания ассистента, задания руководителя он читает через rx_query с фильтром по исполнителю. Учёт замещения сервисом интеграции и запись через rxmcp проверьте на тестовом стенде.

Ассистент или секретарь руководителя хочет, чтобы ИИ-помощник разбирал задания и документы руководителя, и подключает его к Directum RX через rxmcp под своей учёткой. Помощник видит только то, что RX открыл этой учётке. Ниже по справке Directum RX 25.2 и коду rxmcp разбираем, как RX пускает ассистента в работу руководителя и как помощник читает его задания.

Симптом

Ассистент спрашивает, что сегодня пришло руководителю. Помощник вызывает rx_my_assignments и показывает задания самого ассистента или отвечает «Нет заданий по этим условиям», хотя в веб-клиенте у ассистента есть папка «Замещение» с входящими руководителя.

Бывает, что ассистент записан в справочнике «Ассистенты руководителей» и получает задания на подготовку проекта резолюции, но папки «Замещение» у него нет. Или замещение есть, а часть документов руководителя у ассистента не открывается.

Почему так

Замещение

Замещения ведут в одноимённом справочнике модуля «Компания», группа «Персонал». В записи указаны замещающий и замещаемый, даты необязательны; без дат замещение бессрочное. Запись появляется после задачи на оформление отсутствия или заводится вручную, и второй вариант подходит постоянному ассистенту. Справка сама упоминает помощника, который замещает руководителя и работает от его имени.

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

Справка перечисляет, чего замещение не передаёт:

  • право подписи с результатом «Утверждено», его настраивают отдельно;
  • роли «Администраторы» и «Аудиторы», а также роли для работы с модулями вроде «Ответственных за договоры»;
  • запреты доступа: запрет руководителя к ассистенту не переходит, а запрет самого ассистента сохраняется;
  • документы со строгим доступом, если разработчик не настроил для замещения делегирование;
  • права, полученные руководителем по другому замещению: передача идёт на один уровень.

Права на отдельные объекты

Права на конкретный документ или задачу выдают вручную на панели «Управление доступом» или автоматически, например при отправке на согласование. Права на задачу открывают её вместе с заданиями, а права на папку доступа к лежащим в ней документам не дают. Так ассистенту открывают отдельный договор или поручение, но новую задачу руководителя он увидит, только если права выдадут и на неё.

Справочник «Ассистенты руководителей»

Отдельный справочник «Ассистенты руководителей» в той же группе связывает руководителя и ассистента. Флажки записи определяют, что ассистент получает:

  • задания на создание поручений по резолюции и на печать согласованных документов («Выполняет функции помощника руководителя»);
  • задания на подготовку проекта резолюции («Готовит резолюцию для руководителя»);
  • право указать руководителя в поле «Выдал» поручения («Отправляет поручения от имени руководителя»);
  • отчёты и виджеты по исполнительской дисциплине за руководителя («Анализирует исполнительскую дисциплину»); RX сам включает ассистента в роль «Пользователи с расширенным доступом к исполнительской дисциплине», других ролей для ассистентов среди предопределённых нет.

Задания по этим флажкам приходят самому ассистенту, и rx_my_assignments их показывает. Доступа к входящим руководителя справка этому справочнику не приписывает. «Виртуальный ассистент» в том же справочнике это функция RX на сервисах Directum Ario, которая готовит проекты резолюций и поручений; с rxmcp она не связана.

Что пишется в историю

На вкладке «История» видны дата, пользователь, действие и компьютер, а действие замещающего отмечено «+» в колонке «По замещению». В переписке видно, кто и за кого выполнил задание; в объектной модели у задания отдельно хранятся исполнитель и тот, кто задание выполнил. Подпись за руководителя помечается как поставленная от его лица другим сотрудником, а саму историю пользователь изменить не может.

Что видит rxmcp под учёткой ассистента

rxmcp ходит в RX через сервис интеграции, а там, по справке, каждый запрос выполняется от имени переданного пользователя и с его правами. Своих прав у rxmcp нет.

rx_my_assignments выбирает задания, где исполнитель равен текущему пользователю, то есть ассистенту, и заданий руководителя там нет даже при замещении. Так же устроен rx_whats_new, а rx_list_tasks по умолчанию берёт задачи, где автор текущий пользователь. Папок, в том числе «Замещения», rxmcp не читает.

Задания руководителя читают так: rx_find_employees даёт Id руководителя, rx_query выбирает по нему задания из набора IAssignments, rx_get_assignment открывает задание с перепиской, rx_get_document_text читает вложения. В карточке задания rxmcp показывает исполнителя, и помощник видит, чьё это задание. Всё это только чтение, rx_query отдаёт до 100 записей за вызов.

Учитывает ли сервис интеграции права по замещению, справка отдельно не пишет. Ожидать этого можно, ведь запрос идёт с правами ассистента, но проверьте на тестовом стенде.

Что помощник может сделать

Запись включается настройкой RXMCP_ALLOW_WRITE=1. rx_complete_assignment принимает Id любого задания: rxmcp проверяет, что оно в работе и что это не подписание, и спрашивает подтверждение. Пустит ли RX выполнить задание руководителя, решают права ассистента. Как такое выполнение отметится в истории, справка для сервиса интеграции не описывает, проверьте и это на тестовом стенде. Поля «От» у rx_create_simple_task нет, задача через rxmcp уходит от ассистента.

Диагностика

Что смотрим Где Норма
Замещение Компания → Персонал → Замещения, фильтр «Замещающий» запись «Действующая», даты не истекли или пустые
Всё, что настроено на ассистента отчёт «Полномочия и зоны ответственности» в карточке сотрудника, строит администратор есть замещение и запись ассистента, если она нужна
Папка «Замещение» веб-клиент под учёткой ассистента внутри «Входящие» и «Исходящие» руководителя
Документ не открывается панель «Управление доступом», значок строгого доступа для ассистента нет «Доступ запрещен»; права по замещению на панели не видны
Допуск к сервису интеграции роль «Пользователи сервиса интеграции» ассистент в роли, по умолчанию в ней все пользователи
Задания руководителя rx_query по IAssignments с Id руководителя тот же список, что во «Входящих» руководителя

Что сделать

  1. Для входящих руководителя нужно замещение, для отдельных документов и задач хватит прав на них. Резолюции и поручения от имени руководителя настраивают в «Ассистентах руководителей» вместе с замещением.
  2. Попросите администратора создать замещение: в поле «Замещающий» ассистент, в поле «Сотрудник» руководитель, даты пустые для постоянного ассистента, в «Описании» цель. Если RX предупредит о ролях для модулей, включите ассистента в эти роли.
  3. Если ассистент должен видеть документы руководителя со строгим доступом, разработчик программно включает для замещения делегирование строгого доступа, а в конфигураторе Directum Launcher задают параметр ALLOW_STRICT_ACCESS_DELEGATION_IN_SUBSTITUTION. Решайте это со службой ИБ: такие документы станет читать и помощник.
  4. Подключите rxmcp под учёткой ассистента, как описано в статье MCP-сервер для Directum RX, и проверьте rx_whoami. Запись пока не включайте.
  5. На тестовом стенде сверьте выборку rx_query (параметры ниже) с папкой «Замещение».
  6. Запись включайте после проверки: выполните через rxmcp тестовое задание замещаемого и посмотрите историю и переписку.
  7. При смене ассистента закройте замещение и поправьте запись в «Ассистентах руководителей». Доступ помощника пропадёт вместе с правами ассистента.

Запрос, которым помощник собирает задания руководителя в работе:

rx_find_employees   query=<фамилия руководителя>
rx_query            entity=IAssignments
                    filter=Performer/Id eq <Id> and Status eq 'InProcess'
                    select=Id,Subject,Deadline,IsRead
                    expand=Author($select=Id,Name)
                    orderby=Deadline asc

Уведомления читаются тем же запросом к INotices, исходящие задачи руководителя запросом к ITasks с фильтром Author/Id eq <Id>.

Чего не делать

  • Не заводить для ИИ сервисную учётку с полными правами. Помощник увидит всё, что открыто этой учётке, в обход запретов для ассистента, а история запишет все действия на неё, и не понять, кто из людей что попросил. Документы со строгим доступом без явных прав закрыты даже для ролей «Администраторы» и «Аудиторы», так что полного обзора такая учётка не даёт.
  • Не отдавать ассистенту или помощнику пароль руководителя. История запишет всё на руководителя без отметки «По замещению». При входе по паролю rxmcp хранит пароль на машине ассистента, в файле настроек или в связке ключей ОС, и укравший его войдёт под руководителем и в веб-клиент.
  • Не отправлять документы с ограниченным доступом в облачную модель без решения ИБ. Всё прочитанное rxmcp ИИ-клиент передаёт провайдеру модели. Справка Directum для разработчиков просит следить, чтобы документы со строгим доступом не уходили в другие системы, где их могут хранить без защиты. Если ИБ не разрешает внешнего провайдера, для таких документов остаётся локальная модель внутри контура, как в демо. Подробнее в статье ИИ-помощник и СЭД: что уходит наружу.
  • Не подставлять в RXMCP_USER_ID Id руководителя. Настройка нужна, когда rxmcp не находит пользователя по логину. С чужим Id rx_whoami и rx_my_assignments заговорят от лица руководителя, хотя запросы идут под учёткой ассистента, и помощник перестанет различать, чьи это задания.