Заместители в бизнес-процессах Битрикс24

Заместители в бизнес-процессах


Все сотрудники бывают в командировках, отпуске и на больничном, а в это время им падают задания по согласованию различных документов и все это нужно как-то делегировать, желательно без участия этого самого сотрудника. В Битрикс24 нет стандартного функционала замещения, но мы сами можем частично воспроизвести его хотя бы в бизнес-процессах. Статья ориентирована на коробочную версию Битрикс 24.

СОЗДАНИЕ ЗАМЕСТИТЕЛЯ В ПРОФИЛЕ ПОЛЬЗОВАТЕЛЯ

Идем в Администрирование —> Настройки —> Пользователи —> Список пользователей

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

Создание заместителя в профиле пользователя
Создание нового поля

Тип данных устанавливаем "Привязка к сотруднику", заполняем код поля, XML_ID и название поля на русском и английском.

Вывод Заместителя в профиле пользователя

Для вывода заместителя в профиле пользователя в блоке "Контактная информация" внизу выберите поля, которые хотите отобразить.

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

Заместитель в профиле пользователя

БЛОК СХЕМА БИЗНЕС ПРОЦЕССА. ПРИМЕР С ЗАМЕСТИТЕЛЕМ В БИТРИКС24


Блок-схема бизнес-процесса

В этом примере простое утверждение документа, это может быть договор или заявление на отпуск. Создаем процесс в Живой ленте, формируем поля документа, а затем создаем непосредственно сам процесс.

ПЕРЕМЕННЫЕ В БИЗНЕС-ПРОЦЕССЕ

Нам необходимо создать три переменные: 

  • Руководитель (или любой другой сотрудник, которого необходимо заменять в данном процессе) - тип переменной "Привязка к сотруднику" 
  • Статус руководителя - тип переменной "Строка" 
  • Зам руководителя - тип переменной "Привязка к сотруднику"

Переменные в бизнес-процессе

ДЕЙСТВИЯ БИЗНЕС-ПРОЦЕССА


Определение руководителя

Определение руководителя

Для определения руководителя используем действие "Выбор сотрудника".

  • Заголовок - Определение руководителя 
  • Тип - начальник 
  • Для пользователя - выбираем поле документа с сотрудником, для которого нужно определить руководителя для согласования документа. 
  • Уровень начальника - 1 (непосредственный начальник) 
  • Резервные пользователи - на всякий случай укажем Администратора 
  • Пропускать отсутствующих - Нет, убираем галочку 
  • Пропускать с завершенным рабочим днём - Нет, убираем галочку

руководитель

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

  • Заголовок - Руководитель 

Логирование руководителя
Вставка руководителя

  • Текст - вставляем из предыдущего действия (для этого нужно нажать кнопку "...", выбрать раздел "Дополнительные результаты" и найти нужное действие). После вставки значения в конце нужно добавить параметр ">friendly", он нужен чтобы имя отображалось в обычном виде, а не в виде ID
  • Загрузить отчет для доступа из бизнес-процесса - устанавливаем галочку

Обновление Руководителя

В этом действии мы запишем определенного Руководителя в переменную. Возьмем действие "Изменение переменных".

  • Заголовок - Обновление Руководителя 
  • Переменная - Руководитель 
  • Значение - вставляем из действия "Определение руководителя" (для этого нужно нажать кнопку "...")

Обновление руководителя

Проверка отсутствия

Действие PHP-код. Проверим на месте ли Руководитель. Данный параметр определяется на основе графика отсутствия Битрикс. Вы можете найти его в разделе "Время и отчеты".

График отсутствий


Проверка отсутствия

  • Заголовок - Проверка отсутствия Руководителя
  • PHP код:

global $DB; 

$USER_ID = {=Variable:Ruk}

if (is_array($USER_ID)) 

$USER_ID = $USER_ID[0]; 

$USER_ID = preg_replace("/[^0-9]/", '', $USER_ID); 

if (CIntranetUtils::IsUserAbsent($USER_ID)) 

$this->SetVariable('RukState', 'absent'); 

else 

$this->SetVariable('RukState', 'be_present'); 

return CBPActivityExecutionStatus::Closed;

  • {=Variable:Ruk} - переменная "Руководитель" 
  • 'RukState' - переменная "Статус руководителя" 
  • 'absent' и 'be_present' - значения, которые будут записаны в переменную "Статус руководителя" в зависимости от результата

В Битриксе появилось действие "Информация о сотруднике", с помощью него также теперь можно проверить отсутствие.

