Бизнес-процесс: РС ЮЛ — Завести адрес (тип 95)

Описание восстановлено из конфигурации типа процесса (process_type.config), его данных (process_type.data) и правил автоматизации (process_type_automation). Снимок 2026-07-20. Логика держится на автоматизациях JEXL и правилах автоматизации («Правила»). Документ — основа для будущей схематизации в BPMN.

Масштаб (прод, 2026-07-20): ~30 110 процессов типа 95, из них 30 081 закрыт и лишь 7 открытых. Фактическая маршрутизация ложится преимущественно в четыре ОСК: 1437 Южный Куст (~8250), 915 Уфа (~8220), 518 Оренбург (~6090), 519 Орск (~2510); остаток распределён по прочим группам (ручные переназначения).

Назначение

Завести (зарегистрировать) адрес юридического лица в адресном справочнике и направить задачу в профильную расчётную службу (ОСК — отдел сопровождения клиентов) по территории адреса, филиалу или договору контрагента.

Идентификация

  • ID типа: 95, название «РС ЮЛ - Завести адрес».

  • Иерархия: Расчётная Служба (9268) → ЮЛ (9263) → РС ЮЛ - Завести адрес (95). use_parent_props = 0 — тип использует собственные настройки и правила (не наследует от родителя).

Точки входа (как создаётся)

  • Напрямую из карточки контрагента или договора — create.in.objectTypes разрешает создание из customer и из договоров биллингов (ds, tks, bis, kzn, orsk, slv, str, ish, nft, orb, rb, okt, nn).

Статусы и переходы

Начальный статус — Открыт (10). Закрывающие — Закрыт (8), Ошибочно заведен (22), Сдано в архив (107).

Статус Разрешённые переходы

10 Открыт

→ 9 Принят, 13 Отложен, 81 Документ отправлен на почту, 22 Ошибочно заведен, 107 Сдано в архив

9 Принят

→ 8 Закрыт, 13 Отложен, 81 Почта, 22 Ошибочно заведен, 107 Архив

13 Отложен

→ 9 Принят, 8 Закрыт

81 Документ отправлен на почту

→ 10 Открыт, 9 Принят, 22 Ошибочно заведен

8 Закрыт

терминальный

22 Ошибочно заведен

терминальный

107 Сдано в архив

терминальный

Из «Открыт» напрямую в «Закрыт» нельзя — только через «Принят» или «Отложен».

Ключевые параметры

ID Тип Назначение

90

address

Адрес — территория (агломерация) для маршрутизации в ОСК; заполняется в ходе процесса

1042

list (на КА)

Удобный офис обслуживания контрагента — критерий группы

1943

list

Филиал — критерий группы; заполняется из договора РБ (param 563)

1683

list

«Инициатор мог решить самостоятельно» — обязателен перед закрытием

1030

text

ИНН — копируется с контрагента (param 248) при создании

501

datetime

Срок выполнения — порождает задачи процесса

2071

list

«Требуется созвон с клиентом» — шаг мастера создания

Целевые группы (ОСК)

Вся маршрутизация ведёт в одну из четырёх расчётных служб:

ID группы Название

915

Уфа: Отдел сопровождения клиентов

518

Оренбург: Отдел сопровождения клиентов

519

Орск: Отдел сопровождения клиентов

1437

Южный Куст: Отдел сопровождения клиентов

Автоматизация: обзор

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

  • JEXL — правила onProcessEvent.* в process_type.config.

  • Правила автоматизации — записи в таблице process_type_automation (вкладка «Правила» редактора типа).

Важно для понимания эффекта на группы: способ простановки группы различается.

  • Декларативное действие add_groups_action — добавляет группу к уже назначенным (addProcessGroups), правила складываются.

  • JEXL-вызов ProcessAction.processGroupsUpdate(…​) — заменяет весь набор групп. Кто отработал последним, тот и определил итог; предыдущие добавленные группы затираются.

Автоматизация: JEXL (onProcessEvent)

№ Событие Условие Действие

1

statusChanged:8 (закрыт)

—

Добавить текущего пользователя в исполнители (addExecutors:current)

2

paramChanged:90 (адрес)

тип в списке ЮЛ, адрес и агломерация непусты, статус = Открыт

Заменить группу по агломерации адреса (карта aglOskMap), processGroupsUpdate

3

createFinished

—

Скопировать ИНН контрагента (param 248 → param 1030), дописать ИНН в описание; если контрагент не привязан — пометка в описании

4

paramChanged:501 (срок)

—

Создать задачу процесса (тип 1)

5

paramChanged:501 (срок)

—

Создать задачу процесса (тип 2, приоритет)

6

statusChanging:8 (перед закрытием)

параметр 1683 пуст; тип в [95,10331,10746]

Блокировать переход: «Заполните параметр процесса 1683»

7

linkAdded

привязан contract:rb и Филиал (1943) пуст

Заполнить Филиал (1943) из договора (param 563 «ЦТВ»)

8

linkAdded; createdAsLink

статус = Открыт

