Как реализовать действия при изменении значения статуса в случае использования кластерного согласования?

От: [Ilnur |https://t.me/il_l_usion]

В реестре реализована статусная модель
Необходимо при сохранении согласования изменять статус в нашем реестре
Как подписаться на событие? Может где-то можно открыть блокли и настроить?

Например “Если документ в процессе согласования перешел в статус: “Новый-Утверждение” - Установить аналогичный статус из Статусной модели (код 04)”
https://oiv-kaliningrad.bars.group/ebko-develop/#states
https://rms.bars.group/app/#i/ad69e286-a36c-4362-9ec0-1d4bfb4fc417/master/c038eab8-1098-4767-a375-f7c780b06f94

БЦ: БЦ БФО ОИВ
Целевая система: ЕБКО
file_506.jpg|image

a.gizzatullina ответил(а):
Если вопрос в том, как реализовать перевод статусов, то:

  1. Для настройки статусной модели есть возможность добавления кастомных правил переходов статусов.
    Для их реализации необходима регистрация в коде дополнительных сервисов, имплементирующих интерфейс BarsUp.Modules.States.IRuleChangeStatus (со временем жизни Transient).

  2. В обработчиках событий есть блок
    Можно использовать данный блок для сборки блокли, которая будет выполнять необходимую вам бизнес-логику.
    screenshot-1.png|image

  3. Через кастомный сервис.

t.ovchinnikova ответил(а):
[~a.gizzatullina] Что в сервисе есть блок для статусов видел, и кастомный сервис написать не проблема. Необходимо подписаться на событие сохранения согласования (то есть после согласования), какие способы есть?

derendyaev ответил(а):
Нужно реализовать правило согласования (пример) и добавить его в настройках согласования ко всем шагам, для которых эта логика должна работать.
Для регистрации правил нужно добавить провайдер и зарегистрировать его в контейнере зависимостей:
Container.RegisterSingleton<IAgreementCustomizerDescriptionProvider, AgreementCustomizerProvider>();