...

Определение ответственных по ролям в КЭДО

Тема в разделе "ELMA365 КЭДО", создана пользователем shvetsova, 13 фев 2026.

  1. shvetsova

    shvetsova Новичок

    В решении КЭДО определено 6 ролей-участников в кадровых процессах по умолчанию:
    • Подписанты
    Определяются по штатному расписанию. Это должностные лица компании, уполномоченные подписывать кадровые документы. Они имеют права на просмотр кадровых документов и их подписание от лица работодателя.
    • Отдел кадров
    Определяются по штатному расписанию или управленческой структуре. Эти пользователи имеют права на добавление новых сотрудников и приглашение их на Портал КЭДО, могут запускать кадровые процессы на других сотрудников и просматривать документы.
    • Бухгалтерия
    Определяются по штатному расписанию или управленческой структуре. Эти пользователи имеют доступы к заявкам и документам, позволяющим им участвовать в кадровых процессах, связанных с обработкой денежных средств: расчет и начисление отпускных, командировочных, формирование расчётных листов и т.д.
    • Офис-менеджеры
    Определяются по штатному расписанию или управленческой структуре. У этих пользователей есть доступы к документам и заявкам, связанным с их участием в процессе оформления командировок: бронирование гостиниц, покупка билетов и т.д.
    • Наблюдатели КЭДО
    Определяются по штатному расписанию или управленческой структуре. Эта группа включает пользователей, которые не участвуют в кадровых процессах напрямую, но могут просматривать кадровые документы и их статусы.
    • Руководители
    Определяются по штатному расписанию или управленческой структуре. Эта группа состоит из сотрудников, руководящих подразделениями компании и имеющих права на просмотр и согласование заявок своих подчинённых.

    Кадровые роли указываются в подразделениях через должности.
    Для того чтобы в кадровом процессе найти сотрудника-подписанта или директора используется процесс "Получение сотрудников подписантов/директора", для определения пользователя по всем кадровым ролям используется процесс "Получение пользователей по ролям подразделения". В этих процессах в качестве входного параметра принимаются элементы сотрудников, булевы параметры, для определения какую именно роль искать. Входные параметры имеют пометку (INPUT). После успешного выполнения процесса в полях с префиксом OUTPUT будет результат.
    [​IMG][​IMG]

    Логика работы этих процессов универсальна для всего решения и работает по четырем основным сценариям:
    1. Поиск Отдела кадров, бухгалтерии, наблюдателей КЭДО, офис менеджеров
    2. Поиск руководителя
    3. Поиск директора
    4. Поиск подписанта
    Каждый из этих сценариев имеет свои свою логику.
    При поиске по роли главный приоритет имеет управленческая структура (УС), поэтому поиск по ней происходит в первую очередь. Если УС в организации нет или поиск по ней не дал результата, система переходит на поиск по штатному расписанию (ШР).

    Алгоритм поиска ролей Отдел кадров, бухгалтерия, наблюдатель КЭДО, офис менеджер
    [​IMG]

    Фаза 1
    Поиск по управленческой структуре (УС)
    Шаг 1. По сотруднику определяется его физическое лицо.
    Шаг 2. По физическому лицу ищутся все должности (не закрытые и не удаленные) по управленческой структуре. Если должностей нет, то начинается поиск по штатному расписанию.
    Шаг 3. Для каждой полученной должности извлекается подразделение. Далее работа идет с каждым подразделением.
    Шаг 4. Из подразделения извлекается искомая должность по роли. Если должности нет, в подразделении ищется родительское подразделение и рекурсивно повторяется поиск. Если родительского подразделения нет ни по одной должности, то поиск переходит на штатное расписание.
    Шаг 5. Из должности извлекаются физические лица (в статусе "работает") и добавляются в результат. Если в должности не оказалось физлиц, идет возврат на предыдущий шаг.
    Фаза 2
    Поиск по штатному расписанию (ШР)
    Шаг 1. По сотруднику определяется подразделение ШР.
    Шаг 2. Из подразделения ШР извлекаются искомые должности по роли. Если должностей нет, в подразделении ШР ищется родительское подразделение ШР, рекурсивно повторяется поиск. Если родительского подразделения нет, выводится задача для администратора о необходимости ручного указания исполнителя роли.
    Шаг 3. Из Должности ШР извлекаются сотрудники (в статусе "трудоустроен"). Если в должности ШР не оказалось сотрудников, идет возврат на предыдущий шаг.
    Шаг 4. Из выявленных сотрудников извлекаются их физические лица и добавляются в результат. Процесс завершается.

    Алгоритм поиска руководителя
    [​IMG]

    Поиск руководителя отличается от поиска других ролей тем, что руководителем у руководителя может быть только физлицо, состоящее на должности в вышестоящем подразделении, а также не может быть само физлицо, по которому происходит поиск.
    Если таких физлиц нет, то руководителем определяется директор.
    Фаза 1
    Определятся, является ли сотрудник руководителем по УС или ШР. Если да, то поиск идет по алгоритму ниже, если нет, то стандартный поиск выше.
    Фаза 2
    Поиск по управленческой структуре (УС)
    Шаг 1. По сотруднику определяется его физическое лицо.
    Шаг 2. По физическому лицу ищутся все должности (не закрытые и не удаленные) по управленческой структуре. Если должностей нет, то начинается поиск по штатному расписанию.
    Шаг 3. Для каждой полученной должности извлекается подразделение. Далее работа идет с каждым подразделением.
    Шаг 4. Если сотрудник является руководителем подразделения, принудительно определяется родительское подразделение. Если его нет ни для одного подразделения, начинается поиск по штатному расписанию.
    Шаг 5. Из подразделения извлекается искомая должность по роли. Если должности нет, то в подразделении ищется родительское подразделение, рекурсивно повторяя поиск. Если родительского подразделения нет, начинается поиск по штатному расписанию.
    Шаг 6. Из должности извлекаются физические лица (в статусе "работает") и добавляются в результат. Если в должности не оказалось физлиц, идет возврат на предыдущий шаг.
    Шаг 7. Дополнительно из результата исключается физическое лицо сотрудника, по которому ищем руководителя, если оно есть в результате.
    Фаза 3
    Поиск по штатному расписанию (ШР)
    Шаг 1. По сотруднику определяется подразделение ШР.
    Шаг 2. Если сотрудник является руководителем этого подразделения ШР, определяется родительское подразделение ШР.
    Шаг 3. Из подразделения ШР извлекаются искомые должности по роли. Если должностей нет, в подразделении ШР ищется родительское подразделение ШР, рекурсивно повторяя поиск. Если родительского подразделения нет, поиск заканчивается.
    Шаг 4. Из Должности ШР извлекаются сотрудники (в статусе "трудоустроен"). Если в должности ШР не оказалось сотрудников, идет возврат на предыдущий шаг.
    Шаг 5. Из выявленных сотрудников извлекаются физические лица и добавляются в результат. Процесс завершается.
    Шаг 6. Дополнительно из результата исключается физическое лицо сотрудника, по которому ищем руководителя, если оно есть в результате
    Шаг 7. Если в результате нет физических лиц, в результате указывается физическое лицо директора из юридического лица головного подразделения ШР. Процесс завершается.

    Алгоритм поиска директора
    [​IMG]

    Шаг 1. По сотруднику определяется подразделение ШР.
    Шаг 2. Из подразделения ШР извлекается юридическое лицо. Если его нет, рекурсивно ищется родительское подразделение и шаг повторяется. Если родительского подразделения ШР и юридического лица нет, процесс завершается.
    Шаг 3. Из юридического лица извлекается должность директора.
    Шаг 4. Из должности ШР извлекаются сотрудники (в статусе "трудоустроен"). Если в должности ШР не оказалось сотрудников, идет возврат на предыдущий шаг.
    Шаг 5. Из выявленных сотрудников извлекаются физические лица и добавляются в результат.

    Алгоритм поиска подписанта
    Алгоритм поиска подписанта идентичен поиску Отдела кадров, бухгалтерии, наблюдателей КЭДО, офис менеджеров, кроме того что происходит только по штатному расписанию (в управленческой структуре подписанты не указываются.)
    Шаг 1. По сотруднику определяется подразделение ШР.
    Шаг 2. Из подразделения ШР извлекаются искомые должности по роли. Если должностей нет, в подразделении ШР ищется родительское подразделение ШР, рекурсивно повторяется поиск. Если родительского подразделения нет, выводится задача для администратора о необходимости ручного указания исполнителя роли.
    Шаг 3. Из Должности ШР извлекаются сотрудники (в статусе "трудоустроен"). Если в должности ШР не оказалось сотрудников, идет возврат на предыдущий шаг.
    Шаг 4. Из выявленных сотрудников извлекаются их физические лица и добавляются в результат. Процесс завершается.

    Алгоритм в случае ненахождения ответственного
    Если после прохождения всех шагов в соответствующем алгоритме физическое лицо не найдено, то процесс ставит задачу роли Администраторы, где нужно указать физическое лицо вручную.

    Дополнительно
    Реализация сценариев выше осуществляется без перебора подразделений ШР/УС их свойств. Для этого используются одиночные элементы приложения "Плоская организационная структура JSON", хранящий в себе плоскую структуру всех подразделений и физических лиц по ролям в них соответственно для ШР и УС. Эти элементы актуализируются при каждом изменении в ШР/УС с обработкой конкурентности, а процессы "Получение сотрудников подписантов/директора" и "Получение пользователей по ролям подразделения" считывают информацию из них.