Заменить группу по офису обслуживания КА (param 1042); если контрагент не привязан — throw «Не привязан контрагент!»

Автоматизация: правила (process_type_automation)

Одиннадцать правил, все включены.

ID Триггер Условие Действие

502

Процесс создан из мастера

Договор РБ с префиксом 72/82/75/77/85

Добавить группу 915 (Уфа)

503

Процесс создан из мастера

Договор РБ с префиксом 32/42

Добавить группу 518 (Оренбург)

504

Процесс создан из мастера

Договор РБ с префиксом 37/47

Добавить группу 519 (Орск)

505

Процесс создан из мастера

Договор РБ с префиксом 50/52/55/71/73/74/76/78/79/81/83/86/88

Добавить группу 1437 (Южный Куст)

1325

Статус меняется на 10 (Открыт)

—

Скопировать адрес из единого договора (COMMON_CONTRACT param 93) в параметр процесса 90, с заменой

1432

Процесс создан / создан из мастера

Филиал (1943) = Уфа/Октябрьский

Добавить группу 915 (Уфа)

1436

Процесс создан / создан из мастера

Филиал (1943) = Ишимбай/Салават/Стерлитамак/Нино/Нефтекамск/Москва

Добавить группу 1437 (Южный Куст)

1437

Процесс создан / создан из мастера

Филиал (1943) = Оренбург/Орск/Казань/Йошкар-Ола

Добавить группу 518 (Оренбург)

1935

Создан как связанный (из любого типа)

—

JEXL: заменить группу по офису КА (param 1042); если контрагента нет — throw «Не привязан контрагент!»

1956

Процесс создан

—

Добавить в описание чек-лист заведения адреса (нас. пункт/индекс/улица/дом, район, квартал, доступные услуги, тип здания, технология сети и ШОР, дата сдачи)

2314

Создан как связанный из типа 9384

—

JEXL: заменить группу по агломерации адреса (param 90)

Правила автоматизации created_as_link (1935, 2314) исполняются дважды — для типа нового процесса и для типа источника (событие подписано на оба). Триггер FROM_LIST (2314) сверяется с типом источника.

Простановка исполняющей группы (сводка)

Группа выбирается из четырёх ОСК по одному из критериев. Критерии живут в обеих подсистемах и частично дублируют друг друга:

Критерий Куда Триггер Способ

Префикс договора РБ

915 / 518 / 519 / 1437

создание из мастера (502-505)

добавление

Филиал (param 1943)

915 / 1437 / 518

создание (1432/1436/1437)

добавление

Офис обслуживания КА (param 1042)

915 / 518 / 1437

createdAsLink (legacy #8 и правило 1935)

замена

Агломерация адреса (param 90)

915 / 518 / 1437

legacy #2 (paramChanged:90) и правило 2314 (createdAsLink из 9384)

замена

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

Дубли и конфликты

  • Группа по офису КА (1042) задана дважды: JEXL #8 и правило 1935 — оба на createdAsLink, оба бросают «Не привязан контрагент!». Источник ошибки задвоен.

  • Группа по агломерации адреса задана дважды с разными триггерами: #2 (paramChanged:90, при заполнении адреса) и правило 2314 (createdAsLink только из 9384). При создании из нового BPMN-источника 11509 не срабатывает ни то (адреса ещё нет), ни другое (источник не 9384).

  • Копирование адреса: правило 1325 (status_changing:10, из единого договора) — отдельная механика, отвечающая за появление адреса на процессе.

Связанные процессы (создаются из этого типа)

Кнопка Тип Копирование

Запрос от ОСК

11084

связи (только для типа 95)

Сопровождение клиента (ПИСЬМО)

10231

параметр 89, описание, связи

Сопровождение юр. лица

10741

параметр 89, описание, связи

Известные проблемы

  • «Не привязан контрагент!» при создании из BPMN-заявки 11509. Правило 1935 (и его двойник onProcessEvent #8) на createdAsLink безусловно требуют прямую связь с контрагентом у нового процесса, а BPMN-виджет создаёт процесс без копирования контрагента → исключение, создание откатывается.

  • Маршрутизация по адресу не срабатывает из 11509. Правило 2314 привязано к источнику 9384 (старая «Заявка юр. лицо») и из нового BPMN-11509 не выполняется; вдобавок требует адрес на процессе в момент создания, которого при создании из виджета нет.

Заметки для схематизации в BPMN

  • Старт: создание (из заявки ЮЛ / из КА / из договора). Сразу — назначение ОСК через шлюз по критерию: договор → филиал → офис КА → агломерация адреса. Свести четыре пересекающихся критерия в один детерминированный шлюз (сейчас они противоречиво складываются/затирают друг друга).

  • На старте: добавление чек-листа в описание (сейчас правило 1956), копирование ИНН и адреса из договора.

  • Ветка «завести адрес»: заполнение адреса (param 90) → пересчёт ОСК по агломерации.

  • Гейт закрытия: обязательное заполнение параметра 1683.

  • Конечные (завершающие) статусы: Закрыт / Ошибочно заведен / Сдано в архив.