Информация о сотруднике

  • Заголовок - По умолчанию 
  • Сотрудник - указываем сотрудника, отсутствие которого нас интересует 
 Далее с помощью действия "Изменение переменных" вносим в переменную "Статус руководителя" (RukState) информацию об отсутствии

Изменение переменных

  • Заголовок - Статус руководителя 
  • Переменная - выбираем переменную "Статус руководителя" и вставляем в него значение Дополнительные результаты --> Информация о сотруднике --> Отсутствует (по графику отсутствий)

Вставка отсутствия

Действие "Информация о сотруднике" возвращает N- когда сотрудник на месте и Y - когда сотрудник отсутствует, поэтому не забудьте поправить условие ниже, если будете пользоваться этим действием.

Статус руководителя

Статус руководителя

Логируем полученный статус.

  • Заголовок - Статус Руководителя 
  • Текст - вставляем переменную "Статус Руководителя", так как мы записали в неё значение в предыдущем действии (для этого нужно нажать кнопку "..." , выбрать раздел "Переменные" и найти нужную).
  • Загрузить отчет для доступа из бизнес-процесса - устанавливаем галочку

Руководитель на месте?

Выбираем конструкцию "Условие" и указываем в каком случае Руководитель на месте, а в каком нет.

Условие отсутствия
Условие "Да"

  • Заголовок - Да 
  • Тип условия - Значение переменной 
  • Свойство или переменная - Статус руководителя 
  • Условие - равно 
  • Значение - be present (мы прописали его в PHP коде в случае присутствия)

Условие Да
Условие Нет
Условие "Нет"

  • Заголовок - Нет 
  • Тип условия - Значение переменной 
  • Свойство или переменная - Статус руководителя 
  • Условие - равно 
  • Значение - absent (мы прописали его в PHP коде в случае отсутствия)

Разветвление

Логируем результат разветвления по условию.

Руководитель На месте

  • Заголовок - Разветвление 
  • Текст - Руководитель на месте 
  • Загрузить отчет для доступа из бизнес-процесса - устанавливаем галочку

Руководитель на месте
Руководитель отсутствует
Руководитель отсутствует

  • Заголовок - Разветвление 
  • Текст - Руководитель отсутствует 
  • Загрузить отчет для доступа из бизнес-процесса - устанавливаем галочку

Определение Заместителя

Действие PHP-код. Определим Заместителя руководителя, если он указан в профиле.

Определение заместителя

  • Заголовок - Определение Заместителя 
  • PHP код:

global $DB; 

$USER_ID = {=Variable:Ruk}

if (is_array($USER_ID)) 

$USER_ID = $USER_ID[0]; 

if (substr($USER_ID,0,5)=='user_') 

$USER_ID = substr($USER_ID,5); 

$PROPERTY_CODE = "UF_ZAM"; 

$rsUsers = CUser::GetList(($by="login"), ($order="asc"), array("ID"=>$USER_ID), array("SELECT"=>array($PROPERTY_CODE))); 

if ($arUser = $rsUsers->GetNext()) 

$this->SetVariable('RukZam', 'user_'.$arUser[$PROPERTY_CODE]); 

else 

$this->SetVariable('RukZam', ''); 

 return CBPActivityExecutionStatus::Closed;

  • {=Variable:Ruk} - переменная "Руководитель" 
  • UF_ZAM - пользовательское поле, которое мы добавили в карточку пользователя в самом начале 
  • 'RukZam' - переменная "Зам руководителя". В переменную вносится Заместитель, если он есть, если же нет, то записывается пустое значение.

Зам Руководителя

  • Заголовок - Зам Руководителя 
  • Текст - вставляем переменную "Зам Руководителя", так как мы записали в неё значение в предыдущем действии (для этого нужно нажать кнопку "..." , выбрать раздел "Переменные" и найти нужную). 
  • Загрузить отчет для доступа из бизнес-процесса - устанавливаем галочку

Зам Руководителя
Уведомление руководителя

Уведомление Руководителя

Отправим уведомление Руководителю и/или его Заместителю об утверждении документа. Возьмем действие "Уведомление пользователя".

  • Заголовок - Уведомление Руководителя
  • Отправитель уведомления - выбираем сотрудника, который направляет документ на утверждение 
  • Получатель уведомления - выбираем переменную "Руководитель" и "Зам руководителя" 
  • Текст уведомления для сайта - пишем что предстоит согласовать или утвердить, при необходимости добавляем характеристики документа 
  • Тип уведомления - Персонализированное

УТВЕРЖДЕНИЕ ДОКУМЕНТА

Отправим документ на утверждение Руководителю и/или его Заместителю. Возьмем действие "Утверждение документа.

Утверждение документа

Отправим документ на утверждение Руководителю и/или его Заместителю. Возьмем действие "Утверждение документа. 

  • Заголовок - Утверждение документа 
  • Утверждают сотрудники - выбираем переменную "Руководитель" и "Зам руководителя" 
  • Тип утверждения - Любой сотрудник (если руководитель в командировке или на встрече, то сам сможет утвердить документ, если же нет, то это может сделать и заместитель) 
  • Название задания - Укажите в названии наименование документа, который нужно утвердить 
  • Описание задания - Укажите что нужно утвердить, добавьте ссылку на документ, укажите его параметры, которые влияют на решение. Полезно указывать дату и время в начале описания. 
  • Устанавливать текст статуса - Нет (т.к. мы выбрали, что утверждает любой сотрудник, то нам неинтересен процент согласования, он всегда будет 100) 
  • Текст статуса - установлен по умолчанию, можно изменить по желанию 
  • Текст кнопки подтверждения в задании - можно оставить по умолчанию, либо изменить на более подходящее выражение 
  • Текст кнопки отказа в задании - можно оставить по умолчанию, либо изменить на более подходящее выражение 
  • Показывать поле ввода комментария - по Вашему усмотрению 
  • Обязательность комментария - по Вашему усмотрению 
  • Метка для поля комментария - можно оставить по умолчанию 
  • Период утверждения - по умолчанию неограниченный период, но можно задать срок, по истечению которого процесс пойдет дальше 
  • Ограничить доступ - Нет 
  • Тип делегирования - Всем сотрудникам (нет смысла запрещать делегирование вышестоящим сотрудникам)
В данном бизнес-процессе задание на утверждение документа направляется параллельно Руководителю и Заместителю руководителя, это сделано для того, что если Руководитель отсутствует по причине командировки или находится на встрече, то он вполне может утвердить документ в мобильном приложении. Если Вы хотите направлять задание только Заместителю, то продолжайте разные ветки, а не "сливайте" задание в одно, как сделала я.

Лайфхак

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

Блок действий


Если Вам была полезна эта статья, поделитесь ей в социальных сетях. Мне будет приятно! :)


План внедрения Битрикс24

План внедрения Битрикс24

Краткий чек-лист по внедрению Корпоративного портала Битрикс24. Он поможет действовать поэтапно, ничего не упустив. Битрикс это просто! А пока сохраняем план действий для дальнейшей фиксации проделанной работы и вспоминаем все свои бизнес-процессы, которые нужно автоматизировать. Они нам пригодятся уже в первом пункте. 

Фиксация согласований

ФИКСАЦИЯ СОГЛАСОВАНИЙ И СОБЫТИЙ ИЗ БИЗНЕС-ПРОЦЕССА В СДЕЛКЕ

Когда руководитель, директор, бухгалтер согласовывают те или иные параметры Сделки или происходят важные моменты в ходе процесса, их необходимо зафиксировать в карточке Сделки. Фиксировать согласования и события можно в специально созданном поле, в виде комментариев в ленте Сделки, либо в списке.

Сопоставление полей типа список

Сопоставление полей типа "Список" в бизнес-процессах 

На днях мне понадобилось настроить автозаполнение полей сделки на основе полей Компании. Я создала процесс при создании Сделки, настроила проверку заполненности полей и при пустом значении заполнила их из Компании. Поля типа "Список" заполняться отказались :( Пришлось искать варианты. Что же я сделала?

Контроль заполнения данных

Контроль заполнения данных

Ведение клиентской базы и фиксация всех взаимодействий с заказчиками основа для дальнейшего развития и аналитики. Какие же инструменты для контроля заполнения данных предоставляет Битрикс 24?

Оставьте заявку на бесплатную консультацию

CRM-форма появится здесь



Хостинг сайта - первые 30 дней БЕСПЛАТНО!
Cookie-файлы
Настройка cookie-файлов
Детальная информация о целях обработки данных и поставщиках, которые мы используем на наших сайтах
Аналитические Cookie-файлы Отключить все
Технические Cookie-файлы
Другие Cookie-файлы
Мы используем файлы Cookie для улучшения работы, персонализации и повышения удобства пользования нашим сайтом. Продолжая посещать сайт, вы соглашаетесь на использование нами файлов Cookie. Подробнее о нашей политике в отношении Cookie.
Подробнее Понятно
Cookies