Программирование бизнес процессов битрикс 24

Время на прочтение
6 мин

Количество просмотров 16K

На работе я занимаюсь поддержкой пользователей и обслуживанием коробочной версии CRM Битрикс24, в том числе и написанием бизнес-процессов. Нужно отметить, что на самом деле я не «чисто» специалист по Битриксу, а это одна из моих обязанностей. На самом деле обязанностей у меня очень много, поэтому почти всегда делать приходится не как хотелось бы, а быстро и чтобы работало, поскольку времени катастрофически не хватает (я уверен, что в таких условиях работаю не я один). На текущий момент у меня двухлетний опыт работы с этой CRM (с самим Битриксом знаком более 10 лет) и я хотел бы рассказать вам о части ошибок, которые я допустил при написании, тестировании и обслуживании бизнес-процессов, из-за которых мне приходилось и приходится постоянно помогать пользователям, вносить правки, а то и вовсе переписывать бизнес-процессы с нуля.

Для начала нам нужно поверить в то, что любая стабильность относительна, а нахождение в зоне комфорта временное. Сотрудники будут приходить и уходить (даже те, кто сидит на очень хорошем месте), отделы переформировываться, штат увеличиваться и уменьшаться, открываться и закрываться подразделения и т.п. Когда я учился в институте, то преподаватель по сопромату рассказывал нам о том, что при изучении сопромата в России за базу берётся статическое состояние, а потом мы учим динамику, а вот в некоторых других странах за базу берётся динамика, а статика рассматривается как частный случай динамики. Лично мне такой подход нравится больше, он не даёт возможности тешить себя тем, что «сейчас всё устаканилось и ничего меняться не будет». Просто поверьте в это, вам же будет легче потом.

Лирическое отступление: прежде чем рассказывать о том, как писать бизнес-процессы «с задатком на будущее» вы должны для себя прикинуть иерархию вашей фирмы чтобы понять, кто вообще может просить или требовать у вас написать или изменить бизнес-процесс. Один раз ко мне подошёл руководитель одного подразделения и говорит: нам нужен бизнес-процесс для взаимодействия с другими подразделениями, а то у нас всё плохо. А у них реально всё плохо тогда было, даже скорее ужасно. Я три или четыре рабочих дня писал этот БП, сделал почти идеально, а другие подразделения взяли и заявили, что бизнес-процесс этот чушь, не удобный и работать с ним они не будут от слова совсем. Я сижу, не парюсь (это же не моя проблема, там на уровне генерального директора должны были уладить), а потом приходит тот руководитель ко мне и говорит: за работу спасибо, процесс можешь удалять, генеральный позицию тех подразделений принял. И так было много раз по самым разным вопросам и изменениям. С тех пор бизнес-процессы я пишу только тогда, когда директор с этим согласен.

Утром инструкция, вечером блок-схема, а бизнес-процесс завтра

Теперь вернёмся к нашим бизнес-процессам. Иногда они бывают совсем маленькие, буквально на 1-2 клика, чтобы просто зафиксировать то, что кто-то попросил разрешение сделать что-то, а кто-то разрешил, чтобы не бегать с бумажками (и не потерять их). Вроде бы очевидно: подчинённый спрашивает у руководителя можно или нельзя, а руководитель нажимает на соответствующие кнопки. Просто? Да ничего подобного! А если руководителя нет? А если сейчас нужно другого было выбирать? А если был и уехал не подтвердив? А если заполнил не так? А если ещё что-то? А если… И это всё вопросы, с которыми мы постоянно боремся и делаем процесс лучше, но только до тех пор, пока не приходит новый сотрудник. Как приходит то всё начинается заново: те же вопросы, те же ошибки и т.п. Мой руководитель постоянно ругает меня за то, что я делаю мало комментариев и инструкций, но уж очень нравится мне наступать на грабли, а иногда и попрыгать по ним можно. Шучу :-) Теперь я буду поступать иначе: сначала не блок схему (как предлагает руководство пользователя), а обычную инструкцию. Если её все поняли и с ней все согласны, то потом уже рисуем блок-схему и если и с ней согласны, то пишем бизнес-процесс. Это сейчас он может быть маленьким, а со временем может разрастись до такой степени, что вы реально будете обсуждать покупку 4К телевизора с диагональю «побольше» чтобы просто увидеть сам процесс целиком и посмотреть нет ли ошибок хотя бы в логике. Кстати прежде чем приступать к написанию неплохо будет заручиться подписями всех руководителей, чьи подразделения будут пользоваться этим процессом, чтобы потом не было жалоб на неудобную работу, неправильную логику и т.п.

Должность остаётся, а человек меняется

Именно эту фразу я теперь буду ставить во главу угла при написании бизнес-процессов. Действительно практика показывает, что должность есть, просто на ней меняются люди. Как была должность финансового директора, так и есть. Как был главный бухгалтер, так и остался. И руководитель управленческого учёта никуда не делся. А про руководителей отделов продаж я вообще молчу. Другое дело, что должности никуда не делись. Обычно же как: сидишь, работаешь, а тут тебе новость «Маша уходит, Таня приходит». Нужно сразу же судорожно вспоминать в каких бизнес-процессах человек участвует, где нужно одного на другого заменить и т.п. А могут ведь иначе сказать, просто из серии «Маша уходит». Ты человека удалил отовсюду, сидишь себе дома на больничном/в отпуске или едешь куда-нибудь, а тут звонок «у нас тут Таня вышла, только доступа нет почему-то никуда». Ну правильно, её и в Битрикс то не добавили ещё, не то что роли в бизнес-процессах прописали.

Так действительно проще, если думать не о конкретных людях, а о должностях, которые они сейчас занимают. Да, в бизнес-процессе будет 1-2 лишних блока, но зато когда человек поменяется не нужно будет вспоминать где и за что он отвечал, нужно будет просто заменить значение переменной с одного человека на другого и всё.

Правильные права доступа по отделам это очень важно

Гипотетически структура компании полностью вертикальна: Собственник – Директор – Главный бухгалтер – Руководитель отдела – Сотрудник (или как-то так). А может быть горизонтальная: Собственник – Директор – множество отделов. А может быть ещё какая-нибудь.

Раньше я устанавливал права для каждых конкретных сотрудников. Например: есть бухгалтер Лена, она должна видеть все оплаты и отгрузки. Заходим в соответствующие бизнес-процессы и прописываем там нашу Лену. А вдруг её переведут или она уволится? Тогда самый простой способ это давать нужные доступы всем тем, кто находится в группе «Руководители», но это неправильно, поскольку тогда процессы и файлы сотрудников будут доступны не только их руководителям и бухгалтерии, но и руководителям других отделов.

Вариантов тут множество, лично я в последнее время остановился на работе с группами. Создаём группу, добавляем в неё сотрудников (или одного сотрудника) и готово. Больше не нужно переживать по поводу того, что старый сотрудник видит много, а новый мало: просто добавляем в группу или исключаем её. Быстро и просто.

Сохраняем все данные, комментарии и примечания

Если вы идёте к человеку с бумажной служебной запиской, то он не может устно одобрить её, он ставит подпись. Но может устно дать развёрнутый комментарий, в том числе поставить условие вида «я подпишу, но если будет получаться «вот так» то не делай/не покупай». А если подписать нужно у двоих, то, в принципе, можно пересказывать. Именно поэтому нужно сохранять вообще всё и, самое главное, никогда не прописывать «жестко» кто поставил комментарий, а всегда брать из переменной. В первое время я этим очень грешил: где должен директор подтверждать комментарии от его имени, где главбух то от его имени. А потом у людей спрашивают, почему запретили или подходят что переделали, а они и сами не в курсе, что что-то кому-то запрещали :-)

Записываем абсолютно все файлы

Раньше мы записывали только «финальные» файлы, но потом стали не часто, но все же, сталкиваться с тем, что люди начинают спорить на тему «я это не загружал», «когда я подтверждал файл другой был» и т.п. Или вообще стали возвращаться к бизнес-процессу через 2-3 месяца после закрытия.

Тестовые проходы – максимально объемно, но не долго

Буду честным и скажу, что когда ты просишь сотрудников протестировать бизнес-процессы то им плевать. Кому-то лень (хотя сидит ничего не делает), у кого-то нет времени, а кто-то откровенно туповат и не понимает, что нужно делать. Стал тестировать один – неудобно. Стал тестировать со своим руководителем – проще и удобнее, но что ему очевидно другим нет (как я уже писал раньше инструкций-то нет, хотя вроде и очевидно). В результате решили так: я сам прохожу по каждой ветке бизнес-процесса по одному разу, потом тестирую с руководителями всё ли понятно им. Если всё понятно и я объяснил так, что они могут пересказать это своим сотрудникам, то берём по сотруднику от каждого отдела и запускаемся в принудительном порядке (хотя обычно с каждого отдела вполне можно найти добровольца). Если и тут всё нормально, то бизнес-процесс уходит в работу и тут же анонсируем его для всех сотрудников.

Копирование и клонирование процессов

Иногда для ускорения работы над бизнес-процессом беру шаблон старого и правлю его. Так быстрее, но в итоге я получаю:

  • неверные комментарии;
  • лишние переменные;
  • неверные описания задач;
  • битые ссылки;
  • загрузку файлов не туда;
  • не те права доступа;

и ещё много чего такого, чего получить в итоге не хотелось бы. Пробовал писать с нуля – долго и неудобно. Как меньшее из зол выбрал копирование процесса и плавный обход и прочтение каждого блока, чтобы понять правильно ли я делаю. Обычно все технические ошибки, допущенные на этом этапе, выявляются когда я тестирую процесс один. Логические ошибки находим вместе с руководителями.

Вносим значительные изменения

Про то, что перед созданием нового бизнес-процесса нужно заручиться согласием всех участников, я уже писал раньше. В принципе, тут то же самое, за исключением того, что в итоге важно перед тем, как запустить новую версию бизнес-процесса, сделать «пресс-релиз» где важно не просто рассказать про изменения, но и сделать сравнение по пунктам «было» и «стало».

Возможно, что я сейчас не рассказал для вас ничего нового, вы знали всё это и раньше, но я буду рад если кому-нибудь это поможет не наступать на мои грабли. Если есть вопросы то задавайте в комментариях.

Содержание

  • Самая первая глава
    • Справочная информация
    • Как отформатирован текст в курсе
    • Как узнать редакцию продукта
  • Общая информация
  • Настройка модуля Бизнес-процессы
  • Типы бизнес-процессов
    • Последовательный бизнес-процесс
    • Бизнес-процесс со статусами
    • Выбор типа бизнес-процесса
    • Проверьте себя
  • Типовые бизнес-процессы
    • Список типовых бизнес-процессов
    • Создание шаблонов типовых бизнес-процессов
    • Типовые бизнес-процессы для коробочной версии «Битрикс24»
      • Бизнес-процессы документов
      • Бизнес-процессы организации
  • Журнал выполнения бизнес-процесса
  • Задания бизнес-процессов
  • Создание и настройка бизнес-процессов
    • Настройка библиотек документов на работу с бизнес-процессами
    • Настройка инфоблоков на работу с бизнес-процессами
    • Бизнес-процессы в Универсальных списках
    • Бизнес-процессы в CRM
    • Бизнес-процессы организации
      • Настройки для бизнес-процессов организации
      • Создание и редактирование бизнес-процесса организации
    • Дизайнер бизнес-процессов
      • Дизайнер бизнес-процессов
      • Визуальный конструктор
      • Из чего состоит визуальный конструктор
      • Глобальные переменные и константы
      • Проверьте себя
      • Практические задания
    • Шаблоны бизнес-процессов
      • Примечание для библиотеки документов
      • Настройка параметров шаблона
      • Создание шаблона последовательного бизнес-процесса
      • Создание шаблона бизнес-процесса со статусами
      • Пример использования параметров шаблона
      • Пример: организация обработки и доработки документа
      • Экспорт и импорт
      • Проверьте себя
      • Практические задания
    • Форма «Вставка значения»
      • Форма «Вставка значения»
      • Функции калькулятора выражений
      • Вычисление значений выражений в параметрах действий
      • Модификация данных
      • Коды подстановки сущностей
      • Примеры работы со ссылками
      • Примеры работы с датами
      • Вычисляем числовые значения с записью в поля документа
      • Проверьте себя
      • Практические задания
    • Действия
      • Общие моменты
      • Обработка документа
        • Блокировка документа
        • Запустить бизнес-процесс
        • Изменение документа
        • Изменить элемент списка
        • Получить информацию о задаче
        • Получить информацию об элементе списка
        • Публикация документа
        • Публикация на подключенных сайтах
        • Разблокировка документа
        • Снятие документа с публикации
        • Создание нового документа
        • Создать элемент списка
        • Сохранение истории
        • Удаление документа
      • Задания
        • Запрос доп.информации (с отклонением)
        • Запрос дополнительной информации
        • Ознакомление с документом
        • Утверждение документа
      • Конструкции
        • Итератор
        • Команда
        • Параллельное выполнение
        • Параллельное ожидание действия
        • Условие
        • Установить статус
        • Цикл
      • Уведомления
        • График отсутствия
        • Добавить новость
        • Задача
        • Календарь
        • Контроль
        • Отправить сообщение в чат
        • Почтовое сообщение
        • Событие календаря
        • Совершить звонок
        • Сообщение соц.сети
        • Уведомление пользователя
        • Установить текст статуса
      • CRM (только для Б24)
        • Выбор данных crm
        • Добавить клиента в рекламную аудиторию Google AdWords
        • Добавить клиента в рекламную аудиторию Вконтакте
        • Добавить клиента в список исключений
        • Добавить комментарий в элемент
        • Добавить товар
        • Забронировать ресурс
        • Завершить задачу
        • Запись события в crm
        • Запланировать дело
        • Изменить компанию
        • Изменить контакт
        • Изменить наблюдателей
        • Изменить ответственного
        • Изменить привязанный элемент
        • Изменить реквизиты
        • Изменить элемент смарт-процесса
        • Копировать или Переместить товары
        • Копировать сделку
        • Копировать элемент смарт-процесса
        • Ожидание
        • Ожидание стадии сделки
        • Ожидание статуса лида
        • Отменить бронирование
        • Отправить SMS
        • Отправить письмо клиенту
        • Получить информацию о привязанном элементе
        • Получить информацию о реквизитах
        • Получить информацию о товаре
        • Получить информацию об оплате
        • Получить информацию об элементе CRM
        • Провести оплату
        • Сменить воронку
        • Сменить стадию
        • Создание нового контакта
        • Создание нового лида
        • Создание новой компании
        • Создание новой сделки
        • Создать документ
        • Создать Контакт к Лиду
        • Создать на основании
        • Создать повторный Лид
        • Создать ссылку на оплату
        • Создать элемент CRM
        • Удалить товар
        • Удалить элемент CRM
      • Диск (только для Б24)
        • Детально об объекте Диска
        • Загрузить в Диск
        • Загрузить новую версию в Диск
        • Копировать/Переместить в Диске
        • Создать папку в Диске
        • Удалить объект Диска
      • Прочее
        • PHP код
        • Блок действий
        • Выбор сотрудника
        • Выполнить математические операции
        • Запись в отчет
        • Изменение глобальных переменных
        • Изменение переменных
        • Исходящий Вебхук
        • Ожидание рабочего дня сотрудника
        • Пауза в выполнении
        • Пауза робота
        • Получить информацию о сотруднике
        • Прерывание процесса
        • Сгенерировать код
        • Создание группы
        • Создать QR-код
        • Установка прав
      • Мои действия
      • Примеры работы с действиями
        • Пример использования цикла для утверждения документа
        • Пример работы с переменными и дополнительными результатами действий
        • Пример использования действия «Выбор сотрудника»
        • Ручной переход по действиям процесса с помощью «Ознакомления с документом»
        • Пример использования действия «Утверждение документа»
      • Практические задания
    • Распространенные ошибки при работе с бизнес-процессами
    • Проверьте себя
  • Каталог примеров
    • Список шаблонов для импорта
    • Пример бизнес-процесса со статусами по созданию счета для клиента в CRM
      • Техническое задание
      • Настройки CRM
      • Создание бизнес-процесса
    • Пример работы с бизнес-процессами
    • Пример создания бизнес-процесса
      • Создание нового бизнес-процесса
      • Создание шаблона бизнес-процесса. Часть1.
      • Создание шаблона бизнес-процесса. Часть 2.
      • Создание шаблона бизнес-процесса. Часть 3.
      • Проверка работы
    • Пример динамического назначения прав на документ
    • Использование пользователя в бизнес-процессе
    • Утверждение документа с учетом времени
    • Установка времени клиента в документе CRM
    • Пример использования бизнес-процессов и списков
      • Техническое задание
      • Подготовка списка и его настройка
      • Настройка внешнего вида и доступа для списка
      • Создание бизнес-процессов
    • Пример бизнес-процесса со статусами по созданию счета для клиента в CRM
      • Техническое задание
      • Настройки CRM
      • Создание бизнес-процесса
    • Добавление информации в инфоблок из бизнес-процесса
    • Примеры изменения типовых бизнес-процессов
      • Пример изменения процесса Выдача наличных
      • Пример изменения процесса Заявление на отпуск
      • Пример изменения процесса Исходящие документы
    • Создание задачи с приоритетом с помощью PHP-кода
    • Пример бизнес-процесса для подачи заявки на отпуск
    • Пример бизнес-процесса для обслуживания заявок клиентов
    • Примеры использования бизнес-процессов совместно с другим функционалом системы (ссылки)
  • Бизнес-процессы для разработчика
    • Общая информация для разработчиков
    • Рекомендации по разработке
    • Шаблон бизнес-процесса
    • Бизнес-процесс
    • Действия
      • Действия
      • Основные стандартные действия
      • Свойства действий
      • Составные действия
      • Создание собственных действий
        • Общий алгоритм
        • Пример создания действия Запись в лог
        • Пример создания действия Создать задачу
    • Выполнение «задания» бизнес-процесса, используя API
    • Использование REST в бизнес-процессах
      • REST в бизнес-процессах
      • Пример использования REST в процессах
    • Произвольный PHP код в бизнес-процессе
      • Общие советы
      • Как запустить из одного бизнес процесса другой?
      • Вывод в лог
      • Вывод в лог. Переменные
      • Арифметические действия в бизнес-процессе
      • Вычисление ID начальника
      • Работа с пользовательским полем сотрудника из БП
      • Получение списка пользователей
    • Автоматический запуск бизнес-процессов и роботов
    • Проверьте себя

Самая первая глава

Немного информации, которая поможет Вам в изучении нашего продукта.

Справочная информация

Научиться работать с продуктами компании «1С-Битрикс» не сложно, но потребуется внимание и определённая мера усидчивости. А поможет в этом различного вида справочная информация, ссылки на которую расположены на сайте компании в разделе Документация.

Разные виды документации

Нажмите на рисунок, чтобы увеличить

  • Онлайн документация для пользователей — описание интерфейса системы управления сайтом, ее основных модулей и наиболее типичных операций. Также в ней содержится полное описание прикладного программного интерфейса.
  • Онлайн документация для разработчиков по старому ядру, по ядру D7 и по Rest_API. Предназначена для технических специалистов со знанием PHP и HTML. В ней содержатся сведения о технологиях и основных принципах, заложенных в систему, описание классов и функций по всем продуктам.

Учебные курсы

Нажмите на рисунок, чтобы увеличить

Онлайн Курсы — это методические пособия по работе с продуктом, которые включают в себя описание и примеры работы с системой.

Для изучения учебных материалов в оффлайне на индексной странице каждого курса размещаются [dw]ссылки на файлы[/dw][di][/di] формата Epub.

Контекстная справка

Нажмите на рисунок, чтобы увеличить

Контекстная справка выводит в Административной части системы информацию, относящуюся к открытому в данный момент разделу или странице. Доступна как в [ds]1С-Битрикс: Управление сайтом[/ds][di]Обилие справочной информации «1С-Битрикс: Управление сайтом» иной раз создаёт проблему: где искать ответ на свой вопрос? Для облегчения поиска иголки в стоге сена создана Контекстная помощь, доступная только в Административном разделе системы.

Подробнее …[/di], так и в коробочном [ds]Битрикс24[/ds][di]Для обучения работе в сервисе Битрикс24 создана специальная служба Поддержки24. К ней можно обратиться нажатием на кнопку со знаком вопроса в «шапке» сервиса…

Подробнее …[/di].

Мастер магазина

[ds]Мастер магазина[/ds][di]Стандартный функционал «1С-Битрикс: Управление сайтом» позволяет организовать работу интернет-магазина непосредственно «из коробки», то есть после установки сайта на хостинг. Но это не значит, что интернет-магазин не нужно настраивать.

Подробнее …[/di] — встроенная в административную часть система помощи с краткой информацией по конкретной задаче в рамках настройки и эксплуатации интернет-магазина со ссылками на более детальную информацию в конкретных учебных курсах.

FAQ — Частые вопросы

Частые вопросы — подборка решений наиболее часто встречающихся проблем при работе с продуктом в удобном представлении.

Примечание: В дополнение к документации, информацию, касающуюся продуктов компании «1С-Битрикс», можно получить на сайте в разделе [ds]форум[/ds][di]В форумах нашего Центра поддержки разработчиков вы можете задать свои вопросы и обсудить варианты их решения.

Подробнее …[/di].

Для администраторов и разработчиков также рекомендуется познакомиться с опытом разработок сайтов на Bitrix Framework, который описывается в блогах разработчиков и в группах Социальной сети сайта компании 1С-Битрикс.

Как отформатирован текст в курсе

Читать монотонный текст сложно. Форматирование — один из способов облегчить понимание смысла. Опишем правила форматирования, чтобы вам было легче ориентироваться.

Вкладки

Текст урока разбивается на тематические вкладки (табы). Сделано это с целью избавить читателя от прокрутки экрана или минимизировать её. Если вам неудобно пользоваться вкладками, то их можно отключить, тогда весь текст урока будет выводиться в виде единого массива.

Внимание! При использовании вкладок поиск в браузере ищет только по открытой вкладке, а не по всему уроку.

Форматирование текста

Жирный шрифт используется для выделения важных в смысловом значении слов, терминов, фраз и предложений. То есть того, что особенно важно в контексте описываемого функционала:
  • Ключевое смысловое слово, фраза.
  • Термины, названия элементов интерфейса: кнопки, вкладки, поля, горячие клавиши, формат или название файла.
  • Название курса, глав курса, разделов и страниц сайтов. (Как правило, название глав или курсов даются ссылкой, но иногда это бывает излишним).
Примеры использования жирного шрифта
Пример названия курса или главы Изучение курса позволяет освоить основные методы администрирования системы, а также пополнить знания по темам, изученным в курсе Контент-менеджер.
Пример названий элементов интерфейса: При этом у компонента Список новостей нужно настроить входные параметры так, чтобы он мог формировать ссылки на страницу детальной новости (с кодом новости). Для этого нужно в группе параметров Шаблоны ссылок в поле URL страницы детального просмотра задать путь к этой странице, а также название параметра, в котором будет передаваться код новости для показа.
Пример ключевой фразы, слова При регистрации сервера обязательно укажите Домен для NTLM авторизации. Он должен полностью (включая регистр) совпадать с названием домена.

и Курсив и подчёркивание используются для выделения:
  • Названия продуктов компании 1С-Битрикс, других программ и технологических платформ.
  • Названия методов, классов, функций и событий, если нет их описания в API доке. (Если описание есть, то название метода или класса оформляется ссылкой на страницу документации.)
  • Пространство имён в новом ядре D7.
  • Ключевое слово, фраза, термин, если использование жирного шрифта не желательно по каким-то причинам.
Примеры использования курсива
Пример названия метода: Усовершенствованные методы буферизации в шаблоне позволяют более не использовать CBitrixComponentTemplate::EndViewTarget() ввиду того, что конец шаблона вызывает завершение буферизации автоматически. (Если страница метода в документации есть, то будет так: Перед подключением компонента ко всем значениям параметров применяется функция
[ds]htmlspecialcharsEx[/ds][di]Функция переводит текст в HTML-безопасный вид, заменяя специальные символы их визуальным HTML представлением.
Подробнее…[/di])
Пример названий продуктов и платформ: Чтобы научиться эффективно работать в Bitrix Framework, нужно не сравнивать то, что вы знаете по другим системам, а стараться понять, как то или иное реализуется в этой системе. В плане обучения «сравнительный» подход не работает. Просто отвлекитесь от старых знаний и изучите новую систему, используя только знания PHP и сайтостроения, а не сравнивая идеологии и технологии.
Пример пространства имён в D7: При необходимости модуль может организовывать подпространства внутри своего пространства имен. Например, BitrixMainIO, BitrixForumSomeNameSomeNameTwo.

Серый фон текста используется для выделения:

  • путей в рамках файловой системы.
  • атрибутов, тегов html, параметров функций, переменных, значения полей и настроек и листинга кода, который нет смысла помещать в стиль для листинга.
Примеры использования серого фона
Пример выделения путей в рамках файловой системы: Результаты кеширования сохраняются в виде файлов в каталоге /bitrix/cache/.
Пример выделения атрибутов, тегов и так далее: Если в компоненте написать код:
$arParams = & $arSomeArray;
то переменная $arParams будет отвязана от члена класса компонента и привязана к массиву $arSomeArray.

Синий курсив с > используется для подсветки путей в продукте. То есть пути выглядят так же, как они оформлены в административном отделе системы.

Примеры использования синего курсива
Пример оформления путей в административном отделе системы: Файлы кеша можно удалить в административной части на закладке Очистка файлов кеша страницы Настройки > Настройки продукта > Автокеширование.

Синий шрифт используется для подсветки УРЛ без создания собственно ссылки — псевдо УРЛ.

Примеры использования синего шрифта
Пример псевдо УРЛ: При помощи access_token приложение совершает запросы к REST-сервису до его истечения.

https://имя_портала.bitrix24.ru/rest/user.current?auth=код_авторизации

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

Примеры использования цветного шрифта
Цветной шрифт:
  • Настроить инфоблок на контроллере:

    ……..

  • На подключенном сайте надо создать инфоблок с таким же значением внешнего кода, как и на контроллере. Кроме привязки к сайту, названия и внешнего кода необходимо настроить и права доступа к инфоблоку.

    ……

Форматирование абзацев текста

Форматирование целых абзацев текста используется для выделения какой-либо информации с целью указать направленность этой информации.

Определения каких-либо сущностей, явлений, терминов и так далее выводятся в абзацах такого вида:

Статическая информация – это информация, которая редко изменяется с течением времени. Например, рекламные тексты, история компании, контактная информация и т.п. Статическая информация создается, редактируется, дополняется и удаляется пользователями, обладающими правом на редактирование страниц сайта. Такое редактирование производится, как правило, в визуальном редакторе непосредственно в тексте самой страницы.

В Примечании размещается информация, поясняющая текст на странице, на которую стоит обратить внимание. Это могут быть примеры, расширенное объяснение, уточнение, ссылка на дополнительную информацию. Например:

Примечание. В ядре D7 настройки кеширования производятся в [ds]специальном файле[/ds][di]Настройки выполняются в файле /bitrix/.settings.php.
Подробнее…[/di]

Предупреждения — это информация, имеющая критическое значение для работы того или иного функционала продукта. Например:

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

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

Всплывающие подсказки

Всплывающие подсказки обозначаются цветом шрифта и пунктирным подчёркиванием. Такие подсказки используются там, где:

  • Нужно пояснить какой-то термин.
    Пример: Как правило, все сайты имеют возможность авторизации из [dw]публичного раздела[/dw][di]Публичный раздел — то, что видит посетитель сайта, но для контент-менеджера — это основное место работы . Подробнее…[/di].
  • Дать наглядное представление о команде интерфейса.
    Пример: При включённом режиме Правки откройте на
    [dw]редактирование элемент инфоблока[/dw][di][/di], например, новость.
  • Дать дополнительную, но не относящуюся напрямую к выполняемым работам, информацию.
    Пример: Этот инструмент создаст ссылку с одним единственным [dw]слешом[/dw][di]Слеш — косая черта, которая используется для разделения слов в адресе сайта[/di] после [dw]домена сайта[/dw][di]Домен сайта — адрес по которому открывается самая главная страница. Например: yandex.ru[/di].
  • Дать описание и ссылку на страницу компонента в пользовательской документации.
    Пример: Простую фотогалерею в публичном разделе выводит комплексный компонент [comp include_photogallery]Фотогалерея 2.0[/comp].

Внимание! Всплывающие подсказки не работают в файлах формата CHM и Epub. Интернет на мобильных устройствах на сегодняшний день — не проблема, используйте эти файлы документации только в крайнем случае.

Спойлеры, скрывающие текст

В спойлерах размещается информация, которая имеет вторичное значение, но может быть полезна «для общего развития». Для открытия спойлера надо просто кликнуть на «+» в спойлере:

Задание окна для открытия ссылки при редактировании в режиме кода (для ознакомления)

Чтобы избежать лишней прокрутки экрана, в спойлерах может быть размещена большая по объёму информация.

Видеоролики

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

  • на YouTube канале;
  • на Rutube канале.

Как узнать редакцию продукта

   Как узнать, какая редакция сейчас у Вас?

Так как у разных компаний могут быть разные потребности в функционале, 1С-Битрикс предоставляет целую линейку редакций (лицензий), отличающихся по набору доступных инструментов:

  • сравнить возможности редакций «1С-Битрикс: Управление сайтом»
  • сравнить возможности редакций коробочного «Битрикс24»

Чтобы узнать, какая редакция 1С-Битрикс установлена у Вас, достаточно перейти [ds]в административном разделе[/ds][di]
Административный раздел — часть «1С-Битрикс: Управление сайтом», где производится

управление модулями системы, структурой сайта, его содержанием, посетителями и

другими составляющими сайта. Недоступен для просмотра обычным посетителям сайта.

Для перехода в Административный раздел служит закладка Администрирование,
расположенная на Панели управления в Публичном разделе сайта.

Подробнее…[/di] сайта на страницу Обновление платформы (Marketplace > Обновление платформы) во вкладку [dw]Установка обновлений[/dw][di]

[/di]:

Нажмите на рисунок, чтобы увеличить

   Информация о редакциях в уроках

Для Вашего удобства мы указываем в уроках ограничения по редакциям (т.е. в каких редакциях недоступен описываемый в уроке функционал):

  Как узнать текущую версию продукта?

Когда в уроках упоминается «версия продукта» (без указания конкретного модуля), то имеется в виду версия Главного модуля.

Версию продукта (т.е. версию Главного модуля) можно определить несколькими способами:

  • прокрутив в административной панели любую страницу до конца:

  • на странице Модули (Настройки > Настройки продукта > Модули):

    Нажмите на рисунок, чтобы увеличить

    Примечание: На этой странице можно посмотреть текущие версии всех модулей, установленных в системе.

  • с помощью предустановленного [ds]гаджета на Рабочем столе[/ds][di]
    Гаджеты в продуктах «1С-Битрикс: Управление сайтом» — это особые программные элементы, выполняющие функции уведомления и быстрого перехода к различным элементам управления и настройки системы и её элементов. С помощью гаджетов на Рабочем столе может быть представлена самая разнообразная информация.

    Подробнее…[/di]:

Общая информация

Что такое Бизнес-процессы?

  Описание

Бизнес-процесс (БП) — это процесс обработки документа, для которого задана одна точка входа и несколько точек выхода и последовательность действий (шагов, этапов, функций), совершаемых в заданном порядке и в определенных условиях.

Другими словами Бизнес-процесс – последовательность действий, направленных на получение заданного результата.

Необходимо понимать, что БП — это программирование, но в большинстве случаев без написания кода. Говорить, что любой менеджер справится с созданием БП — это некоторое преувеличение. Требуется постановка задачи, алгоритмирование, тестирование — для этого нужны определенные навыки и базовая подготовка.

В системе все бизнес-процессы работают с документами (таким документом может быть файл, элемент инфоблока, элемент CRM) и их версиями. Для каждого документа (из инфоблока, списков или др.) существуют свои шаблоны бизнес-процессов. Поддерживаемые типы документов:

  • Элементы инфоблоков в административной части
  • Элементы универсального списка
  • Файлы из библиотеки документов («Битрикс24 в коробке»)
  • Элементы CRM («Битрикс24 в коробке»)
  • «Виртуальный документ» (для бизнес-процессов организаций, реализуемых с помощью компонента [comp include_bizproc_wizards]Бизнес-процесс (комплексный компонент)[/comp] в публичной части сайта)

Где можно найти Бизнес-процессы

В продуктах компании 1С-Битрикс бизнес-процессы можно найти в следующих местах:

  • Инфоблоки в административной части сайта («1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке»)
  • Универсальные списки («Битрикс24 в коробке», Сервисы > Списки)
  • Процессы в ленте новостей («Битрикс24 в коробке», Автоматизация > Бизнес-процессы > Процессы в ленте новостей)
  • Битрикс24.Диск («Битрикс24 в коробке», Диск)
  • CRM («Битрикс24 в коробке», CRM > Настройки > Настройки CRM > Роботы и бизнес-процессы).

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

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

При создании бизнес-процесса при выборе пользователей в настройках действий в форме [ds]Вставка значений[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения

Подробнее …[/di] выводятся только те пользователи, которые имеют соответствующий уровень доступа к типу документа, для которых создаётся бизнес-процесс.

Например, если в настройках информационного блока для определённой группы пользователей будет выставлен уровень прав Чтение, то они не будут иметь доступа к работе с бизнес-процессами инфоблока, хотя могут просматривать его элементы.

  Видеоматериалы

Рекомендуем посмотреть видеозаписи с [ds]вебинаров по Битрикс24[/ds][di]По ссылке вы найдете как активные, так и прошедшие вебинары. Для просмотра прошедших вебинаров
выберите Тему и нажмите Показать ещё:

[/di], в которых рассказывается о том, что такое бизнес-процессы, как с ними работать, а также рассмотрены примеры их использования. По указанной ссылке доступен список вебинаров начиная с 2015 года по настоящее время.

Так же будет полезно изучить курс Автоматизация бизнес-процессов.

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

Вебинар Роботы и бизнес-процессы. RPA с точки зрения разработчика. Техноволна 1 от 06 апреля 2020.

Настройка модуля Бизнес-процессы

Настройки модуля

Общесистемные настройки модуля Бизнес-процессы в продуктах 1С-Битрикс: Управление сайтом и Битрикс24 в коробке задаются на странице Настройки > Настройки продукта > Настройки модулей > Бизнес-процессы. Детальное описание настроек в документации, ниже — расшифровка некоторых полей.

Нажмите на рисунок, чтобы увеличить

Ограничения на число бизнес-процессов в поле Максимальное количество одновременно запущенных над документом процессов служат для снижения нагрузки на сервер, на котором работает ваш проект. Значение определяется эмпирически, в зависимости от производительности вашего сервера и потребностей организации. Начните с числа 2 (такое ограничение стоит в облачной версии Битрикс24) и по мере работы увеличите или уменьшите его.

Так же на нагрузку на сервер влияют значения в поле Минимальное время ожидания для действий. Эта настройка влияет на действия, где возможно ожидание: пауза, задания БП, а так же rest действия. Чем меньше время — тем больше нагрузка. Оптимальное значение подбирается эмпирически, в зависимости от производительности вашего сервера и потребностей организации. Начните с 5 минут (такое ограничение стоит в облачной версии Битрикс24) и по мере работы увеличите или уменьшите его.

Включить режим совместимости для типа «Привязка к сотруднику» — это поле используется только если есть проблемы со старыми, созданными до версии 12.5, шаблонами Бизнес-процессов.

Документация по теме:

  • Настройки модуля

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

При помощи модуля Бизнес-процессы могут быть описаны два типа бизнес-процессов: последовательный и со статусами.

Последовательный бизнес-процесс

Шаг за шагом

Последовательный бизнес-процесс — действия выполняются одно за другим от точки входа до точки выхода.

Последовательный бизнес-процесс

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

Последовательный бизнес-процесс начинает работу, выполняя находящееся в нем первое дочернее действие, и продолжается до тех пор, пока не выполнит все остальные дочерние действия.

Бизнес-процесс со статусами

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

  Бизнес-процесс со статусами

Бизнес-процесс со статусами — бизнес-процесс, не имеющий начала и конца, в процессе работы которого происходит переход из одного [dw]состояния[/dw][di]Такой бизнес-процесс так же называют машиной состояний или автоматом на состояниях.[/di] (статуса) в другое с разделением прав доступа.

Бизнес-процесс со статусами представляет собой набор состояний, переходов и действий. Одно из состояний обязательно обозначается как начальное состояние. Далее, по мере выполнения, процесс переходит из одного состояния в другое. Переходы выполняются на основе событий.

Посмотрим на [dw]пример[/dw][di]Пример создания этого бизнес-процесса рассматриваем в отдельном уроке Пример использования бизнес-процесса со статусами для организации обработки и доработки документа.[/di] такого шаблона:

На скриншоте видим бизнес-процесс с тремя статусами: Рассмотрение документа, Доработка и Утвержден, а также связи между этими статусами:

  Общая логика работы

Посмотрим общую логику работы бизнес-процессов со статусами.

Для каждого статуса могут быть настроены 4 действия. А для каждого действия доступно создание [ds]последовательного[/ds][di]Последовательный бизнес-процесс представляет собой бизнес-процесс как набор шагов, которые следует выполнять по порядку до тех пор, пока они все не завершатся. Он похож на обычную блок-схему, описывающую алгоритм решения задачи.

Подробнее…[/di] подпроцесса.

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

Обязательно должна быть предусмотрена смена статуса. У действия статуса Команда есть специальный параметр, осуществляющий смену статуса. Или уже среди действий последовательных подпроцессов удобно использовать действие [ds]Установить статус[/ds][di]Действие позволяет перевести бизнес-процесс в другой статус. Доступно только для бизнес-процессов со статусами.

Подробнее…[/di]. Если смена статуса не определена каким-либо способом, то текущий статус считается конечным и бизнес-процесс завершается.

Если для статуса определен последовательный подпроцесс для финализации этого статуса (обработчик выхода из статуса), то он автоматически выполняется непосредственно перед выходом из данного статуса (перед переходом в другой статус).

Примечание: Не обязательно настраивать все действия для каждого статуса. Настраивайте только те действия, которые подходят для вашего конкретного бизнес-процесса.

Выбор типа бизнес-процесса

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

Тип последовательный бизнес-процесс выбирается в том случае, если просто необходимо выполнить определенную последовательность действий.

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

Проверьте себя

Ответьте на несколько вопросов по теме Типы бизнес-процессов, которые помогут вам самим оценить свои знания. Это не тест, это просто проверка того, как вы поняли тему. Удачи!

Верно ли утверждение?

Оцените верность утверждения: Верно или Неверно. А потом в спойлере проверьте ваш выбор.

1 Последовательный бизнес-процесс можно представить как набор шагов, которые выполняются по порядку.

Верно

Неверно

2 Бизнес-процесс со статусами состоит из этапов-статусов, которые последовательно сменяют друг друга.

Верно

Неверно

3 Один из статусов БП со статусами обязательно определяется как начальный.

Верно

Неверно

4 Подпроцессы внутри каждого статуса — последовательные.

Верно

Неверно

5 Бизнес-процесс зависнет, если смена статуса не настроена.

Верно

Неверно

6 Бизнес-процесс со статусами позволяет гибко настроить права доступа к документу для разных статусов.

Верно

Неверно

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

Типовые бизнес-процессы — образцы часто используемых процессов, которые включены в состав продуктов «1C-Битрикс», содержащих модуль Бизнес-процессы.

Список типовых бизнес-процессов

Какие процессы часто используются?

  Описание

Типовые бизнес-процессы — образцы часто используемых процессов, которые включены в состав продуктов «1C-Битрикс», содержащих модуль Бизнес-процессы.

Типовые бизнес-процессы включены в состав младших редакций как неизменяемые процессы. Они настраиваются на работу с нужными сотрудниками, но схема прохождения документа остается неизменной. Изменение шаблонов типовых бизнес-процессов, а также создание собственных шаблонов возможно только при наличии модуля [dw]Дизайнер бизнес-процессов[/dw][di]Модуль Дизайнер бизнес-процессов, входящий в старшие редакции продуктов «1С-Битрикс», предназначен для проектирования, создания и изменения бизнес-процессов.
Подробнее…[/di], который доступен только [dw]в старших редакциях[/dw][di]Подробнее о наличии модулей в зависимости от редакций можно посмотреть на страницах Редакции продукта для «1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке».[/di].

  Типовые бизнес-процессы для документов

  • Двухэтапное утверждение (последовательный процесс)
    Нажмите на рисунок, чтобы увеличить

Рекомендуется для ситуаций утверждения документа с предварительной экспертной оценкой. В рамках процесса на первом этапе документ утверждается экспертом. Если документ им не утвержден, то он возвращается на доработку. Если утвержден, то документ передается для принятия решения группой сотрудников простым большинством голосов. Если документ не принят на втором этапе голосования, то он возвращается автору на доработку и повторяется процесс утверждения.
  • Экспертная оценка (последовательный процесс)
    Нажмите на рисунок, чтобы увеличить

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

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

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

Прохождение документом цепочки утверждения со статусами.
  • Утверждение по первому голосу (последовательный процесс)
    Нажмите на рисунок, чтобы увеличить

Рекомендуется для ситуаций, когда достаточно одного экспертного мнения из некоторого сообщества. В рамках этого процесса задается список сотрудников, имеющих право принять решение c уведомлением о начавшемся процессе. Процесс считается завершенным по первому отозвавшемуся сотруднику.

Универсальный бизнес-процесс оплаты счетов (только для коробочной версии Битрикс24)

  Типовые бизнес-процессы организации

[dw]Бизнес-процессы организации[/dw][di]Подробнее в уроке Бизнес процессы организации.[/di] предназначены для автоматизации деятельности организации. По умолчанию в Битрикс24 представлено пять типовых бизнес-процессов:

  1. Выдача наличных
  2. Исходящие документы
  3. Счет на оплату
  4. Заявление на отпуск
  5. Заявление на командировку

В облачной Битрикс24 Администратор изменяет и копирует эти бизнес-процессы. А на тарифах «Профессиональный» и «Энтерпрайз», а также в «коробочной Битрикс24», может создавать собственные.

Создание шаблонов типовых бизнес-процессов

Типовые [ds]шаблоны бизнес-процессов[/ds][di]Шаблон бизнес-процесса представляет собой последовательность шагов (действий) от начального к конечному, которые выполняются один за другим. Необходимо таким образом и в таком порядке составить шаги (действия), чтобы реализовать нужный нам алгоритм и получить необходимый результат.

Подробнее…[/di] создаются автоматически при установке продуктов «1C-Битрикс». Посмотрим, каким образом создать их, если по каким-либо причинам типовые процессы не были созданы при установке.

  Действия по созданию шаблонов

  • Универсальные списки (публичная часть сайта)
  • Общий диск
    • перейти на страницу Общий диск (Диск > Общий диск);
    • перейти к списку шаблонов бизнес-процессов с помощью пункта [dw]Бизнес процессы[/dw][di]Нажмите на рисунок, чтобы увеличить[/di] в меню настроек;

      Примечание: Если в меню настроек нет пункта Бизнес-процессы, то нужно [dw]включить поддержку[/dw][di]Примечание: Для персональных документов в разделе Мой диск бизнес-процессы включить нельзя.[/di] бизнес-процессов для библиотеки, выбрав в том же меню настроек пункт Настройка бизнес-процессов, и в открывшейся форме включив опцию [dw]Активировать бизнес-процессы[/dw][di][/di].

    • воспользоваться соответствующей ссылкой для создания шаблонов бизнес-процессов.
  • Инфоблоки (административная часть сайта)
  • Бизнес процессы организаций (публичная часть сайта, «Битрикс24 в коробке»)

    Типовые шаблоны устанавливаются автоматически с установкой модуля Бизнес-процессы.

  Удаление шаблонов типовых бизнес-процессов

Для удаления шаблона бизнес-процесса используйте пункт меню действий Удалить.

Важно: удалить шаблон незавершенного бизнес-процесса нельзя.

Типовые бизнес-процессы для коробочной версии «Битрикс24»

В данной главе будут рассмотрены штатные бизнес процессы, которые присутствуют только в коробочной версии «Битрикс24».

Бизнес-процессы документов

Давайте посмотрим как настроить автозапуск и запуск вручную для бизнес-процессов (БП) документов в коробочной версии Битрикс24.

Важно! Для работы с бизнес-процессами на портале у пользователя должен быть определенный уровень доступа. Если вы не можете работать с бизнес-процессами на портале, обратитесь к Администратору портала.

  Настройка автозапуска для БП документов

Настройка выполняется на странице Бизнес-процессы (меню настроек в разделе Диск > Общий диск):

  • открываем [dw]список[/dw][di]Нажмите на рисунок, чтобы увеличить[/di] бизнес-процессов;
  • на странице Шаблоны бизнес-процессов в меню действий выбираем способ [dw]автоматического запуска[/dw][di][/di] бизнес-процесса — Запускать при создании или Запускать при изменении;
  • статус запуска бизнес-процесса отобразится в колонке [dw]Автозапуск[/dw][di][/di].

    Примечание: Например установим автоматический запуск бизнес-процесса Утверждение документа со статусами при создании и тогда сотрудник, загружая файл в данный раздел документов, должен [dw]указать[/dw][di][/di] все необходимые параметры запуска бизнес-процесса.

  Запуск БП вручную

Чтобы запустить вручную бизнес-процесс для некоторого документа:

Бизнес-процесс запустится и начнет выполняться в соответствии со своим шаблоном и произведенными настройками.

  БП сотрудника

Каждому сотруднику отображается список запущенных им бизнес-процессов с помощью анимированных иконок в колонке Название после названия файла в списке документов. Если вы участвуете в бизнес-процессе, то рядом с анимированной иконкой увидите [dw]восклицательный знак[/dw][di][/di].

Выполнение назначенных заданий по бизнес-процессу осуществляется на закладке [dw]Бизнес-процессы[/dw][di][/di] личной страницы.

Бизнес-процессы организации

Запускаем бизнес-процессы организации

  Описание

Бизнес процессы организации предназначены для автоматизации деятельности организации. По умолчанию создано и представлено [dw]пять[/dw][di][/di] типовых [dw]бизнес-процессов[/dw][di]Важно! Если вы не можете работать с бизнес-процессами организации на портале, обратитесь к Администратору портала.[/di]:

  1. Выдача наличных
  2. Исходящие документы
  3. Счет на оплату
  4. Заявление на отпуск
  5. Заявление на командировку

В облаке Администратору доступно изменение и копирование бизнес процессов. А в тарифе Профессиональный облачного Битрикс24 — [dw]создание собственных[/dw][di]Создание нового бизнес-процесса организации, а также редактирование и настройка уже существующих доступно только при наличии необходимой квалификации и соответствующих прав доступа (по умолчанию — только для Администратора).[/di].

Работа с бизнес-процессами осуществляется через пункт меню Бизнес-процессы:

  Задания БП

Как только появятся процессы, требующие внимания, их количество будет отражено рядом с пунктом меню Бизнес-процессы. Выполнение назначенных заданий по бизнес-процессам организации осуществляется на закладке Задания бизнес-процессов (Бизнес-процессы > Задания бизнес-процессов). На закладке видим информацию о бизнес-процессе, вывод которой настраивается, если щелкнуть правой кнопкой мыши по шапке таблицы. Также приведено [dw]описание действий[/dw][di][/di], которые необходимо сделать.

Варианты получения подробной информации о каждом действии:

Воспользуйтесь [dw]фильтром процессов[/dw][di] [/di] для поиска необходимых процессов в списке. Руководитель подразделения сможет найти процессы, выполняемые его подчиненными, и делегировать их.

  Процессы в ленте Новостей

На странице [dw]Процессы в ленте[/dw][di]для старых версий коробочного Битрикс24 список процессов располагается во вкладке Сервисы > Процессы[/di] (Бизнес-процессы > Процессы в ленте) пользователь просматривает и запускает бизнес-процессы, к которым у него есть доступ. Также в этом разделе администратор указывает, какие из этих процессов доступны для вызова прямо из [dw]ленты Новостей[/dw][di] Важно! В ленте Новостей для вас отображаются только те процессы, для которых у вашей группы пользователей есть необходимые права доступа. Если вам не доступна работа с бизнес-процессами организации на портале, обратитесь к Администратору портала.[/di].

  Мои процессы

Вызов бизнес-процессов на исполнение возможен и через закладку Бизнес-процессы > Мои процессы. Эта страница хранит все процессы, которые вызывались вами, включая историю их исполнения и полную информацию о них.

Расположение вкладки Мои процессы в старых версиях коробочного Битрикс24

После нажатия на кнопку [dw]Запустить процесс[/dw][di] [/di] предлагается заполнить поля с входными параметрами вашего процесса. Однако настройки параметров работы (Кто утверждает, Кто оплачивает и т.п.) должны быть предварительно проведены, иначе бизнес-процесс [dw]не начнет[/dw][di][/di] свое выполнение.

  Все активные

На странице Все активные (Бизнес-процессы > Все активные) отображен список активных запущенных процессов. На этой странице отслеживаем выполнение запущенных процессов, контролируем зависшие. Обычный пользователь видит список процессов запущенных только им самим. Администратору портала видны все процессы запущенные на портале, которые он удалит в случае зависания.

1 выберите модули, для которых были запущены процессы. Также доступен выбор зависших процессов.

2 используйте фильтр для поиска определенных задач.

3 настройте отображение колонок списка, кликнув правой кнопкой по шапке таблицы.

4 с помощью меню действий перейдите к документу (для администратора доступно удаление).

Журнал выполнения бизнес-процесса

При разработке и использовании уже готовых процессов бывает необходимо узнать подробности выполнения того или иного процесса / действия. Для этого в системе предусмотрен журнал выполнения бизнес-процессов (лог).
Доступ к журналам имеет Администратор и все пользователи, у которых есть доступ к документу, для которого запущен бизнес-процесс.

Примечание: Время хранения логов по умолчанию установлено 90 дней. Это значение можно изменить в параметре [dw]Время хранения лога выполнения бизнес-процесса (дней)[/dw][di][/di] настроек модуля Бизнес-процессы (Настройки > Настройки продукта > Настройки модулей > Бизнес-процессы. По истечении указанного периода логи автоматически удаляются.

  Административная часть сайта

Журнал выполнения бизнес-процесса для элементов информационного блока находится в административной части сайта / портала.

Для просмотра журнала перейдем в режим редактирования элемента инфоблока (документа, для которого запущен бизнес-процесс) на вкладку Бизнес-процессы и затем используем ссылку в поле Текущий статус. Откроется форма с [dw]Историей выполнения бизнес-процесса[/dw][di][/di].

Для просмотра более подробной информации используем ссылку Расширенный режим:

Идентификатор действия в расширенном режиме

  Публичная часть сайта

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

Процессы в ленте новостей

CRM (Лиды, Контакты, Компании, Сделки, Смарт-процессы и т.д.)

Вид лога одинаков для всех типов документов и представлен в виде таблицы:

По нажатию правой кнопкой мыши по шапке таблицы лога откроется [dw]меню[/dw][di][/di], в котором настраивается лог, в том числе, выбираются колонки, которые в нем отобразятся.

Задания бизнес-процессов

Посмотрим интерфейс заданий бизнес-процессов на примере Битрикс24:

  • в публичной части сайта по пути Автоматизация > Бизнес-процессы > Задания бизнес-процессов;
  • Нажмите на рисунок, чтобы увеличить

  • в административной части сайта на странице Задания (Сервисы > Бизнес-процессы > Задания).

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

Примечание: Задания бизнес-процессов автоматически удаляются при удалении документа, для которого они были запущены.

Документация по теме:

  • Задания
  • Просмотр задания

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

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

Настройка библиотек документов на работу с бизнес-процессами

Для настройки инфоблоков, используемых для организации библиотек документов (инфоблоки типа Документы), на работу с бизнес-процессами необходимо выполнить следующие действия:

  Настройка инфоблоков

Чтобы документы и файлы определенного инфоблока работали в режиме Бизнес-процессов необходимо произвести настройки этого инфоблока в административном разделе. Это может сделать администратор системы либо пользователи с правами доступа к модулю Бизнес-процессы не ниже Полного доступа.

Примечание: Один и тот же информационный блок не может работать и в режиме Документооборота и в режиме Бизнес-процессов.

  • Для настройки инфоблока перейдите на страницу настройки свойств инфоблока (Контент > Информ. блоки > Типы информ. блоков > [Нужный_тип_инфоблока] > [Нужный_инфоблок] ).
  • На вкладке Инфоблок в поле Участвует в документообороте или бизнес процессах выберите Бизнес-процессы.
  • Инфоблок участвует в бизнес процессах

  • Нажмите кнопку Применить для внесения изменений.

Теперь выбранный инфоблок будет участвовать в Бизнес-процессах.

Примечание: включить участие инфоблока в документообороте можно и из публичного раздела.

  Настройка прав доступа

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

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

    Внимание! Уровень доступа Бизнес-процессы позволяет указанным группам пользователей только лишь участвовать в бизнес-процессах. Для того чтобы пользователи смогли сами запускать бизнес-процессы, необходимо выставить более высокий уровень прав доступа для инфоблока, например Изменение.

  • Нажмите кнопку Применить для внесения изменений.

Настройка инфоблоков на работу с бизнес-процессами

Для настройки [dw]работы[/dw][di]Один и тот же информационный блок не может работать и в режиме Документооборота и в режиме Бизнес-процессов.[/di] бизнес-процессов с инфоблоками необходимо выполнить ряд действий.

  Настройка инфоблоков

Для участия инфоблока в Бизнес-процессах:

  • Перейдем на страницу настройки свойств инфоблока (Контент > Информ. блоки > Типы информ. блоков > [Нужный_тип_инфоблока]).
  • На закладке Инфоблок в поле Участвует в документообороте или бизнес процессах выбираем Бизнес-процессы:

    Если в системе не установлен модуль Документооборот, то поддержка бизнес-процессов включается с помощью опции Участвует в бизнес процессах.

  Настройка прав доступа

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

Внимание! Уровень доступа Бизнес-процессы позволяет указанным группам пользователей только участвовать в бизнес-процессах. Для того чтобы пользователи смогли сами запускать бизнес-процессы, необходимо выставить более высокий уровень прав доступа для инфоблока, например Изменение.

  Настройка автозапуска бизнес-процесса

Настройка автозапуска бизнес-процесса при создании/изменении элемента инфоблока

Модуль Бизнес-процессы позволяет [dw]автоматически запускать[/dw][di]Примечание: Автоматический запуск процесса рекомендуется для часто повторяющихся процессов, для которых не требуется смена настроек.[/di] выбранные бизнес-процессы при создании/изменении элемента инфоблока.

  • Перейдем на закладку Шаблоны бизнес-процессов настраиваемого инфоблока.
  • В строке с названием нужного бизнес-процесса [dw]установим флаг[/dw][di]Примечание: Если снять оба флажка, то запуск процесса возможен только вручную.[/di] в поле Автозапуск: Создание и [dw]Изменение[/dw][di]Внимание! Не используйте режим Изменение для процессов, которые могут вызывать сами себя. Это приведет к цикличности.[/di].
  • Примечание: Если у вас установлена старшая редакция продукта (модуль Дизайнер бизнес-процессов), то вы имеете возможность редактировать шаблоны типовых бизнес-процессов и создавать собственные, поэтому вам названия шаблонов типовых процессов отображаются в виде ссылок и доступна ссылка Список шаблонов бизнес-процессов.

Для запуска бизнес-процесса вручную используйте пункт меню действий [dw]Запустить бизнес-процесс[/dw][di][/di] желаемого элемента инфоблока.

  Настройка формы создания/изменения элемента инфоблока

При создании/изменении элемента инфоблока пользователь указывает не только название и другие параметры, относящиеся к контенту, но и все параметры запускаемого бизнес-процесса. Для этого настроим саму форму редактирования элемента инфоблока. Перейдем на страницу со списком элементов инфоблока, а затем к форме редактирования некоторого элемента. По умолчанию закладка Бизнес процессы, на которой производится управление бизнес-процессами, отключена.
Для её включения есть [dw]два способа[/dw][di][/di]:

  1. Выбираем команду Отменить настройки формы и все доступные закладки появятся перед вами. Этот способ не удобен тем, что из всего, что появится, требуется только одна закладка, остальные мешаются;
  2. Выберите команду Настройки. Откроется окно Настройка формы редактирования. В секции Доступные вкладки выберите Бизнес-процессы и нажмите кнопку , чтобы в форме создания/редактирования элемента была доступна вкладка Бизнес-процессы с соответствующими полями.

Теперь, например, в форме добавления новости в публичной части сайта будет доступна вкладка [dw]Бизнес-процессы[/dw][di][/di].

Бизнес-процессы в Универсальных списках

  БП универсальных списков

Работать с Бизнес-процессами Универсальных списков можно на странице Сервисы > Списки > [Выбранный_список] при просмотре элементов списка. В меню элемента списка есть возможность запустить бизнес-процесс по шаблону или обработать уже запущенный бизнес-процесс. Например, остановить выполнение бизнес-процесса:

Нажмите на рисунок, чтобы увеличить

  БП в ленте Новостей

Есть возможность добавлять в список Бизнес-процессов в ленте Новостей собственные Бизнес-процессы (БП). Для того, чтобы в общем списке появился ваш Бизнес-процесс нужно:

Первый вариант

Вызвать форму создания бизнес-процесса через кнопку Создать новый на странице Автоматизация > Бизнес-процессы > Процессы в ленте новостей :

Нажмите на рисунок, чтобы увеличить

Либо воспользоваться командой Создать новый процесс в списке бизнес-процессов в ленте Новостей. Последний способ — рекомендуемый нами для использования:

Второй вариант

  1. Создать и настроить новый Универсальный список:

  2. Создать необходимый Бизнес-процесс в списке:

  3. Если Бизнес-процесс создавался со страницы Сервисы > Списки, то в настройках параметров созданного списка по команде [dw]Перенести в процессы[/dw][di][/di] добавьте его в список процессов ленты Новостей. Кнопка видна только администратору.

    Включить отображение БП в списке Новостей можно воспользовавшись флажком Показать в Новостях на странице Бизнес-процессы > Процессы в ленте:

    После чего Бизнес-процесс появится в списке Новостей.

  Особенности БП в ленте Новостей

В список процессов в ленте Новостей попадают только те процессы, у которых стоит автоматический запуск При добавлении. Если шаблон настроен на ручной запуск или на запуск При изменении, то он не будет запускаться из ленты Новостей, а только из списка элементов:

Если в Универсальном списке несколько бизнес-процессов с настройкой автоматического запуска При добавлении, то в списке бизнес-процессов ленты Новостей отображается тот, который создан позже. Например, надо создать список с двумя БП: по одному происходит уведомление какого-либо лица о запуске процесса, а по другому процессу должны начать выполняться какие-то действия. В этом случае надо сначала создать бизнес-процесс на уведомление, а только потом — БП на действия.

Бизнес-процессы в CRM

Работа с бизнес-процессами в CRM коробочной версии Битрикс24.

  Настройки бизнес-процессов

Создание [ds]шаблонов[/ds][di]Шаблон бизнес-процесса представляет собой последовательность шагов (действий) от начального к конечному, которые будут выполняться один за другим. Необходимо таким образом и в таком порядке составить шаги (действия), чтобы реализовать нужный алгоритм и получить необходимый результат.

Подробнее…[/di] бизнес-процессов в CRM выполняется на странице CRM > Настройки > Роботы и бизнес-процессы > Бизнес-процессы:

Нажмите на рисунок, чтобы увеличить

Откроется страница со списком сущностей CRM. Для каждой из них есть две кнопки: Добавить шаблон (создание нового шаблона БП) и Список шаблонов (посмотреть весь список шаблонов БП). Создание бизнес-процессов доступно для следующих [dw]сущностей CRM[/dw][di]На скриншоте Реестр документов — это смарт-процесс.
Нажмите на рисунок, чтобы увеличить
[/di]:

  • Лид
  • Контакт
  • Компания
  • Сделка
  • Коммерческое предложение
  • Счета (новые) (с версии crm 21.1300.0)
  • Смарт-процессы

    Примечание: В настройках смарт-процесса должна быть включена опция [dw]Использовать в смарт-процессе дизайнер бизнес-процессов[/dw][di]

    Подробнее о работе со смарт-процессами в статье helpdesk.bitrix24.ru.[/di], чтобы он был доступен для использования в бизнес-процессах. Для каждого смарт-процесса с включенной опцией отобразится отдельная строка в этом списке с названием смарт-процесса и возможностью создавать шаблоны.

  Особенности создания шаблонов

В дизайнере бизнес-процессов для сущностей CRM присутствует одноименный раздел с действиями, в основном доступными только для CRM:

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

Описание работы с этими действиями находится в главе курса Действия > CRM.

  Запуск бизнес-процесса

Запуск бизнес-процесса для элементов CRM выполняется аналогично другим процессам: автоматически при изменении или при добавлении элемента (зависит от настроек шаблона). Также возможен ручной запуск из списка элементов или из карточки элемента.

В списке элементов воспользуйтесь меню для нужного элемента:

В карточке элемента перейдите в секцию Бизнес-процессы, где можно запустить новый бизнес-процесс по одному из шаблонов или посмотреть историю по завершенным процессам:

Бизнес-процессы организации

В публичной части портала бизнес-процессы могут быть запущены не только для документов, списков или CRM, но и для любых внутренних процессов организации: оформления командировок, отпусков, утверждения счетов и т.п. По умолчанию в продукте создано и представлено пять типовых бизнес-процессов организации: Счет на оплату, Заявление на отпуск, Заявление на командировку, Исходящие документы и Выдача наличных.

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

Настройки для бизнес-процессов организации

Для настройки и создания публичного интерфейса бизнес-процессов организации:

  • В системе должен быть создан тип информационных блоков (например, Бизнес-процессы), инфоблоками которого будут бизнес-процессы организации:

  • После того как создан необходимый тип инфоблоков, следует создать новую страницу, разместить на ней комплексный компонент [comp include_232833]Бизнес-процесс (bitrix:bizproc.wizards)[/comp] и в его настройках указать созданный тип инфоблоков.

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

  • В итоге в публичной части портала появится страница с бизнес-процессами организации.

Примечание: Работа с бизнес процессами организации рассмотрена в статье на helpdesk.bitrix24.ru

Создание и редактирование бизнес-процесса организации

Для создания нового бизнес-процесса организации нажмите на [dw]кнопку Создать новый[/dw][di]
Обратите внимание, что данная кнопка доступна только при наличии прав доступа к типу
информационных блоков, содержащему бизнес-процесс, по умолчанию кнопка доступна только
Администратору системы.
[/di], откроется форма создания нового бизнес-процесса:

  • Вкладка Настройки содержит основные настройки процесса

    • Название процесса — название нового бизнес-процесса организации;
    • Описание процесса — произвольное описание;
    • Сортировка — индекс сортировки бизнес-процесса, определяющий его положение в общем списке. Чем он меньше, тем выше в списке будет располагаться бизнес-процесс;
    • Картинка — изображение для бизнес-процесса;
    • Включить функционал автоблокировки элементов при редактировании — если опция отмечена, то при редактировании элемента будет показано сообщение о том, что элемент заблокирован. Блокировка будет снята после сохранения изменений, либо же её можно снять вручную из меню действий.
  • Вкладка [dw]Подписи[/dw][di] [/di] содержит подписи к элементам и разделам процесса. Вы можете настраивать их для своего удобства и сделать их более подходящими содержанию вашего процесса.

  • Во вкладке Управление правами доступа к элементам и разделам процесса вы можете [dw]назначить права[/dw][di]Варианты прав доступа аналогичны таковым в настройках информационного блока (вкладка Доступ). Пояснения можно посмотреть в пользовательской документации.[/di] для работы с процессом как для целых отделов и групп, так и персонально для отдельных пользователей.

Заполните все поля необходимым для вас образом и нажмите кнопку Сохранить. После сохранения ваш процесс отразится в общем списке процессов.

После того, как бизнес-процесс создан, можно его изменять и редактировать, щелкнув по нему в списке всех процессов.

В [dw]появившемся меню[/dw][di][/di] можно выделить следующие вкладки:

  • Добавить элемент — запустить экземпляр данного процесса. По сути это действие идентично вызову бизнес-процесса из вкладки Мои процессы.
  • Управление разделами — создание разделов для группировка элементов
  • Бизнес-процессы создание/редактирование шаблона бизнес-процесса с помощью Дизайнера
  • Настройки процесса — открыть меню настроек бизнес-процесса
  • Экспорт в Excel — экспорт списка элементов в Excel

Дизайнер бизнес-процессов

Модуль Дизайнер бизнес-процессов, входящий в старшие редакции продуктов «1С-Битрикс», предназначен для проектирования, создания и изменения бизнес-процессов.

Дизайнер бизнес-процессов

Проектируем бизнес-процесс

Модуль Дизайнер бизнес-процессов, входящий в старшие редакции продуктов «1С-Битрикс», предназначен для проектирования, создания и изменения бизнес-процессов.

Механизм проектирования бизнес-процессов реализован за счет визуального программирования по технологии [dw]drag&drop[/dw][di]Drag-and-drop — способ оперирования элементами интерфейса при помощи манипулятора «мышь» или сенсорного экрана.
Подробнее…[/di], понятной и известной любому пользователю компьютера. Шаблон бизнес-процессов создается в особом [dw]визуальном конструкторе[/dw][di]Визуальный конструктор — инструмент, входящий в состав модуля Дизайнер бизнес-процессов, который позволяет создавать и редактировать шаблоны бизнес-процессов.
Подробнее…[/di], который позволяет пользователю, не владеющему программированием, задать нужный порядок бизнес-процесса, отобразить его специфичные потребности с помощью простых графических схем.

Создание бизнес-процессов — это программирование, хоть и без написания кода (в большинстве случаев). Помимо знания предметной области, в которой проектируется шаблон, и знания реального процесса, требуется постановка задачи, алгоритмирование и тестирование. Для этого требуются определенные навыки и базовая подготовка.

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

Примечание: Если проектируемый процесс имеет сложную структуру, то лучше использовать Бизнес-процесс со статусами.

Визуальный конструктор

Как открыть визуальный конструктор?

Визуальный конструктор — инструмент, входящий в состав модуля Дизайнер бизнес-процессов, который позволяет создавать и редактировать шаблоны бизнес-процессов.

  Административная часть

В административной части есть два способа открытия списка шаблонов бизнес-процессов. Рекомендуемый нами (более удобный) способ вызова визуального конструктора: перейдите к желаемому инфоблоку и нажмите на контекстной панели кнопку Шаблоны бизнес-процессов.

Нажмите на рисунок, чтобы увеличить

После чего используйте меню кнопки Создать шаблон на контекстной панели или команду меню действий [dw]Изменить[/dw][di][/di].

  Публичная часть

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

Нажмите на рисунок, чтобы увеличить

А так для Диска:

Нажмите на рисунок, чтобы увеличить

Далее воспользуйтесь кнопками создания бизнес-процессов или отредактируйте существующий с помощью кнопки [dw]Изменить[/dw][di][/di] в меню действий.

Из чего состоит визуальный конструктор

Внешний вид визуального конструктора

Нажмите на рисунок, чтобы увеличить

  Внешний вид

Визуальный конструктор состоит из четырех областей. Его вид будет отличаться в зависимости от того, какой процесс редактируется.

  1. Контекстная панель

Контекстная панель визуального конструктора состоит из набора кнопок:

  • Параметры шаблона — позволяет задать/изменить [dw]основные параметры[/dw][di]Шаблон БП представляет собой последовательность шагов (действий) от начального к конечному, которые выполняются один за другим. Необходимо таким образом и в таком порядке составить шаги (действия), чтобы реализовать нужный нам алгоритм и получить необходимый результат.
    Подробнее…[/di] и параметры запуска бизнес-процесса;
  • Глобальные переменные — переход к списку глобальных переменных;
  • Глобальные константы — переход к списку глобальных констант;
  • Список шаблонов — переход к списку шаблонов бизнес-процессов;
  • Создать шаблон <тип_бизнес-процесса> — позволяет перейти к созданию одного из типов бизнес-процессов;
  • [ds]Экспорт и Импорт[/ds][di]Процесс переноса шаблона с одного проекта на другой достаточно простой. Для этого необходимо воспользоваться кнопками на контекстной панели дизайнера бизнес-процессов.
    Подробнее…[/di] — экспорт текущего шаблона бизнес-процесса и импорт шаблона бизнес-процесса взамен текущего.

  2. Основная рабочая область

Внешний вид основной рабочей области зависит от типа БП: [dw]последовательный бизнес процесс [/dw][di]Последовательный бизнес-процесс — действия выполняются одно за другим от точки входа до точки выхода.

Подробнее…[/di] или [dw]бизнес-процесс со статусами[/dw][di]Бизнес-процесс со статусами — бизнес процесс, не имеющий начала и конца, в процессе работы которого
происходит переход из одного состояния (статуса) в другое с разделением прав доступа. При редактировании
каждого отдельного действия откроется форма редактирования последовательного подпроцесса.
Визуальный конструктор, процесс со статусами
Подробнее…[/di].

Создание и редактирование шаблона бизнес-процесса, т.е. добавление некоторых действий, осуществляется простым [dw]перетягиванием действия [/dw][di][/di] на основную рабочую область конструктора в нужном месте шаблона бизнес-процесса. Или воспользуйтесь меню, которое доступно при нажатии на [dw]треугольник[/dw][di]Основная рабочая область[/di] между действиями.

Для копирования действий перетащите уже существующее действие, зажав клавишу Ctrl. Для удаления действия служит кнопка X, а для выполнения детальной настройки размещенного в шаблоне действия — кнопка X. Некоторые действия [dw]сворачиваются[/dw][di][/di] для экономии места на экране .

  3. Панель действий конструктора

Панель действий визуального конструктора содержит набор [dw]действий[/dw][di]Последовательный бизнес-процесс строится из набора действий. Каждое действие выполняет определенную функцию и имеет собственные параметры.
Подробнее…[/di], из которых и производится конструирование шаблона.

Создание своих групп действий в панели действий

  4. Кнопки управления

Если осуществляется создание/редактирование шаблона последовательного бизнес-процесса, то отображаются кнопки: Сохранить, Применить и Отмена.

Если же выполняется создание/редактирование шаблона бизнес-процесса со статусами, то отображается только кнопка Вернуться к настройке статусов, которая служит для перехода к схеме шаблона, где и выполняется сохранение/отмена внесенных изменений в статусы и их действия.

Примечание: Если шаблон был изменен, но не сохранен, то при попытке покинуть страницу появится [dw]предупреждение[/dw][di][/di] о возможной потере несохраненных данных, с возможностью сохранить изменения.

  Заключение

Мы узнали, где запустить Визуальный конструктор и как проектировать в нем шаблоны бизнес-процессов. Инструмент, с помощью технологии drag&drop, позволяет наглядно и удобно создавать и редактировать шаблоны бизнес-процессов.

Глобальные переменные и константы

В системе возможно хранение значений, доступных во всех процессах.

  Глобальные переменные и константы

На контекстной панели [ds]визуального конструктора[/ds][di]Контекстная панель визуального конструктора состоит из набора кнопок:

Подробнее…[/di] расположены две кнопки: Глобальные переменные и Глобальные константы. По нажатии на кнопку открывается слайдер со списком глобальных переменных или констант соответственно.

Глобальные переменные используются для хранения данных и могут быть [ds]изменены[/ds][di]Например, действием Изменение глобальных переменных. Действие позволяет изменить значения глобальных переменных.

Подробнее…[/di]. Доступны сразу во

всех

шаблонах бизнес-процессов.
В продукте с версии 21.500.0 модуля Бизнес-процессы.

Глобальные константы используются для хранения данных и имеют постоянное (неизменяемое) значение. Доступны сразу во

всех

шаблонах бизнес-процессов.

Глобальные переменные и константы до версии дизайнера бизнес-процессов 21.400.0

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

Процесс создания одинаков для глобальных переменных и констант, поэтому рассмотрим его на примере создания глобальной переменной.

По нажатии на кнопку Глобальные переменные открывается слайдер со списком всех, [dw]доступных[/dw][di]Зависит от параметра переменной Видимость.[/di] в этом процессе, глобальных переменных. Нажмем на кнопку Создать переменную — откроется слайдер с параметрами:

Нажмите на рисунок, чтобы увеличить

  • Название — название глобальной переменной;
  • Тип — тип переменной из списка;
  • Множественность — является ли переменная множественной (имеет несколько значений);
  • Значение — значение переменной;
  • Видимость — где использовать переменную:
    • Везде — переменная доступна во всех процессах (CRM, списки, диск и т.д.);
    • CRM — переменная доступна только в процессах CRM (БП сделок, лидов, счетов и т.д.);
    • [Сущность CRM] — переменная доступна только в процессах выбранной сущности CRM (например, только в сделках или только в счетах). Для выбора в списке всегда будет доступна только та сущность CRM, для которой открыт шаблон бизнес-процесса.

    В 1С-Битрикс: Управление сайтом доступен только вариант видимости Везде.

  • Описание — произвольный текст для описания переменной.

Внимание: Параметры Тип, Множественность и Видимость задаются только при создании глобальной переменной / константы и станут недоступны для изменения после сохранения.

Примечание: Глобальные константы и переменные также используются в роботах в CRM.

  Удаление

[dw]Групповое удаление[/dw][di]С версии модуля Бизнес-процессы 21.700.0.[/di] глобальных переменных и констант выполняется из списка:

  • Отметьте в списке глобальные переменные / константы, которые требуется удалить;
  • Нажмите кнопку Удалить под списком.

Отдельную переменную / константу можно удалить через меню элемента списка.

Проверьте себя

Ответьте на несколько вопросов по теме Дизайнер бизнес-процессов, которые помогут вам самим оценить свои знания. Это не тест, это просто проверка того, как вы поняли тему. Удачи!

Верно ли утверждение?

Оцените верность утверждения: Верно или Неверно. А потом в спойлере проверьте ваш выбор.

1 Дизайнер бизнес-процессов позволяет построить бизнес-процесс в виде графической схемы.

Верно

Неверно

2 Для каждого экземпляра бизнес-процесса ведется лог.

Верно

Неверно

3 В визуальном конструкторе есть возможность экспорта созданного шаблона БП.

Верно

Неверно

4 Глобальные переменные и константы называются глобальными, т.к. доступны к использованию во всех действиях текущего шаблона бизнес-процесса.

Верно

Неверно

5 Есть возможность ограничить видимость глобальной переменной, так чтобы она была доступна только для процессов Диска.

Верно

Неверно

Практические задания

После изучения главы Дизайнер бизнес-процессов рекомендуем выполнить несколько практических заданий. Выполнять их необходимо на установленной на локальный компьютер [ds]пробной версии Битрикс24 в коробке[/ds][di]В главе описаны предварительные шаги для установки продукта, шаги мастера установки, а также выбор и первоначальная настройка портала для быстрого развертывания своего проекта.

Подробнее…[/di].

В начале установки необходимо выбрать [dw]1C-Битрикс24 Корпоративный портал[/dw][di][/di]. Период работы демонстрационной версии составит 30 дней.

Примечания:

  1. НЕ рекомендуется выполнять задания на работающем, «боевом» портале;
  2. Если вы всё же пытаетесь выполнять задания на работающем портале, где вы не являетесь администратором, то не все задания можно выполнить.

Практические задания состоят из вопроса, скриншота или видео с конечным результатом и объяснением как это получить в спойлере. Не торопитесь подглядывать в спойлер.

Практические задания

Примечание: практические задания предназначены для ознакомления с интерфейсом и получения базовых навыков работы с бизнес-процессами. В заданиях НЕ изучается планирование и создание сложных бизнес-процессов.

  1. Перейдите в Административную часть и настройте инфоблок Оргструктура > График отсутствий на участие в бизнес-процессах. Затем, перейдите к списку шаблонов этого инфоблока и откройте визуальный конструктор для шаблона Двухэтапное утверждение (это можно сделать двумя способами).
  2. Перейдите в публичную часть портала. Откройте список шаблонов бизнес-процессов для Сделок (CRM). Создайте новый пустой шаблон последовательного бизнес-процесса.
  3. Откройте на редактирование шаблон, созданный в задании № 2. Изучим работу с визуальным конструктором:
    • Добавьте в рабочую область действия Сообщение соц. сети и Цикл. Используйте для этого разные способы (треугольник и перетаскивание);
    • Разместите [dw]копию[/dw][di]Помните про копирование при помощи клавиши Ctrl?[/di] действия Сообщение соц. сети внутри цикла;
    • Сверните действие Цикл, а одно из действий Сообщение соц. сети — удалите.
    • Попробуйте сохранить шаблон бизнес-процесса и изучите возникшую ошибку. О чём она сообщает?

Шаблоны бизнес-процессов

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

Примечание для библиотеки документов

Создание и редактирование шаблонов бизнес-процессов выполняется в административном разделе для всех инфоблоков, кроме используемых в рамках Библиотеки документов и Бизнес-процессов организаций.

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

Настройка параметров шаблона

Шаблоны бизнес-процессов используются для быстрой и эффективной настройки формы бизнес-процесса согласно потребностям сотрудника. При создании бизнес-процесса на основе шаблона происходит не только изменение внешнего вида бизнес-процесса, но и заполнение его некоторыми начальными параметрами.

Шаблон БП представляет собой последовательность шагов (действий) от начального к конечному, которые выполняются один за другим. Необходимо таким образом и в таком порядке составить шаги (действия), чтобы реализовать нужный нам алгоритм и получить необходимый результат.

  Создание шаблона

Процесс проектирования шаблона бизнес-процесса разделим на два этапа:

  • Первый — это задание основных параметров шаблона;
  • Второй — конструирование шаблона, по которому будет выполняться бизнес-процесс.

Второй этап рассматривается в следующих уроках. А в этом уроке остановимся на первом этапе. Форма настройки параметров шаблона бизнес-процесса разделена на несколько закладок, с помощью которых задаются параметры запуска и настройки бизнес-процесса.

Примечание: Созданные параметры, переменные и константы будут доступны для использования в шаблоне бизнес-процесса через форму [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения.
Подробнее…[/di].

Внимание! В бизнес-процессах отсутствует возможность использования параметров, переменных и констант родительского процесса дочерними БП. Для передачи данных из одного процесса в другой можно использовать действие [ds]Запуск бизнес-процесса[/ds][di]Действие выполняет запуск нового бизнес-процесса для указанного документа и по выбранному шаблону бизнес-процесса.

Подробнее…[/di].

  Основное

На закладке Основное указываются название шаблона бизнес-процесса, его описание и определяются параметры автоматического запуска. Бизнес-процесс имеет два варианта автоматического запуска: при создании и/или при изменении элемента. Если оба флага сняты, то бизнес-процесс возможно запустить только вручную.

  Параметры

Параметры используются для явного указания каких-либо значений во время исполнения бизнес-процесса и задаются пользователем, запустившим бизнес-процесс. Значения параметров запрашиваются непосредственно при запуске бизнес-процесса. И не могут быть изменены бизнес-процессом, в отличие от переменных.

Для создания параметра нажимаем ссылку Добавить параметр на закладке Параметры и заполняем [dw]поля[/dw][di]Так выглядит форма создания для параметра типа Пользователь:

[/di] в форме:

  • Идентификатор — символьный идентификатор параметра;
  • Описание — произвольное описание параметра;
  • Тип — с помощью выпадающего списка указывается тип данных параметра запуска;
  • Обязательный — при отмеченной опции параметр будет обязательным для заполнения и бизнес-процесс не запустится без указания значения параметра;
  • Множественный — при отмеченной опции может быть задано несколько значений параметра;
  • Значение по умолчанию — указывается значение параметра, установленное по умолчанию. Вид поля меняется в зависимости от выбранного типа;

    Примечание: для некоторых типов данных значение по умолчанию можно указать с помощью кнопки […], по нажатии которой открывается форма [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения.
    Подробнее…[/di].

Перечисленные выше поля — общие для всех типов параметров. Также для для некоторых типов доступны дополнительные поля. Например, для типа Список появится поле Варианты значений для составления значений списка. А для типа Привязка к элементам в виде списка — поле выбора инфоблока.

После создания параметр отобразится в [dw]общем списке[/dw][di][/di] параметров.

При запуске бизнес-процесса будут запрошены значения для этих параметров. Например так:

  Переменные и Константы

Переменные и константы создаются аналогично параметрам.

 Переменные

Переменные используются для временного хранения данных, необходимых для выполняемого процесса. Значения переменных хранятся до тех пор, пока выполняется бизнес-процесс. После его завершения они [dw]все стираются[/dw][di]Поэтому если необходимо куда-то сохранять переменную, например файл, добавленный пользователем, то следует использовать действие Изменение документа. С помощью него значение переменной сохраняется в предварительно созданное дополнительное поле документа соответствующего типа (файл, например).[/di].

В отличие от параметров бизнес-процесса, значения переменных могут быть изменены по ходу бизнес-процесса действием [ds]Изменение переменных[/ds][di]Действие позволяет изменить значения переменных, заданных в настройках шаблона.

Подробнее…[/di].

Примечание: Также в шаблоне доступны к использованию [ds]Глобальные переменные[/ds][di]На контекстной панели визуального конструктора расположены две кнопки: Глобальные переменные и Глобальные константы. По нажатии на кнопку открывается слайдер со списком глобальных переменных или констант соответственно.

Подробнее…[/di]. Список глобальных переменных открывается через [ds]визуальный конструктор[/ds][di]Контекстная панель визуального конструктора состоит из набора кнопок:

Подробнее…[/di]. Глобальные переменные попадают сразу во

все

шаблоны бизнес-процессов. Доступны с версии 21.500.0 модуля Бизнес-процессы.

 Константы

Константы нужны для хранения информации, значение которой не должно меняться во время исполнения данного процесса. Их значение настраиваем до запуска бизнес-процесса.
Константы добавляются по ссылке Добавить константу на соответствующей закладке. При этом откроется [dw]вкладка[/dw][di][/di] создания константы. В поле Значение константы указываем, какое значение имеет константа в процессе исполнения бизнес-процесса.

Примечание: Также в шаблоне доступны к использованию [ds]Глобальные константы[/ds][di]На контекстной панели визуального конструктора расположены две кнопки: Глобальные переменные и Глобальные константы. По нажатии на кнопку открывается слайдер со списком глобальных переменных или констант соответственно.

Подробнее…[/di]. Список глобальных констант открывается через [ds]визуальный конструктор[/ds][di]Контекстная панель визуального конструктора состоит из набора кнопок:

Подробнее…[/di]. Глобальные константы попадают сразу во

все

шаблоны бизнес-процессов.

  Доступ

На закладке Доступ для пользователей задаются начальные права, которые устанавливаются для документа при его запуске. Причем права доступа [dw]задаются[/dw][di][/di] как явно, так и с помощью переменных.

Особенности назначения прав в системе

Если для документа используется [ds]упрощенная[/ds][di]Простой режим настройки прав доступа к инфоблоку — это режим, когда опция Расширенное управление правами отключена, а в секции Доступ для групп пользователей перечислены все имеющиеся у вас в системе группы пользователей.
Подробнее…[/di] (старая) версия прав, то они устанавливаются жестко извне (настройки доступа к инфоблокам/спискам/и т.д.). Единственный вариант, позволяющий устанавливать права прямо из бизнес-процесса — это установка для документа права бизнес-процессы извне (права на сам документ). В этом случае с помощью закладки Доступ или действия Установка прав можно менять права по ходу выполнения процесса.

Если используются [ds]расширенные права[/ds][di]Расширенный режим позволяет настроить права доступа не только целиком ко всему инфоблоку, но и гибко задать права на отдельные его разделы и элементы.
Подробнее…[/di] доступа, то из бизнес-процесса можно только добавлять новые права на документ, которые будут оставаться у документа даже после выполнения процесса. Переопределить права, которые были установлены извне, внутри бизнес-процесса нельзя.

Создание шаблона последовательного бизнес-процесса

Посмотрим видеоролик о создании шаблона [dw]последовательного бизнес-процесса[/dw][di]Последовательный бизнес-процесс — действия выполняются одно за другим от точки входа до точки выхода.
Подробнее…[/di]. Узнаем как использовать визуальный конструктор и настраивать параметры действий.

  Видеоурок

  Создание шаблона последовательного БП

При проектировании шаблона последовательного бизнес-процесса после [dw]настройки и сохранения его параметров[/dw][di]Шаблон БП представляет собой последовательность шагов (действий) от начального к конечному, которые выполняются один за другим. Необходимо таким образом и в таком порядке составить шаги (действия), чтобы реализовать нужный нам алгоритм и получить необходимый результат.
Подробнее…[/di] сразу становится доступным визуальный конструктор для конструирования шаблона.

Конструирование шаблона выполняется путем [dw]добавления в рабочую область[/dw][di][/di] необходимых действий с последующей настройкой их параметров.

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

Заполните необходимые поля. Для упрощения процедуры заполнения полей служит кнопка , при нажатии которой открывается зависящая от типа поля форма [dw]Вставка значения[/dw][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения
Подробнее…[/di].

Для выбора значения откройте нужную группу, затем выберите необходимое значение и нажмите кнопку Вставить (либо дважды кликнете по выбранному значению). Для вставки нескольких значений необходимо повторно вызвать форму выбора значения. Значение или его код будут подставлены в настраиваемое поле (На иллюстрации выше такой код выделен красной рамочкой).

По окончании настройки параметров действия, сохраните его. Система вернется к созданию (редактированию) шаблона бизнес-процесса.

Когда в шаблон будут добавлены и настроены все необходимые действия, не забудьте сохранить его. Шаблон отобразится в списке всех шаблонов бизнес-процессов.

Примечание: если вы измените и сохраните существующий шаблон, он применится только к новым бизнес-процессам. Запущенные ранее бизнес-процессы продолжат работать по старому шаблону.

Создание шаблона бизнес-процесса со статусами

При проектировании шаблона [dw]бизнес-процесса со статусами[/dw][di]Бизнес-процесс со статусами — бизнес процесс, не имеющий начала и конца, в процессе работы которого происходит переход из одного состояния (статуса) в другое с разделением прав доступа.
Подробнее…[/di], после [dw]настройки и сохранения его параметров[/dw][di]Шаблон БП представляет собой последовательность шагов (действий) от начального к конечному, которые выполняются один за другим. Необходимо таким образом и в таком порядке составить шаги (действия), чтобы реализовать нужный нам алгоритм и получить необходимый результат.
Подробнее…[/di] осуществляется переход к конструированию непосредственно самого шаблона в 3 этапа: создание статусов документа, настройка действий внутри каждого из них и связей между ними, а также настройка прав доступа для каждого статуса.

  Видеоуроки

Содержание видеоурока отличается от текущей версии продукта. Более актуальная информация содержится в тексте урока.

  Создание статусов

Создание статусов выполняется на главной странице построения шаблона бизнес-процесса:

  • Нажмите кнопку Добавить статус для создания нового статуса. Первый созданный статус станет начальным.

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

    Внимание: в версиях модуля до 21.400.0 смена начального статуса бизнес-процесса невозможна.

  • В форме создания статуса укажите его название и права доступа к документу (элементу бизнес-процесса):

    Примечание: Добавляйте пользователя или группу пользователей только к одному праву доступа (максимальному). Если добавите в несколько прав доступа — применится самое слабое (верхнее в списке) право.

  • Сохраните статус.

Аналогичным образом добавляются все необходимые статусы. Например, в шаблон могут быть добавлены такие статусы:

.

Все созданные статусы можно [dw]менять местами[/dw][di]Такая возможность стала доступна с версии 21.400.0 модуля Бизнес-процессы.[/di] путем перетаскивания, как вам удобно для построения шаблона. При этом связи статусов сохраняются.

  Настройка действий и создание связей

После того, как все статусы созданы, следует настроить операции и действия (подпроцессы), которые выполняются в каждом статусе, а также создать связи между статусами.

Для каждого статуса настраивается:

  • Действие [dw]Команда[/dw][di]Действие сходно по смыслу действию Команда для шаблона последовательных бизнес-процессов.[/di], которое позволяет пользователю вручную запускать подпроцесс. Внешний вид элемента управления, с помощью которого пользователем запускается команда, зависит от места запуска бизнес-процесса и типа документа. Команду используем, например, для определения того, как должен исполняться бизнес-процесс. Или как подпроцесс, который выполняется только при определенных условиях;
  • Действие [dw]Выполнение через заданное время[/dw][di]Действие сходно по смыслу действию Пауза в выполнении для шаблона последовательных бизнес-процессов.

    Подробнее…[/di] — позволяет [dw]отложить[/dw][di]Действие удобно использовать, например, если необходимо автоматически выполнить какие-то действия без участия сотрудников[/di] выполнение подпроцесса на заданное в обработчике время;

  • Обработчик входа в данный статус — отдельный последовательный бизнес-процесс. Всегда выполняется автоматически при входе в данный статус;
  • Обработчик выхода из данного статуса — отдельный последовательный бизнес-процесс. Всегда выполняется автоматически при [dw]выходе[/dw][di]Например, можно отправлять информационное сообщение, что процесс вышел из текущего статуса.[/di] из данного статуса.

  Настройка прав доступа

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

Набор прав доступа зависит от типа документа. Так для [dw]универсальных списков[/dw][di][/di] доступна настройка 8 типов, а для [dw]инфоблоков[/dw][di][/di] всего 2. Для сущностей CRM настройка дополнительных прав в статусе отсутствует.

  Рассмотрим для чего нужна такая настройка прав доступа на простом примере организации проверки вновь добавленных элементов руководителем. Пусть сотрудники могут видеть и редактировать вновь добавленный ими элемент до тех пор, пока руководитель не утвердит его. После утверждения элемент сотруднику не доступен.

  1. В настройках универсального списка укажем следующее право доступа: Сотрудники = добавление. После такой настройки прав сотрудник сможет добавлять элементы в список, но не сможет просматривать или изменять их.
  2. Теперь в настройках прав доступа требуемого статуса бизнес-процесса укажем, что право на Изменение имеет Автор.
  3. Право из бизнес-процесса добавится к правам на список. Произойдет сопоставление понятия Автор с конкретным пользователем в системе и его правами в списке. После такой настройки пользователь сможет изменять элемент до тех пор, пока он находится в текущем статусе бизнес-процесса. Как только руководитель утвердит документ и бизнес-процесс перейдет в другой статус, сотрудник больше не будет иметь доступа к элементу.

Примечание: Смысл в том, что права на список и права у бизнес-процесса — это разные права. И по правилам списков (инфоблоков) они «не знают» такой тип пользователя как Автор (т.е. пользователя, запустившего бизнес-процесс).

Внимание: В бизнес-процессах со статусами переход к другому статусу переписывает права доступа к документу, установленные действием Установка прав в текущем статусе.

  Общая схема работы (Битрикс24)

При входе в статус первым всегда выполняется Обработчик входа в данный статус, если он задан. После выполнения всех внутренних действий статуса бизнес-процесс переходит в режим ожидания. Для дальнейшего продолжения процесса можно воспользоваться подпроцессами Выполнение через заданное время и Команда.

Примечание: если в Обработчике входа в данный статус уже добавлен переход к другому статусу прерывающий выполнение текущего, то после него сразу будет выполняться Обработчик выхода из данного статуса. Подпроцессы Выполнение через заданное время и Команда будут в таком случае пропущены.

Если статус не является конечным, то переход от одного статуса к другому (создание связей) с помощью действия [dw]Установить статус[/dw][di]Действие позволяет перевести бизнес-процесс в другой статус.

Подробнее…[/di], которое должно располагаться внутри подпроцесса, предполагающего такой переход. При выходе из статуса автоматически будет выполнен подпроцесс Обработчик выхода из данного статуса, если он создан.

Примечание: если вы измените и сохраните существующий шаблон, он применится только к новым бизнес-процессам. Запущенные ранее бизнес-процессы продолжат работать по старому шаблону.

Небольшой пример настройки статуса

Пример использования параметров шаблона

Посмотрим, как использовать параметры шаблона

Предположим, мы хотим, чтобы при запуске бизнес-процесса пользователь имел возможность явно указывать сотрудника, которому адресовано почтовое сообщение, отсылаемое в ходе выполнения процесса. Рассмотрим как это реализовать на примере штатного бизнес-процесса Ознакомление с документом.

Настройки

В результате при запуске бизнес процесса у пользователя запрашиваются дополнительные параметры:

Пример: организация обработки и доработки документа

Рассмотрим [dw]пример[/dw][di]В данном примере мы будем рассматривать только принцип создания и использования статусов, опустив прочие настройки.[/di]: бизнес-процесс позволяет утверждать документ в цикле, запрашивать нужную информацию в случае доработки, а также отображает автору и проверяющему комментарии, которые они оставляют при выполнении заданий.

  Начальные действия

  • Создадим 3 статуса:
    • Рассмотрение документа
    • Доработка
    • Утвержден
  • В каждом добавим подпроцесс Вход в статус.

  Cтатус Рассмотрение документа

  • Перейдем в статус и добавим действие [ds]Утверждение документа[/ds][di]Действие позволяет произвести утверждение документа, для которого запущен бизнес-процесс.

    Подробнее…[/di]. В параметрах действия заполним [dw]все обязательные поля[/dw][di][/di]. Поле Описание задания пока оставим пустым, мы к нему вернемся позже;

  • Добавим действие [ds]Установить статус[/ds][di]Действие позволяет перевести бизнес-процесс в другой статус , которое доступно только для бизнес-процессов со статусами.

    Подробнее…[/di] в каждую ветку утверждения документа, после чего произведем их настройку для статусов [dw]Утвержден[/dw][di][/di] и [dw]Доработка[/dw][di][/di].

Получится такой процесс:

В случае если проверяющий сотрудник утвердит документ, то бизнес процесс перейдет в статус Утвержден, иначе — в статус Доработка.

  Статус Доработка

  • Перейдем в статус и добавим действие [ds]Запрос дополнительной информации[/ds][di]Действие создает задание, в ходе которого у пользователя будет запрошена дополнительная информация необходимая для выполнения бизнес-процесса.
    Подробнее…[/di]. В Поле Описание задания, используя форму [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения.

    Подробнее…[/di], добавим [dw]комментарий[/dw][di][/di], который будет оставлен проверяющим после выполнения действия Утверждение документа (Утверждение документа > Комментарий, группа Дополнительные результаты).

  • Далее добавим действие Установить статус и произведем его настройку для возврата документа в статус Рассмотрение (для повторного рассмотрения после доработки):

  • Вернемся в статус Рассмотрение документа к настройке действия Утверждение документа. Аналогично предыдущему пункту, в поле Описание задания, используя форму [dw]Вставка значения[/dw][di][/di], добавим [dw]комментарий[/dw][di][/di]. Это будет комментарий, который оставит автор документа после выполнения действия Запрос дополнительной информации (из статуса Доработка).

В результате в этом статусе мы получим от автора нужные исправления/комментарии и отправим документ на повторное утверждение.

  Статус Утвержден

В этом статусе можно проинформировать автора документа об утверждении документа, например, с помощью действия [ds]Сообщение соц. сети[/ds][di]Действие, которое позволяет отправить уведомление о событии указанному пользователю/группе пользователей через модуль социальной сети.

Подробнее…[/di]. А также добавим действие [ds]Прерывание процесса[/ds][di]Действие позволяет прекратить выполнение бизнес-процесса.

Подробнее…[/di], для завершения нашего бизнес-процесса после уведомления автора.

  Итоги и шаблон для ознакомления

В итоге, после всех настроек, наш бизнес процесс со статусами в общем виде выглядит так:

  Шаблон для ознакомления: Скачать. После загрузки шаблона его нужно импортировать на вашу установку «1С-Битрикс: Управление сайтом» или «Битрикс24» и открыть его в ней.

Экспорт и импорт

Если нужно перенести шаблон

Процесс [dw]переноса[/dw][di]Перенос шаблона с одной установки на другую подразумевает наличие администраторских прав.[/di] шаблона с одного проекта на другой достаточно простой. Для этого необходимо воспользоваться [dw]кнопками[/dw][di][/di] на контекстной панели [dw]дизайнера бизнес-процессов[/dw][di]Модуль Дизайнер бизнес-процессов, входящий в старшие редакции продуктов «1С-Битрикс», предназначен для проектирования, создания и изменения бизнес-процессов.
Подробнее…[/di].

Перед этим в проекте, куда импортируется шаблон, необходимо создать такие же типы документов (инфоблок/список/и т.д.) как и в проекте, откуда экспортируется шаблон.

Внимание! Нельзя импортировать шаблон процесса с одним типом документа в процесс с другим. Пример: экспортировать шаблон из CRM и импортировать его в шаблоны бизнес-процессов Списков.

Особенности импорта шаблона бизнес-процесса списков

Проверьте себя

Ответьте на несколько вопросов по теме Шаблоны бизнес-процессов, которые помогут вам самим оценить свои знания. Это не тест, это просто проверка того, как вы поняли тему. Удачи!

Верно ли утверждение?

Оцените верность утверждения: Верно или Неверно. А потом в спойлере проверьте ваш выбор.

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

Верно

Неверно

2 Значения параметров запрашиваются непосредственно при запуске бизнес-процесса у пользователя, который запустил этот бизнес-процесс.

Верно

Неверно

3 Значения параметров, указанных при запуске, могут быть изменены в процессе выполнения бизнес-процесса.

Верно

Неверно

4 Все значения переменных сохраняются в системе, как для незавершенных, так и для завершенных бизнес-процессов.

Верно

Неверно

5 Шаблон бизнес-процесса можно изменить в любой момент. Запущенные ранее бизнес-процессы продолжат работать по старому шаблону.

Верно

Неверно

6 Для каждого статуса в шаблоне бизнес-процесса со статусами доступна настройка прав доступа к документу.

Верно

Неверно

7 Начальным статусом в шаблоне является тот статус, что расположен первым. Начальный статус можно изменить.

Верно

Неверно

8 Тип пользователя Автор в шаблоне бизнес-процесса — это пользователь создавший документ, в котором запущен бизнес-процесс.

Верно

Неверно

9 Шаблоны бизнес-процессов одинаковы для всех типов документов (crm, диск, списки и т.д.). Например, возможен импорт шаблона БП CRM в шаблон БП Диска.

Верно

Неверно

Практические задания

После изучения главы Шаблоны бизнес-процессов рекомендуем выполнить несколько практических заданий. Выполнять их необходимо на установленной на локальный компьютер [ds]пробной версии Битрикс24 в коробке[/ds][di]В главе описаны предварительные шаги для установки продукта, шаги мастера установки, а также выбор и первоначальная настройка портала для быстрого развертывания своего проекта.

Подробнее…[/di].

В начале установки необходимо выбрать [dw]1C-Битрикс24 Корпоративный портал[/dw][di][/di]. Период работы демонстрационной версии составит 30 дней.

Примечания:

  1. НЕ рекомендуется выполнять задания на работающем, «боевом» портале;
  2. Если вы всё же пытаетесь выполнять задания на работающем портале, где вы не являетесь администратором, то не все задания можно выполнить.

Практические задания состоят из вопроса, скриншота или видео с конечным результатом и объяснением как это получить в спойлере. Не торопитесь подглядывать в спойлер.

Практические задания

Примечание: практические задания предназначены для ознакомления с интерфейсом и получения базовых навыков работы с бизнес-процессами. В заданиях НЕ изучается планирование и создание сложных бизнес-процессов.

  1. В процессах ленты новостей создайте новый процесс с названием Взять оплачиваемый отгул. Cоздайте для него шаблон последовательного БП, автоматически запускаемого при добавлении элемента. Добавьте в шаблон:
    • два обязательных параметра:
      • типа Дата, для указания даты взятия отгула;
      • типа Список, для указания причин взятия отгула. Пусть причин будет две: за работу в выходной и за особые заслуги.
    • одну переменную
      • типа Деньги, для указания размера оплаты дня отгула.

    Сохраните шаблон.

  2. Продолжим создание шаблона, начатого в задании № 1. Задействуйте созданные параметры и переменные в шаблоне:
    • Пусть размер оплаты меняется в зависимости от указанной причины отгула (используйте действия [ds]Условие[/ds][di]Конструкция позволяет направить бизнес-процесс по разным сценариям в зависимости от заданного типа условия.

      Подробнее…[/di] и [ds]Изменение переменной[/ds][di]Действие позволяет изменить значения переменных, заданных в настройках шаблона.

      Подробнее…[/di]);

    • Пользователь, запустивший БП, должен получить уведомление, что отгул на указанную дату одобрен и узнать сумму оплаты (используйте действие [ds]Сообщение соц. сети[/ds][di]Действие, отправляет уведомление модуля социальной сети.

      Подробнее…[/di]).

    Сохраните шаблон и проверьте результаты его работы.

  3. Создайте новый список в Сервисы > Списки. Импортируйте для созданного списка шаблон бизнес-процесса со статусами из урока Пример: организация обработки и доработки документа. Изучите шаблон и проверьте его работу, создав новый элемент списка.
  4. Отредактируйте шаблон из задания № 3. Добавьте новый статус Публикация документа, следующим после Утверждение. Настройте статусы:
    • В статусе «Утвержден» удалите прерывание процесса. Запросите [dw]дополнительную информацию[/dw][di]Используйте действие Запрос дополнительной информации и создайте поле в настройках этого действия.[/di] у автора документа — группу пользователей, на которую будет опубликована информация о документе в ленте Новостей. Измените текст уведомления на более осмысленный;
    • В новом статусе добавьте действие [ds]Сообщение в живую ленту[/ds][di]Действие позволяет отправлять сообщения в Ленту новостей (ранее Живая лента) указанному пользователю или группе пользователей.

      Подробнее…[/di]. Пусть в сообщении будет информация о названии документа и дате создания. Публиковаться пост должен только для группы или пользователей, указанных в статусе ранее автором.

Форма «Вставка значения»

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

Форма «Вставка значения»

Заполняем поля с помощью формы «Вставка значения»

  Форма

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

Нажмите на рисунок, чтобы увеличить

Примечание: Для вставки одного и того же значения в разные действия шаблона не обязательно всегда пользоваться формой Вставка значения. Достаточно скопировать текст, вставленный с помощью этой формы, и использовать его дальше.

  Разделы формы

  • [ds]Параметры шаблона[/ds][di]Параметры используются для явного указания каких-либо значений во время исполнения бизнес-процесса.

    Подробнее…[/di] – вставка параметров шаблона. Задаются для конкретного шаблона в форме, доступной по кнопке Параметры шаблона на контекстной панели визуального конструктора бизнес-процесса. Значение параметра — то, что введет пользователь в соответствующих полях при запуске бизнес-процесса.

  • [ds]Переменные[/ds][di]Переменные используются для временного хранения данных, необходимых для выполняемого процесса.

    Подробнее…[/di] – вставка пользовательских переменных, которые могут изменяться по ходу выполнения бизнес-процесса. Пример: дополнительное числовое поле, заполняемое пользователем в процессе выполнения бизнес-процесса.

  • [ds]Константы[/ds][di]Константы нужны для хранения информации, значение которой не должно меняться во время исполнения данного процесса.

    Подробнее…[/di] – вставка заранее заданных констант, которые остаются неизменными в процессе исполнения бизнес-процесса. Их значение задается в параметрах шаблона и пользователь, не имеющий доступа к изменению процессов, не может менять их значение.

  • [ds]Глобальные константы[/ds][di]Глобальные константы используются для хранения данных и имеют постоянное (неизменяемое) значение. Доступны сразу во всех шаблонах бизнес-процессов.

    Подробнее…[/di] – вставка значения глобальной константы, т.е. неизменяемого значения которое доступно во всех процессах.

  • [ds]Глобальные переменные[/ds][di]Глобальные переменные используются для хранения данных и могут быть изменены. Доступны сразу во всех шаблонах бизнес-процессов.

    Подробнее…[/di] – вставка значения глобальной переменной, т.е. значения которое может быть изменено и доступно во всех процессах.

  • Поля документа – вставка значения какого-либо поля документа, участвующего в бизнес-процессе. Например: Дата создания или Кем создан.
  • Дополнительные результаты – вставка результатов выполнения некоторых действий. Не все действия предоставляют дополнительные результаты. В списке отображаются сразу все доступные результаты для всех действий, добавленных в текущий процесс, если они их поддерживают.
  • Пользователи – вставка пользователя или группы пользователей, которые будут причастны к выполнению бизнес-процесса. Есть возможность выбрать несколько пользователей/групп пользователей. Для этого в качестве разделителя используется символ ;.
  • Категории пользователей – позволяет подробно указать пользователей, которые будут причастны к выполнению бизнес-процесса. В том числе можно выбрать Отдел или Группу соцсети.

Примечание: Возможна вставка как отдельных групп пользователей, так и целых отделов и [dw]групп социальной сети[/dw][di]Группы (проекты) помогают сгруппировать все данные, задачи, файлы, сообщения, встречи в одном месте. Вы всегда сможете просмотреть, какие действия и задачи были выполнены в той или иной группе.
Подробнее…[/di]. Для этого в [dw]настройках прав доступа к элементам и разделам процесса[/dw][di]Во вкладке Управление правами доступа к элементам и разделам процесса вы можете назначить права для работы с процессом как для целых отделов и групп, так и персонально для отдельных пользователей.
Подробнее…[/di] указываем группы, которые вы хотите чтобы [dw]отображались в форме[/dw][di]Данная возможность пока недоступна в бизнес процессах в универсальных списках[/di]. Любая помещенная в эту вкладку группа вне зависимости от указанного уровня доступа будет отображаться в списке.

  Системные значения и функции

В действиях при проектировании бизнес-процесса есть возможность использовать системные значения и функции недоступные напрямую из формы. Их можно добавить двумя способами:

  • Выбрать из списка. Для этого напишите в поле знак = и откроется список:

    Нажмите на рисунок, чтобы увеличить

  • Внести вручную.

Список системных значений:

  • {=Workflow:ID} – идентификатор бизнес-процесса;
  • {=Template:TargetUser} – параметр, в котором содержится идентификатор пользователя, запустившего бизнес-процесс в формате user_[номер_пользователя_в_системе];
  • {=User:ID} – идентификатор [dw]текущего пользователя[/dw][di]Текущий пользователь это авторизованный пользователь, на чьем хите выполняется бизнес-процесс. Например, если бизнес-процесс выходит с паузы и при этом выполняется на агенте, то текущим может быть любой пользователь, на хите которого выполнился агент или событие.[/di] в формате user_[номер_пользователя_в_системе];
  • {=System:Now} – текущая дата со временем на сервере;
  • {=System:NowLocal} – текущая дата со временем у клиента (учитывается часовой пояс);
  • {=System:Date} – текущая дата без времени;
  • {=System:Eol} – символ конца строки;
  • {=System:HostUrl} – URL сайта. Подставит значение вида https://mysite.ru. Доступно с версии 22.200.0 модуля Бизнес-процессы.

Список доступных операторов и функций с описаниями приведен в отдельном уроке Функции калькулятора выражений.

Использование некоторых значений полей контактов/компаний (для облачной версии Битрикс24)

  Особенность для коробочной версии

Если для документа (инфоблока) было создано дополнительное свойство и оно не отображается в форме Вставка значения, то необходимо перейти к настройкам инфоблока в административной части сайта (Контент > Инфоблоки > Типы инфоблоков > [требуемый_инфоблок], вкладка Свойства), и в параметрах этого свойства отметить опцию Выводить на странице списка элементов поле для фильтрации по этому свойству:

После этого свойство информационного блока станет доступно для использования в бизнес-процессах.

  Заключение

Мы узнали, как с помощью формы Вставка значение добавлять различные переменные в параметры действий, параметры шаблона и настройки статуса. В следующем уроке посмотрим, как модифицировать эти данные.

Функции калькулятора выражений

При вычислении значений выражений в параметрах действий вы можете использовать различные операторы и функции.

  Операторы

Доступно использование следующих операторов для вычисления математических и логических выражений:

Оператор Описание
+ Сложение.
- Вычитание.
* Умножение.
/ Деление.
= Равно.
<> Не равно.
< Меньше.
> Больше.
<= Меньше или равно.
>= Больше или равно.
() Порядок действий.
& Оператор конкатенации, который возвращает строку, представляющую собой соединение левого и правого аргумента.
^ Возведение в степень.
% Вычисление процентов.
true Правда.
false Ложь.
and Логический оператор И.
or Логический оператор ИЛИ.

Пример: =if(or({=Variable:aaa}>2, {=Variable:bbb}<10), "yes", "no")

not Отрицание.

  Функции для вычислений

В действиях при проектировании бизнес-процесса есть возможность использовать функции. Их можно добавить двумя способами:

  • Выбрать из списка. Для этого напишите в поле знак = и откроется список:

    Нажмите на рисунок, чтобы увеличить

  • Внести вручную.

Список функций с примерами:

  • abs
  • dateadd
  • datediff
  • date
  • workdateadd
  • addworkdays
  • isworkday
  • isworktime
  • touserdate
  • getuserdateoffset
  • if
  • intval
  • floatval
  • numberformat
  • min
  • max
  • rand
  • round
  • ceil
  • floor
  • substr
  • strpos
  • strlen
  • implode
  • explode
  • randstring
  • merge
  • urlencode
  • strtolower
  • strtoupper
  • ucwords
  • ucfirst
  • strtotime
  • locdate
  • shuffle
  • firstvalue
  • swirl
  • getdocumenturl
  • trim
  • settime
Функция Описание
abs Вычисление модуля числа.
dateadd Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к указанной дате.

Синтаксис: =dateadd([начальная_дата], [что_добавлять]);

Варианты написания и примеры

datediff Позволяет вычислить разницу между двумя датами.

Синтаксис:
=datediff([первая дата], [вторая дата], [как выводить разницу]);

Разницу можно выводить в разных единицах, в зависимости от решаемых вами задач.

Пример:
=datediff({=Variable:Variable1}, {=Variable:Variable2},'%m month, %d days')

Больше примеров работы с функцией в уроке Примеры работы с датами.

date [dw]Форматируется вывод даты/времени[/dw][di]Лучший вариант для выполнения этой задачи. Использование строковых функций типа substr и strpos не рекомендуется.[/di]. Работает аналогично функции Date в PHP.

Синтаксис: {{=date([формат даты], [дата])}}. Дата — не обязательный параметр, по умолчанию используется текущая дата.

Пример: {{=date('l, j F Y, H:i:s')}}. Результат: Tuesday, 9 November 2021, 12:06:16.

WorkDateAdd Добавляет заданное количество рабочих дней, часов и минут к указанной дате.

Синтаксис:
=WorkDateAdd([начальная_дата], [что_добавлять], [пользователь]).

Параметр [пользователь] не обязательный. С его помощью можно указать пользователя, на рабочее время которого нужно ориентироваться. Доступен с версии 19.0.0 модуля bizproc.

Варианты написания и примеры

AddWorkDays Функция добавляет N рабочих дней к указанной дате.

Синтаксис:
=addworkdays([дата, к которой будут добавляться дни], [количество добавляемых рабочих дней]).

Примеры:

  • {{=addworkdays('07.03.2016', 1)}} — результат: 09.03.2016 00:00:00, т.к. в настройках сайта 8 марта — выходной.
  • {{=addworkdays('05.02.2016 16:14:00', 1)}} — результат: т.к. 05.02.2016 — пятница, то результат: 08.02.2016 16:14:00 — понедельник.
isWorkDay Функция проверяет, является ли дата рабочим днем по календарю (с версии 21.400.0 учитывает настройки рабочих дней календаря).

Синтаксис:
=if(isWorkDay([проверяемая дата], [пользователь]), [сообщение, если дата является рабочим днем], [сообщение, если не является]).

Параметр [пользователь] не обязательный. С его помощью можно указать пользователя, на рабочее время которого нужно ориентироваться. Доступен с версии 19.0.0 модуля bizproc.

Пример:
{{=if(isWorkDay({=Template:Parameter1}), 'Да', 'Нет')}} — в параметре содержится дата 28.04.2016. Результат — Да, т.к. это рабочий день.

isWorkTime Аналогична функции isWorkDay, но для типов данных Дата/Время.

Синтаксис:
=if(isWorkDay([проверяемая дата со временем], [пользователь]), [сообщение, если дата со временем являются рабочими], [сообщение, если не являются]).

Параметр [пользователь] не обязательный. С его помощью можно указать пользователя, на рабочее время которого нужно ориентироваться. Доступен с версии 19.0.0 модуля bizproc.

Пример:
{{=if(isWorkTime({=Template:Parameter1}), 'Да', 'Нет')}} — в параметре содержится дата со временем 27.04.2016 15:00:00. Результат — Да, т.к. это рабочее время.

toUserDate Функция приводит любое время к времени сотрудника (с учетом его часового пояса).

toUserDate(
   user,
   date
)

Параметры

  • user — пользователь, к чьему времени необходимо привести время, т.е. чей часовой пояс использовать;
  • date — дата и время, относительно которых нужно сделать преобразование. По умолчанию это текущее время сервера.
  • Примеры записей функции:

     // 1. Добавление пользователя через форму Вставка значения, где "Кем создан" это поле документа
    {{=touserdate({{Кем создан}})}}
    // 2. Запись пользователя в формате user_ID, которую нужно взять в кавычки
    {{=touserdate('user_1')}}
    // 3. Пользователь в формате user_ID, дата и время указываются в кавычках
    {{=touserdate('user_3', '30.12.2022 10:33:14')}}
    

    Примечание: Функция также может принять в параметре User число. Число определится как идентификатор [ds]группы пользователей[/ds][di]Речь о группах пользователей, которые создаются в административном разделе коробочных продуктов на странице Настройки > Пользователи > Группы пользователей.

    Подробнее в курсе Администратор. Базовый[/di]. Для определения часового пояса будет взят первый сотрудник из этой группы.

    Пример:

    {{=touserdate(7)}}
    

    Идентификатор 7 имеет группа Техподдержка. Первый пользователь в этой группе имеет часовой пояс (UTC -02:00). А значит время будет выведено в этом часовом поясе;

GetUserDateOffset Функция возвращает значение смещения часовой зоны пользователя в секундах (относительно серверного времени).

GetUserDateOffset(
   user
)

Параметры:

  • user — пользователь, относительно чьего времени нужно значение.
if Условный оператор.

Синтаксис:
=if([условие], [результат_в_случае_выполнения_условия], [результат_в_случае_не_выполнения_условия]);

Пример:
=if ({=Variable:Variable1_printable}>0, "да", "нет")

При сравнении значений переменных также возможно сравнивать переменные с разным типом данных. Однако сравниваемые переменные должны соответствовать таблице преобразования типов.

intval Возвращает целое число.

Пример:
=intval("234j4hv5jhv43v53jk4vt5hj4") вернет 234.
floatval Возвращает число (с плавающей точкой).
numberformat Форматирует число с разделением групп.
min Возвращает наименьшее число.
max Возвращает наибольшее число.
rand Возвращает случайное число.
round Округляет число.
ceil Округляет дробь в большую сторону.
floor Округляет дробь в меньшую сторону.
substr Возвращает подстроку определенной длины, начиная с указанного символа. Данная функция аналогична существующей substr в php.

Синтаксис:
substr([входная строка], [с какого символа исходной строки начнется возвращаемая статья], [какой длины будет строка])

Имейте ввиду, что строка начинает с символа под номером 0. Например, в строке ‘abcdef’, в позиции 0 находится символ ‘a’, в позиции 2 — символ ‘c’, и т.д.

Пример:
{{=substr("0123456789", 3, 4)}} вернет 3456.

Внимание! Если синтаксис выражения будет неправильным, то оно отобразится как текст.

strpos Возвращает позицию первого вхождения подстроки.
strlen Возвращает длину строки.
implode Объединяет множественные значения в строку. Полезна, когда нужно вывести в текст значения множественных переменных нестандартным разделителем (стандартный — просто запятая). Аналог implode в PHP.
Возвращает строку, содержащую строковое представление всех элементов массива в указанном порядке, со значением glue между каждым элементом.

implode(
   glue,
   pieces
) 

Параметры:

  • glue — по умолчанию равен пустой строке;
  • pieces — массив объединяемых строк.
explode Функция разбивает строку с помощью разделителя. Полезна, когда нужно разбить строку и присвоить части как значение множественной переменной. Аналог explode в PHP.
Возвращает массив строк, полученных разбиением строки str с использованием delimiter в качестве разделителя.

explode(
   delimiter,
   str)

Параметры:

  • delimiter — разделитель;
  • str — строка для разделения.
randstring Возвращает случайную строку.
merge Позволяет объединять массивы.

Синтаксис:
= merge({=массив_1}, {=массив_2});

Пример:
= merge({=Document:FILES}, {=Variable:file}).

urlencode URL-кодирование строки.
strtolower Преобразует строку в нижний регистр. Функция доступна с версии 21.200.0.
strtoupper Преобразует строку в верхний регистр. Функция доступна с версии 21.200.0.
ucwords Преобразует в верхний регистр первый символ каждого нового слова в строке. Функция доступна с версии 21.200.0.
ucfirst Преобразует первый символ строки в верхний регистр. Функция доступна с версии 21.200.0.
strtotime Преобразует текстовое написание даты на английском языке во внутренний формат даты. Функция доступна с версии 21.300.0.

Примеры написания:

  • {{=strtotime("now")}}
  • {{=strtotime("next day")}}
  • {{=strtotime("+1 week")}}
  • {{=strtotime("next Thursday")}}
locdate Форматирует вывод даты / времени на языке сайта (портала). Функция доступна с версии 21.300.0.

Работает аналогично функции date (date в PHP), но при форматировании учитывает язык.

Синтаксис: {{=locdate([формат даты], [дата])}}. Дата — не обязательный параметр, по умолчанию используется текущая дата.

Пример для сайта на русском языке: {{=locdate('l, j F Y, H:i:s')}}. Результат: Вторник, 9 Ноября 2021, 12:06:16.

shuffle Перемешивает значения множественного поля. Функция доступна с версии 21.500.0.

Пример: пусть есть переменная Variable1 типа Число с множественным значением: 1, 2, 3, 4, 5, 6.

Тогда результатом выполнения функции {{=shuffle({=Variable:Variable1})}} будет случайный порядок этих чисел: 1, 4, 6, 5, 3, 2.

firstvalue Возвращает первое значение множественного поля. Функция доступна с версии 21.500.0.

Пример: пусть есть переменная Variable1 типа Число с множественным значением: 1, 2, 3, 4, 5, 6.

Тогда результатом выполнения функции {{=firstvalue({=Variable:Variable1})}} будет первое число: 1.

swirl Перемещает первое значение множественного поля в конец. Функция доступна с версии 21.500.0.

Пример: пусть есть переменная Variable1 типа Число с множественным значением: 1, 2, 3, 4, 5, 6.

Тогда результатом выполнения функции {{=swirl({=Variable:Variable1})}} будет: 2, 3, 4, 5, 6, 1, т.е. первое число 1 стало последним.

getdocumenturl Возвращает ссылку на текущий документ (для которого запущен бизнес-процесс). Функция доступна с версии 22.200.0.

Синтаксис: {{=getdocumenturl([Форматирование ссылки], [Полная ссылка]}}

  • Форматирование ссылки. Возможные значения:
    • ‘bb’ — форматирует ссылку, используя bb-code в виде: [url=ссылка на документ]Имя документа[/url];
    • ‘html’ — форматирует ссылку, используя html в виде:<a href="ссылка на документ" target="_blank">Имя документа</a>. При этом имя документа обрабатывается функцией [dw]htmlspecialcharsbx[/dw][di]Функция преобразует специальные символы в HTML-сущности.[/di].
  • Полная ссылка. Возможные значения 0/1 или false()/true(). Если установлено 1 или true(), то к ссылке будет добавлен URL сайта (например, https://mysite.ru).

Примеры:
Ссылка с форматированием bb-code: {{=getdocumenturl('bb')}}
Полная ссылка с доменом сайта и html форматированием: {{=getdocumenturl('html', true())}}

trim Удаляет пробелы из начала и конца строки. Функция доступна с версии 22.300.0.

Синтаксис: {{=trim([строка])}}

Пример:
Пусть есть переменная Variable1 типа Строка, в которой записано значение с пробелом в начале и в конце 123 .
Используем функцию trim для записи значения переменной в отчет без пробелов: {{=trim({=Variable:Variable1})}}. В результате в отчет будет записано 123 без пробелов.

settime Устанавливает конкретное время для указанной даты у полей типа Дата и Дата/Время. Функция доступна с версии 22.500.0. Функция имеет 3 параметра: дата, часы, минуты.

Синтаксис: {{=settime([Дата], [Часы], [Минуты])}}

Примеры:
Пусть есть переменная Variable1 типа Дата, в которой записана дата 13.03.2023.
Используем функцию settime для установки времени:

1. {{=settime({=Variable:Variable1}, 15, 55)}}
// результат - 13.03.2023 15:55:00
2. {{=settime({=Variable:Variable1}, 21, 79)}}
// результат - 13.03.2023 22:19:00 (т.к. количество минут больше 60, был добавлен час и остаток записан в минуты)

Вычисление значений выражений в параметрах действий

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

  Вычисляем выражения

Для вычисления математических или логических выражений требуется поставить знак = в поле перед операциями.

Пример:

=6^2 + {=Document:PROPERTY_NUM}/2

или

=if({Document:ID}=5, "текст1", "текст2")

В каждом поле доступно использовать сразу несколько разных вычислений.

Если Вы хотите не только произвести вычисление, но и вывести дополнительные данные (значение переменных, текст), то доступно два варианта написания:

  • Вычисляемые значения можно просто размещать в тексте, поместив вычисление в конструкцию {{=...}}.
    Пример:Вам необходимо оформить документы до {{=DateAdd({=Document:CREATED}, '5d')}}:
  • Либо можно использовать оператор конкатенации (&), а текст написать в кавычках ( " или ' ). [dw]Пример[/dw][di][/di]:
    ='Ответ:' & (1+3)

    или

    ="Автор: " & {=Document:CREATED_BY} & ", " & "Конечный срок: " & Dateadd({=Document:DATE_CREATE}, "1d")

Примечание: Синтаксис символьных операторов аналогичен синтаксису соответствующих php-функций.

  Рекомендации

 Кавычки

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

// Слово Конечный в двойных кавычках, все текстовые части выражения в одинарных кавычках.
='Автор: ' & {=Document:CREATED_BY} & ', ' & '"Конечный" срок: ' & Dateadd({=Document:DATE_CREATE}, '1d')

или так:

// Слово Конечный в двойных кавычках, а фраза заключена в одинарные кавычки.
// Все остальные текстовые части выражения остались в двойных кавычках.
="Автор: " & {=Document:CREATED_BY} & ", " & '"Конечный" срок: ' & Dateadd({=Document:DATE_CREATE}, "1d")

 Скобки

Будьте внимательны при использовании фигурных скобок {{...}} или их автоматической подстановке, выбирая функции из списка. Неверная постановка скобок — это частая ошибка при работе с вычислениями выражений в бизнес-процессах.

Верная запись  

=datediff({{Дата создания элемента}},{{Дата изменения элемента}},"%a") * 2 если нет дополнительного текста

или
{{=datediff({{Дата создания элемента}},{{Дата изменения элемента}},"%a") * 2}}, если требуется добавить дополнительный текст.

Неверная запись  

={{=datediff({{Дата создания элемента}},{{Дата изменения элемента}},"%a")}} * 2

или
{{={{=datediff({{Дата создания элемента}},{{Дата изменения элемента}},"%a")}} * 2}}

Другой удобный способ — перенести часть вычислений в [dw]переменную[/dw][di]Переменные используются для временного хранения данных, необходимых для выполняемого процесса. Значения переменных хранятся до тех пор, пока выполняется бизнес-процесс. После его завершения они все стираются.

Подробнее…[/di]. На примере выражения выше, можно перенести вычисление функции datediff в переменную (действие [dw]Изменение переменных[/dw][di]Действие позволяет изменить значения переменных, заданных в настройках шаблона.

Подробнее…[/di]). А затем уже эту переменную умножать на 2. Получим запись вида: ={=Variable:Variable2}*2, где в переменной Variable2 хранится значения вычисления функции: =datediff({{Дата создания элемента}},{{Дата изменения элемента}},"%a").

Для выполнения простых операций (сложение, вычитание и т.д.) используйте действие Математические операции.

Модификация данных

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

  Список модификаторов

В таблице ниже собран список всех модификаторов с кратким примером записи. Модификатор добавляется через символ > внутри фигурных скобок. Примеры использования модификаторов есть в этом уроке и в последующих.

Модификатор Описание
printable Преобразует значение в понятную пользователю строку. Подходит для данных любого типа данных.

{=Variable:Variable1 > printable}
friendly Для данных типа Пользователь. Выводит только имя и фамилию пользователя, без его ID и логина.

{=Document:CREATED_BY > friendly}
name Получает имя файла для полей типа Файл. С версии 20.100.0 модуля Бизнес-процессы.

{=Variable:File > name}
responsible Для данных типа Дата и Дата/время. Выводит дату/время в часовом поясе Ответственного.

{=Variable:Datetime > responsible}
server Для данных типа Дата и Дата/время. Выводит дату/время в часовом поясе Сервера.

{=Variable:Datetime > server}
publink Для данных типа Файл. Создаёт публичную ссылку на файл. С версии 20.0.700 модуля Бизнес-процессы.

{=Document:PROPERTY_MY_FILE > publink}
shortlink Для данных типа Файл. Создаёт короткую ссылку на файл. С версии 20.0.700 модуля Бизнес-процессы.

{=Document:PROPERTY_MY_FILE > shortlink}
src Для данных типа Файл. Создаёт прямую ссылку на файл.

Важно: использование в коробочных версиях продукта

не

безопасно.

{=Document:PROPERTY_MY_FILE > src}
Модификаторы для [dw]преобразования типов данных[/dw][di]Все возможности такого преобразования смотрите в таблице преобразования типов данных.[/di]
bool Преобразует данные в bool (булевый тип).

{=Variable:Variable1 > bool}
date Преобразует данные в тип date (дата).

{=Variable:Variable1 > date}
datetime Преобразует данные в тип datetime (дата/время).

{=Variable:Variable1 > datetime}
double Преобразует данные в тип double (число).

{=Variable:Variable1 > double}
int Преобразует данные в тип int (целое число).

{=Variable:Variable1 > int}
file Преобразует данные в тип file (файл).

{=Variable:Variable1 > file}
select Преобразует данные в тип select (список).

{=Variable:Variable1 > select}
string Преобразует данные в тип string (строка).

{=Variable:Variable1 > string}
text Преобразует данные в тип text (текст).

{=Variable:Variable1 > text}
user Преобразует данные в тип user (пользователь).

{=Variable:Variable1 > user}

  Таблица преобразования типов данных

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

Начальный/конечный bool
(Да/Нет)
date
(Дата)
datetime
(Дата/Время)
double
(Число)
int
(Целое число)
file
(Файл)
select
(Список)
string
(Строка)
text
(Текст)
user
(Пользователь)
bool (Да/Нет) x x 1 или 0 1 или 0 х х Y или N Y или N x
date (Дата) x по формату timestamp timestamp x x по формату по формату x
datetime (Дата/Время) x по формату timestamp timestamp x x по формату по формату x
double (Число) 0==N
!0==Y
из timestamp из timestamp (int) x x (string) (string) user_<ID>
int (Целое число) 0==N
!0==Y
из timestamp из timestamp (float) x x (string) (string) user_<ID>
file (Файл) x x x x x x x x x
select (Список) Y или N x x (float) (int) x (string) (string) user_<ID>
group_<CODE>
<ID> 
string (Строка) Y или N strtotime strtotime (float) (int) x x (string) user_<ID>
group_<CODE>
<ID> 
text (Текст) Y или N strtotime strtotime (float) (int) x x (string) user_<ID>
group_<CODE>
<ID> 
user (Пользователь) x x x ID ID x x (string) (string)

Примечание: все выражения в тексте автоматически преобразуются к строке, при отсутствии дополнительных идентификаторов.

Примечание: при преобразовании типа Список в Строку или Текст берутся значения списка, при преобразовании Списка в Списокключи списка. Для получения значения ключа списка используйте конвертирование, например: {=Variable:Select > select}.

Важно! Для версий модуля до 15.6.0 преобразование типов данных, в том числе и запрос печатной формы для значений, не имеющих таковой, возможно с помощью переменных и действия PHP-код.

  Примеры

printable

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

Возьмем переменную типа пользователь. Результат, если значение переменной равно Автор:

{=Variable:user}                          author
{=Variable:user > printable}              Автор

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

Если же печатная форма не предусмотрена, то запросить вывод печатной формы от любого значения получится и вручную (для переменной, дополнительного результата и т.п.). Кроме того, можно использовать модификаторы одновременно. Например, для переменной типа Datetime добавляем printable с преобразованием типа данных в Date:

{=Variable:Datetime > date, printable} // перевод даты в печатную форму
{=Variable:string>date} // преобразование строки в дату

friendly

Для данных типа Пользователь есть возможность преобразования в формат friendly. В таком случае выводится только имя и фамилия пользователя, без его ID и логина.

Пример: {=Document:CREATED_BY} > User_1

{=Document:CREATED_BY > printable} > Иван Иванов [1]

{=Document:CREATED_BY > friendly} > Иван Иванов

name

С версии 20.100.0 модуля Бизнес-процессы добавлена возможность получить имя файла через модификатор name для полей типа Файл. Пример для переменной типа Файл:

 {=Variable:File > name} // вывод названия файла

Другие примеры

  • Примеры работы со ссылками;
  • Примеры работы с датами.

Коды подстановки сущностей

В некоторых сценариях подстановка сущностей системы из формы «Вставка значения» не решает задачу. Например, при необходимости использования переменного ID сущности. Помогут в решении таких задач специальные коды.

  Пользователь

В параметрах действий, где указываются пользователи, для подстановки пользователя можно использовать код, состоящий из слова user и идентификатора ID.

В простом случае, запись с известным числовым ID в поле действия БП будет выглядеть так:

="user_5"

где число 5 – идентификатор пользователя.

Если идентификатор является переменным и подставляется через форму Вставка значения (например, он записан в переменную или в какое-то поле документа), то в записи потребуется использовать оператор конкатенации &. Например:

="user_" & {=Variable:Variable1}

где {=Variable:Variable1} – переменная шаблона БП.

  Группы пользователей

В параметрах действий, где указываются пользователи или группы пользователей есть возможность использовать код, состоящий из слова group и идентификатора ID. При этом на портале существуют группы пользователей различных типов (группы социальной сети, подразделения и т.д.) и система должна понимать к какому именно типу требуется обратиться. Поэтому, важно указать верный вариант записи. Все варианты собраны в таблице (число 7 — пример ID):

Код Описание Пример полной записи
[ds]Основная система (главный модуль)[/ds][di]Группы и пользователи в административном разделе по пути Настройки > Пользователи. Подробнее в уроках Работа с учетными записями пользователей и Группы пользователей учебного курса «Администратор сервиса Битрикс24 (коробочная версия)».[/di]
G Группа пользователей group_G7
U Пользователь group_U7
[ds]Интранет (intranet)[/ds][di]Подразделения структуры компании. Подробнее в уроке Структура компании учебного курса «Администратор сервиса Битрикс24 (коробочная версия)».[/di]
IU Пользователь отдела (подразделения) group_IU7
D Все сотрудника отдела group_D7
DR Все сотрудники отдела с подотделами group_DR7
Dextranet Все [ds]публичные сотрудники[/ds][di]Публичный сотрудник — это обязательно сотрудник компании, обладающий свойством публичности на сайте экстранета, т.е данный сотрудник всегда доступен для общения и включения в любую рабочую группу экстранета.

Подробнее в уроке Публичный сотрудник курса Администратор сервиса Битрикс24 (коробочная версия).[/di]

group_Dextranet
UA Все пользователи компании group_UA
[ds]Социальная сеть (socnet)[/ds][di]Группы и проекты, которые открываются из основного меню портала. Подробнее на helpdesk.bitrix24.ru.[/di]
SU Пользователь социальной сети group_SU7
SG1_A Владелец группы group_SG7_A
SG1_E Модераторы группы group_SG7_E
SG1_K Все члены группы group_SG7_K

Важно понимать: Если в поле, где должен быть указан пользователь, добавляется код группы, то
система берет [dw]первого пользователя[/dw][di]Первым пользователем будет тот, что создан ранее остальных, т.е. с меньшим идентификатором.[/di] этой группы (подходящего по условиям).

В простом случае, запись с известным числовым ID в поле действия БП будет выглядеть так:

="group_D3"

Если идентификатор является переменным и подставляется через форму Вставка значения (например, он записан в переменную или в какое-то поле документа), то в записи потребуется использовать оператор конкатенации &. Например:

="group_SG" & {=A52792_89450_17178_72721:GroupId} & "_K"

где {=A52792_89450_17178_72721:GroupId} – идентификатор группы, созданной ранее действием [ds]Создать группу[/ds][di]Действие позволяет создать группу.

Подробнее…[/di].

  Сущности CRM

В действиях, не относящихся к разделу CRM, для добавления элементов через форму Вставка значения необходимо использовать [dw]поля документа[/dw][di][/di] вида Контакт: ID элемента CRM. Но такие поля есть не для всех сущностей и позволяют использовать только связанные с документом элементы CRM. Другой вариант — использовать следующий синтаксис:

  • Контакты: ="C_"&{{ID}}
  • Сделки: ="D_"&{{ID}}
  • Лиды: ="L_"&{{ID}}
  • Компании: ="CO_"&{{ID}}

Запись состоит из специального кода сущности, оператора конкатенации и идентификатора сущности. Идентификатором может быть переменная из формы Вставка значения. Так вы сможете использовать любые элементы CRM, не обязательно связанные с текущим документом.

Как привязать элемент смарт-процесса

 Пример привязки Контакта и Компании, связанных со сделкой, с помощью префиксов

Задача: при [ds]создании задачи[/ds][di]Действие Задача позволяет создать задачу.

Подробнее…[/di] из бизнес-процесса сделки, привязывать Контакт и Компанию, связанные с этой сделкой.

Для привязки Контакта нам понадобится использовать "C_"&, а для Компании — "CO_"&. В качестве идентификаторов этих элементов выберем в форме Вставка значения, секции Поля документа: Контакт: ID и Компания: ID.

Итоговая запись будет выглядеть так:

В результате при запуске БП в сделке будет создана задача с привязками к самой сделке (текущей сущности) и к связанными с ней Контакту и Компании:

Примеры работы со ссылками

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

  Использование переменных в ссылках

В полях действий, [dw]поддерживающих тег[/dw][di]Поля Описание задания позволяют использовать следующие теги bb-code:
Подробнее…[/di] [url], доступно использование собственных переменных для создания ссылок.

	[url=http://{=Variable:Domain}/{=Variable:Path}]название ссылки[/url]

где: {=Variable:Domain} и {=Variable:Path} — переменные, содержащие адрес сервера и требуемый путь.

  Создание прямой ссылки на страницу с заданием

Используйте ссылку, например, для отправки пользователю сообщения о необходимости выполнить задание в рамках бизнес-процесса.

	Ссылка на страницу с заданием: [url=https://[адрес_портала]/company/personal/bizproc/{=Workflow:ID}/]ссылка на страницу просмотра документа[/url]

Если заданий несколько

Если в бизнес-процессе есть несколько заданий, то прямую ссылку можно формировать не с использованием идентификатора бизнес-процесса ({=Workflow:ID}), а с выбором идентификатора конкретного задания через форму Вставка значения, раздел [dw]Дополнительные результаты[/dw][di][/di].

Но вариант с использованием {=Workflow:ID} универсальный, так как открывает текущее невыполненное задание по конкретному бизнес-процессу. ID задания откроет конкретное задание этого процесса, даже если оно выполнено.

  Создание ссылки на страницу детального просмотра документа

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

	Ссылка на страницу детального просмотра документа: [url]{=Document:DETAIL_PAGE_URL}[/url]

Такое выражение работает для элементов инфоблоков и элементов универсальных списков.

Примечание: Выражение {=Document:DETAIL_PAGE_URL} формирует нужную ссылку при условии, что в настройках инфоблока корректно заполнен URL страницы детального просмотра.

  Создание публичной ссылки на файл

Для создания публичной ссылки на файл, не требующей авторизации на портале, используйте модификатор publink:

	Публичная ссылка на файл: {=Document:PROPERTY_MY_FILE > publink}

Примечание: Модификатор publink доступен с версии 20.0.700 модуля Бизнес-процессы (bizproc).

В результате получим ссылку вида: https://[адрес_портала]/bitrix/services/main/ajax.php?action=bizproc.file.show&token=305.0904b680f9932ca0ad3c378fb5159dac1a6521a6a9023408451a5e7a3a1061

  Создание короткой публичной ссылки

Намного удобнее прислать клиенту короткую ссылку на файл. Для создания такой ссылки воспользуйтесь модификатором shortlink, который генерирует короткую версию ссылки publink:

	Короткая публичная ссылка на файл: {=Document:PROPERTY_MY_FILE > shortlink}

Примечание: Модификатор shortlink доступен с версии 20.0.700 модуля Бизнес-процессы (bizproc).

В результате получим ссылку вида: https://[адрес_портала]/~tcMLt

  Создание прямой ссылки к файлу на сервере

Примечание: C версии 20.0.700 модуля Бизнес-процессы (bizproc) для создания публичных ссылок доступны модификаторы publink и shortlink. Рекомендуем использовать их.

Такой сценарий понадобится, если нужно отправить, например, ссылку на скачивание файла клиенту (т.е. кому-то извне).

Допустим, в документе имеется поле Файл. Для получения внутренней ссылки используем: вставка значения Поля документа > Файл (имя).

Ссылка на файл  - {=Document:PROPERTY_FILE_PRINTABLE}

Такая ссылка потребует авторизации на портале. Получить публичную ссылку можно с помощью модификатора src, который нужно указать вручную таким образом:

// удалим _PRINTABLE и добавим модификатор >src и bb-code [url].
Ссылка на файл - [url={=Document:PROPERTY_FILE > src}]link[/url]

Внимание! Использование такого модификатора на коробочных версиях может быть небезопасно. Например, если данный файл загружает пользователь: он может загрузить HTML и по такой ссылке откроется в браузере страница вашего сайта, в которой пользователем может быть написан вредоносный код. Но возможно обойти
использованием CDN (как в облачной версии Битрикс24) или настройкой вашего сервера (правила .htaccess и т.п., запрещающие выполнение html/php файлов в папке из папки /upload/).

Примеры работы с датами

В уроке рассмотрим возможности работы с датами в бизнес-процессах. Результаты выведем с помощью действия [dw]Сообщение соц.сети[/dw][di]Действие, которое позволяет отправить уведомление о событии указанному пользователю/группе пользователей через модуль социальной сети.
Подробнее…[/di].

  Перевод даты на русский язык

Для вывода даты используется функция [dw]date[/dw][di]date — Форматирует вывод системной даты/времени

[/di]. В примере используем параметр F — полное наименование месяца. Список всех параметров функции смотрите в документации по PHP.

Текущий месяц - {{=date('F',{=System:Date})}}

В результате получим [dw]уведомление[/dw][di][/di] вида Текущий месяц - April.

Для получения названия месяца на русском языке понадобится создать Список соответствия для названий месяцев. Введем переменную бизнес-процесса типа Список:

В вариантах значений в квадратных скобках укажем ключ — номер месяца, а после — значение (название месяца на русском языке).

Вернемся к шаблону бизнес-процесса и перед сообщением соц.сети добавим действие [dw]Изменение переменных[/dw][di][/di] в котором укажем функцию {{=date('n')}}, где n — порядковый номер месяца без ведущего нуля (из документации по PHP).

В действии Уведомление соц. сети поменяем текст сообщения на вывод нашей переменной Variable1:

Текущий месяц - {=Variable:Variable1 > printable}

Результат:

Таким же образом можно выводить дни недели и др. подобные даты.

  Относительный формат даты

Задание: необходимо вывести дату — пятница следующей недели. Сделать это можно с помощью работы функции strtotime и относительных форматов PHP.

Создадим новую переменную [dw]Дата[/dw][di][/di] и снова воспользуемся действием Изменение переменных, как в примере выше. Укажем значение ='next week friday':

А в тексте сообщения соц. сети выведем переменную Дата.

Следующая пятница - {=Variable:Variable2 > printable}

Результат

  Добавление N дней из параметра

Сначала посмотрим на простой пример: прибавим к текущей дате точное количество дней.

Для этого понадобится функция dateadd:

Текущая дата + 2 дня: {{=dateadd({=System:Date}, '2d')}} // прибавим 2 дня к текущей дате

Теперь посмотрим, как правильно добавлять количество дней, которое хранится в параметре БП:

Текущая дата + N дней: {{=dateadd({=System:Date}, {=Template:Parameter1} & 'd')}} // прибавим дни из параметра к текущей дате

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

Результат (при запуске БП для параметра указано значение 10):

  Разница между двумя датами

Функция datediff() позволяет вычислять разницу между двумя датами.

Например, вычисление сколько дней прошло с момента создания элемента до текущего момента может выглядеть так:

{{=datediff({{Дата создания элемента}},{=System:NowLocal},"%d")}}

, где %d — значение параметра форматирования результата. Все значения параметра смотрите в документации PHP.

Для правильного использования функции, важно понимать, какой результат возвращает функция и как его использовать.

Возьмем две даты (с одинаковым днём):

  • Date1: 18.01.2022 12:15:25
  • Date2: 18.01.2022 18:31:00

Посчитаем разницу между этими датами:

{{=datediff({Date1},{Date2},"%h часов %i минут %s секунд")}}
// результат: 6 часов 15 минут 35 секунд

Если для этих же дат мы запишем функцию только со значением %i:

{{=datediff({Date1},{Date2},"%i")}}
// результат: 15

, то получим результат: 15. Т.о. функция datediff не переводит разницу в одну единицу времени (в минуты или в секунды). Её результатом всегда является расчет в полном формате (сколько прошло лет, месяцев, дней, часов и т.д. между двумя датами). А при помощи третьего параметра функции мы указываем лишь какие данные из этого результата отобразить.

Исключением является вариант %a, который выводит общее количество дней между датами. Проверим на том же примере, только для первой даты изменим год на 2020:

  • Date1: 18.01.2020 12:15:25
  • Date2: 18.01.2022 18:31:00
{{=datediff({Date1},{Date2},"%d")}}
// %d - количество дней
// результат: 0
{{=datediff({Date1},{Date2},"%a")}}
// %a - общее количество дней
// результат: 731

Как видим, в первом варианте количество дней равно 0, т.к. прошло ровно 2 года и 0 дней. А во втором варианте результат 731 день, т.е. количество дней за 2 года.

  Проверка корректности времени

Выражение используется для полей документа, переменных или параметров шаблона.

	=if(and((intval(substr({=Template:Parameter1}, 0, 2)) >= 0), (intval(substr({=Template:Parameter1}, 0, 2)) < 25), (substr({=Template:Parameter1}, 2, 1) = ":"), (intval(substr({=Template:Parameter1}, 3, 2)) >= 0), (intval(substr({=Template:Parameter1}, 3, 2)) < 60)), {=Template:Parameter1}, "время указано неправильно")

Если в параметре {=Template:Parameter1} передается время (в 24 часовом формате ЧЧ:ММ, например 21:45), то возвращается его значение. Иначе вернется время указано неправильно.

Вычисляем числовые значения с записью в поля документа

Пример вычисления числовых значений

Рассмотрим небольшой пример работы с полями документа и [dw]вычислением их значений[/dw][di]В системе имеется возможность вычислять значения выражений в параметрах действий.
Подробнее…[/di]. Для простоты воспользуемся функционалом списков (Сервисы > Списки). Описанные ниже действия применимы и к другим типам документов, например, сущностям CRM. За основу примера возьмем сообщение с форума:

«Доброго времени суток, может кто сталкивался с такой задачей, нужно чтоб во время оформления сделки высчитывалась чистая прибыль, т.е. от заложенной суммы сделки вычитался налог усн (6%), вычитались затраты на подряд (если они есть) и все это потом записывалось в отчет менеджера по проведенной сделке.»

Порядок действий

  • Создадим новый список, а в нем набор полей типа [dw]число[/dw][di]Примечание: В зависимости от настроек PHP, значения полей типа число могут отображаться в Экспоненциальной форме записи.[/di]:

    • Сумма;
    • [dw]Затраты на подряд[/dw][di]Поле Затраты на подряд будет не обязательным к заполнению. Если оно будет содержать значения, то они будут учитываться в расчетах, в противном случае — не будут.[/di];
    • Налог (6%). Считается автоматически;
    • Итоговая сумма. Считается автоматически.
  • Создадим шаблон [dw]последовательного бизнес-процесса[/dw][di]Последовательный бизнес-процесс — действия выполняются одно за другим от точки входа до точки выхода.
    Подробнее…[/di] и настроим его на запуск при добавлении нового элемента.
  • Добавим и настроим первое действие [dw]Изменение документа[/dw][di]Действие изменяет указанные поля документа.
    Подробнее…[/di], которое вычислит [dw]налог от общей суммы[/dw][di][/di]:

    Поле: Налог (6%). Считается автоматически,

    Значение: ={=Document:PROPERTY_s}*0.06,

    где {=Document:PROPERTY_s} является значением поля Сумма.

  • Добавим и настроим второе действие Изменение документа, которое вычислит [dw]итоговую сумму[/dw][di][/di] с учетом всех вычетов:

    Поле: Итоговая сумма. Считается автоматически,

    Значение: ={=Document:PROPERTY_s}-{=Document:PROPERTY_contract}-{=Document:PROPERTY_tax},

    где

    {=Document:PROPERTY_s} — значение поля Сумма,

    {=Document:PROPERTY_contract} — значение поля Затраты на подряд,

    {=Document:PROPERTY_tax} — значение поля Налог (6%). Считается автоматически.

Дополнительно

[dw]Шаблон для ознакомления[/dw][di]Примечание: Перед импортом шаблона ознакомьтесь с материалом урока Экспорт и импорт.[/di]: Скачать

Проверьте себя

Ответьте на несколько вопросов по теме Форма «Вставка значения», которые помогут вам самим оценить свои знания. Это не тест, это просто проверка того, как вы поняли тему. Удачи!

Верно ли утверждение?

Оцените верность утверждения: Верно или Неверно. А потом в спойлере проверьте ваш выбор.

1 С помощью формы Вставка значения можно указать собственный текст в параметрах действий или шаблона бизнес-процесса.

Верно

Неверно

2 Дополнительные результаты предоставляют все действия шаблона.

Верно

Неверно

3 Единственный способ использовать системные значения и функции в параметрах действия это внести их вручную.

Верно

Неверно

4 Для преобразования данных в понятную форму есть специальные модификаторы: printable, friendly и name.

Верно

Неверно

5 Выполнение математических операций в бизнес-процессе доступно только с помощью специально предназначенных действий шаблона.

Верно

Неверно

6 В параметрах действий доступно использование как простых математических операций, так и специальных функций и операторов для вычисления выражений.

Верно

Неверно

Практические задания

После изучения главы Форма «Вставка значения» рекомендуем выполнить несколько практических заданий. Выполнять их необходимо на установленной на локальный компьютер [ds]пробной версии Битрикс24 в коробке[/ds][di]В главе описаны предварительные шаги для установки продукта, шаги мастера установки, а также выбор и первоначальная настройка портала для быстрого развертывания своего проекта.

Подробнее…[/di].

В начале установки необходимо выбрать [dw]1C-Битрикс24 Корпоративный портал[/dw][di][/di]. Период работы демонстрационной версии составит 30 дней.

Примечания:

  1. НЕ рекомендуется выполнять задания на работающем, «боевом» портале;
  2. Если вы всё же пытаетесь выполнять задания на работающем портале, где вы не являетесь администратором, то не все задания можно выполнить.

Практические задания состоят из вопроса, скриншота или видео с конечным результатом и объяснением как это получить в спойлере. Не торопитесь подглядывать в спойлер.

Практические задания

Примечание: практические задания предназначены для ознакомления с интерфейсом и получения базовых навыков работы с бизнес-процессами. В заданиях НЕ изучается планирование и создание сложных бизнес-процессов.

  1. Создайте новый последовательный шаблон для БП Cделок без автоматического запуска. В шаблон добавьте только одно действие: [ds]Сообщение соц. сети[/ds][di]Действие, отправляет уведомление модуля социальной сети.

    Подробнее…[/di]. Получателем сообщения пусть будет группа [dw]Администраторы[/dw][di]Или любая другая группа, в которой вы состоите.[/di]. В качестве текста сообщения укажите:

    Сегодня: [текущая дата]
    Сделка "[Название_сделки]" находится на стадии [Название_текущей_стадии]
    Ответственный за сделку: [Пользователь]
    

    Информацию, выделенную квадратными скобками, подставьте с помощью формы Вставка значения. Используйте два способа вставки значения: через форму и через знак =. Сохраните шаблон и проверьте его работу на существующих сделках.

  2. Вернитесь к созданному в задании № 1 шаблону. Добавьте переменную типа Целое число с заполненными значением [dw]по умолчанию[/dw][di]Любое целое число. Например, 26.[/di]. Удалите существующий текст в действии Сообщение соц. сети и добавьте новый:
    • Укажите Создателя сделки в двух вариантах: ID создателя и [dw]Имя[/dw][di]Подсказка: воспользуйтесь модификатором.[/di] создателя;
    • Запишите математическое действие. Умножьте переменную на число 5. Запись должна быть такого вида, чтобы в итоговом сообщении при запуске БП отобразился результат умножения.
  3. Снова изменим шаблон и поработаем с функциями калькулятора выражений. Добавьте один новый параметр типа Целое число (для указания количества дней) и две переменные типа Дата/время. Далее:
    • Добавьте к текущей дате количество дней, равное числу указанному в параметре. Полученное значение должно быть записано в первую переменную;
    • Добавьте к текущей дате количество рабочих дней, равное числу указанному в параметре. Полученное значение должно быть записано во вторую переменную;
    • В действии Сообщение соц. сети удалите старый текст. И выведите значения двух переменных, отформатированных в виде: 1 Мая 2022.

Действия

Последовательный бизнес-процесс строится из набора действий. Каждое действие выполняет определенную функцию и имеет собственные параметры.

В этой главе описаны действия бизнес-процессов и для «1С-Битрикс: Управление сайтом», и для «Битрикс24 в коробке». Не все действия есть в «1С-Битрикс: Управление сайтом». Обращайте внимание на поле [dw]Недоступно в лицензиях[/dw][di][/di] в правом верхнем углу урока.

Общие моменты

Что общего у большинства действий

[ds]Последовательный бизнес-процесс[/ds][di]Последовательный бизнес-процесс — действия выполняются одно за другим от точки входа до точки выхода.
Подробнее…[/di] строится из набора действий. Каждое действие выполняет определенную функцию и имеет собственные параметры.

Внимание! Состав действий зависит от установленных в системе модулей.

  Настройка параметров действия

Настройка параметров действия производится в соответствующей форме, которая вызывается с помощью двойного клика по тексту заголовка действия или с помощью кнопки расположенной на нем.

  Общие моменты

Выделим общие моменты, которые повторяются для всех или большинства действий:

Пример открытой формы настройки параметров действия

  • Поле Заголовок — позволяет задать заголовок действия, который будет [dw]отображен[/dw][di]Для одинаковых действий следует задавать разные заголовки. Это упростит дальнейшую работу с процессом.
    Например: Дополнительные результаты в форме Вставка значения сгруппированы именно по заголовкам действий.[/di] в визуальном конструкторе.

    Примечание: В заголовках действий допускается использование [dw]смайликов (emoji)[/dw][di][/di]. С помощью них делайте любое действие более заметным в шаблоне БП.

  • [Ид] — ссылка, по нажатии на которую открывается уникальный [dw]идентификатор действия[/dw][di]В поле допустимо вводить только буквы латинского алфавита, цифры и символ подчеркивания.
    [/di] для просмотра и изменения. Например, его можно использовать при просмотре [ds]журнала[/ds][di]При разработке и использовании уже готовых процессов бывает необходимо узнать подробности выполнения того или иного процесса / действия. Для этого в системе предусмотрен журнал выполнения бизнес-процессов (лог).

    Подробнее…[/di] выполнения бизнес-процесса в административной части сайта.

  • [Комментарий] — ссылка, по нажатии на которую открывается поле для ввода комментария. Здесь можно указать дополнительную поясняющую информацию к действию. Поле удобно использовать для быстрого ориентирования в шаблоне бизнес-процесса, т.к. эта информация отображается сразу для действия в шаблоне при наведении на иконку со знаком ?:
  • Поля выбора пользователей/групп. Пользователя/группу можно выбрать из списка или задать непосредственно вручную. Для этого нужно указать в поле идентификатор в квадратных скобках для пользователя, например [1] или без скобок — для группы пользователей.
  • Поля c [dw]описанием задания[/dw][di]Пример из действия Ознакомление с документом:

    [/di] или вводом текста сообщения позволяют использовать различные теги [ds]bb-code[/ds][di]BBCode — язык разметки, используемый для форматирования сообщений.

    Подробнее на Википедии[/di], например: [img], [url], [b], [i], [s], [u] и т.д.
    Примеры использования тегов bb-code есть в описании действий [ds]Сообщение соц.сети[/ds][di]Действие, которое позволяет отправить уведомление о событии указанному пользователю/группе пользователей через модуль социальной сети.
    Подробнее…[/di] и [ds]Добавить комментарий[/ds][di]Действие добавляет комментарий в карточку документа CRM.
    Подробнее…[/di].

  • С версии 21.500.0 Дизайнера бизнес-процессов в верхней части формы настройки параметров действия отображаются Подсказки о наличии битых ссылок на поля документа/переменные/константы (например, если неверно указан ID документа):

Документация по теме:

  • Создание собственных действий

Обработка документа

В группе собраны действия, связанные с этапами обработки документа.

Блокировка документа

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

Блокировка продлится до завершения текущего бизнес-процесса или пока не выполнится действие [dw]Разблокировка[/dw][di]Действие разблокирует документ для других бизнес-процессов.
Подробнее…[/di].

Действие доступно в инфоблоках, списках и процессах. Если элемент заблокирован, то в списке элементов в административном разделе видна красная отметка о блокировке:

Важно! С версии 15.5.0 Дизайнера бизнес-процессов данное действие исключено для модуля Диск.

Запустить бизнес-процесс

Действие выполняет запуск нового бизнес-процесса для указанного документа и по выбранному шаблону бизнес-процесса.

  Описание параметров

  • ID документа – идентификатор [dw]документа[/dw][di]В системе все бизнес-процессы работают с документами (таким документом может быть файл, элемент инфоблока, элемент CRM) и их версиями. Для каждого документа (из инфоблока, списков или др.) существуют свои шаблоны бизнес-процессов. Поддерживаемые типы документов описаны в уроке Общая информация.[/di], который запускает бизнес-процесс. Передать значение ID документа доступно через форму [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения.
    Подробнее…[/di]. Приведем несколько примеров, как же заполнить это поле:
    • Укажите ID документа, созданного ранее в этом же бизнес-процессе действием [ds]Создание элемента списка[/ds][di]Действие позволяет создать элемент указанного списка.

      Подробнее…[/di] или [ds]Создание новой сделки[/ds][di]Действие аналогично действиям в публичной части CRM по созданию новой сделки.

      Подробнее…[/di], или любым другим аналогичным действием. ID созданного таким образом документа находится в секции Дополнительные результаты формы Вставка значения;

    • Добавьте в шаблоне параметр типа привязка к элементам CRM или привязка к элементам списка. Тогда привязанный в этом параметре документ станет доступен для добавления в поле ID документа;
    • Запускайте новый бизнес-процесс для сущности CRM, связанной с сущностью в которой запущен текущий бизнес-процесс (например, для Контакта связанного со Сделкой).
  • Сущность – выберите из списка к какой сущности относится документ. В зависимости от выбранной сущности меняется выбор в следующих параметрах, Тип документа и Шаблон;
  • Тип документа – выберите тип документа из списка. Список меняется в зависимости от выбранной сущности. Например, если выбрать сущность Инфоблоки, то будут показаны все доступные в системе инфоблоки с включенными бизнес-процессами;
  • Шаблон – выберите какой шаблон бизнес-процесса использовать. Список шаблонов меняется в зависимости от выбранной сущности. Например, если в параметре Сущность указана Сделка, то в списке отобразятся все шаблоны бизнес-процессов сделок;
  • Ожидать завершения бизнес-процесса – бизнес-процесс будет ожидать выполнения запущенного действия и только потом продолжит свое исполнение.
  • Параметры бизнес-процесса – Секция отобразится, если в выбранном шаблоне бизнес-процесса имеются [ds]параметры[/ds][di]Параметры используются для явного указания каких-либо значений во время исполнения бизнес-процесса и задаются пользователем, запустившим бизнес-процесс. Значения параметров запрашиваются непосредственно при запуске бизнес-процесса.

    Подробнее…[/di] запуска.

    Совет: Используйте параметры для передачи данных из исходного бизнес-процесса в запускаемый.

Примечание: В созданном таким образом процессе, пользователем, запустившим бизнес-процесс, станет тот же пользователь, что и в исходном процессе.

  Запуск БП для элементов CRM

Запуск бизнес-процессов для связанных элементов CRM выполняется через поля документа формы Вставка значения. В качестве ID документа укажите ID связанного элемента CRM. Например, для сделки:

  • ID привязанного контакта: {{Контакт: ID}}
  • ID привязанной компании: {{Компания: ID}}
  • ID привязанного лида: {{Лид}}

Ранее для запуска бизнес-процесса над элементами CRM использовался специальный синтаксис

Описанный выше способ запуска через поля документа на текущий момент подходит только для Лидов, Контактов, Компаний и Сделок. Для привязанного элемента Cмарт-процесса или Cчета запустить бизнес-процесс тоже можно, но [dw]другим способом[/dw][di]Т.к. идентификаторы этих элементов отсутствуют в полях документа в шаблоне бизнес-процесса.[/di]. Потребуется создать специальное [ds]пользовательское поле[/ds][di]Каждый элемент CRM имеет стандартный набор полей, однако у каждого бизнеса есть свои особенности и информация, которую необходимо сохранить. Поэтому вы можете создать дополнительные пользовательские поля — они аналогичны стандартным, по ним так же можно искать и фильтровать элементы.

Подробнее на helpdesk.bitrix24.ru.[/di] типа Привязка к элементу CRM, значение которого будет использоваться в дальнейшем в действии.

Пример: рассмотрим алгоритм действий на примере Сделки и связанным с ней элементом Смарт-процесса

  Результаты выполнения действия и пример

В результате выполнения действия в секции Дополнительные результаты формы Вставка значения станет доступен ID запущенного БП.

  Пример

В примере в качестве ID документа добавлен элемент процесса, созданный ранее действием [dw]Создание элемента списка[/dw][di][/di]. Шаблон Создать мероприятие имеет три необязательных параметра запуска. При необходимости их можно заполнить.

Изменение документа

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

Вспомним: В системе все бизнес-процессы работают с документами (таким документом может быть файл, элемент инфоблока, элемент CRM) и их версиями. Для каждого документа (из инфоблока, списков или др.) существуют свои шаблоны бизнес-процессов. Подробнее об этом было в уроке Общая информация.

  Описание параметров

  • Выберите поле документа, которое вы хотите изменить, и введите новое значение. Чтобы изменить несколько полей нажмите Добавить условие.

    Набор параметров действия зависит от того типа документа, для которого создаётся шаблон бизнес-процесса. Так, если это шаблон бизнес-процесса для Сделок (CRM), то набор параметров будет соответствовать полям сделки (как если бы вы создавали её вручную из публичного раздела). Если же это шаблон бизнес-процесса для информационного блока, то параметры — это поля формы элемента этого информационного блока.

    Ссылка Добавить поле создает новое поле в документе.

    Пример: Для документов типа инфоблоки это приведет к созданию [dw]дополнительных полей элемента инфоблока[/dw][di]При добавлении нового элемента в информационном блок вы сможете установить значения полей, которые будут выводится при создании элемента, а также задать обязательность для заполнения того или иного поля.

    Подробнее…[/di].

  • Дополнить множественные поля вместо перезаписи – если поле является множественным, выберите Да для дополнения списка вариантов новым значением. Иначе старое значение будет перезаписано;
  • Изменять от имени – укажите Пользователя, от имени которого будет выполнено изменение полей.

  Результаты выполнения действия

Дополнительных результатов действие не имеет.

  Дополнительно

Действие Изменение документа подходит для внесения изменений в текущий документ, для которого запущен бизнес-процесс. Также для изменения документов есть более узкоспециализированные действия:

  • Изменить элемент списка;
  • Изменение компании;
  • Изменение контакта;
  • Изменить элемент смарт-процесса;
  • Изменить привязанный элемент.

Изменить элемент списка

Действие позволяет изменить значение полей внутри элемента указанного списка.

Описание параметров

  • ID элемента – укажите элемент, который будет изменен. Например: текущий элемент {{ID элемента}};
  • Тип документа – выберите тип изменяемого документа. Это может быть список, процесс или список групп / проектов;
  • Ссылка Выбрать поле – выберите поле, которое будет изменено в выбранном ранее документе. Доступно выбрать несколько полей. Набор полей зависит от документа.

Пример настройки: изменение поля элемента списка Клиенты. Действие устанавливает значение ДА для поля Больше не работаем.

Получить информацию о задаче

Действие позволяет получить значения полей указанной [ds]задачи[/ds][di]Главный инструмент для планирования и регулирования работ внутри компании — это Задачи. Битрикс24.Задачи и проекты помогают работать вместе и успевать вовремя. Если задача поставлена в Битрикс24, она обязательно будет выполнена.
Ставьте задачи себе и коллегам, организуйте их выполнение и планируйте крайние сроки.

Подробнее на helpdesk.bitrix24.ru.[/di] и использовать их в других действиях бизнес-процесса.

Примечание: Действие относится к модулю Задачи. Доступно только в Битрикс24 c версии 21.600.0.

  Описание параметров

  • ID задачи – укажите идентификатор задачи, для которой необходимо получить значения полей. Например, это может быть идентификатор задачи, ранее созданной в этом же шаблоне бизнес-процесса действием [ds]Задача[/ds][di]Действие позволяет создать задачу.

    Подробнее…[/di];

  • Выберите поля – выберите поля задачи, значения которых необходимо получить. Для выбора нескольких полей зажмите клавишу Ctrl на клавиатуре и кликайте левой кнопкой мыши на поля.

    Примечание: Список полей содержит как штатные поля задачи, так и [ds]пользовательские поля[/ds][di]Пользовательское поле позволяет добавлять к задаче информацию, специфическую для вашей компании. Вы можете самостоятельно подстроить задачи под себя таким образом, чтобы они отражали всю суть выполняемых работ.

    Подробнее на helpdesk.bitrix24.ru.[/di]. Ниже, в спойлере, приведен список всех штатных полей задачи, доступных в действии. Остальные поля будут являться пользовательскими, назначение которых вы можете уточнить в своей компании (например, у администратора портала).

    Список штатных полей задачи, доступных в действии.

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

    Подробнее…[/di].

  Пример

Допустим в шаблоне бизнес-процесса создаётся новая задача с помощью действия [ds]Задача[/ds][di]Действие позволяет создать задачу.

Подробнее…[/di]. И далее, после выполнения задачи ответственным, мы хотим получить определенную информацию о выполненной им задаче и отправить её автору БП уведомлением. Описанная часть бизнес-процесса может выглядеть так:

С помощью действия Получить информацию о задаче получим название созданной задачи, описание и ответственного. [dw]ID задачи[/dw][di]ID созданной задачи хранится в дополнительных результатах.

[/di] укажем с помощью формы Вставка значения.

Теперь значение этих полей тоже станут доступны в форме Вставка значения:

А значит можно их добавить в другое действие. Например, как указано в задаче, отправить уведомление с помощью действия [ds]Сообщение соц.сети[/ds][di]Действие, которое позволяет отправить уведомление о событии указанному пользователю/группе пользователей через модуль социальной сети.
Подробнее…[/di]:

Совет: Не забывайте использовать [ds]модификаторы[/ds][di]Указанные нами параметры, переменные шаблона или поля документа возможно модифицировать с помощью специальных модификаторов, которые преобразуют данные.

Подробнее…[/di] для преобразования значений в подходящий вам или читаемый вид.

Получить информацию об элементе списка

Действие позволяет получить значения полей элемента указанного списка.

Описание параметров

  • ID элемента – укажите элемент для чтения. Например: текущий элемент {{ID элемента}};
  • Тип документа – выберите тип документа для чтения. Это может быть список, процесс или список групп / проектов;
  • Выберите поля – выберите поля, значения которых необходимо получить. Для выбора нескольких полей зажмите клавишу Ctrl на клавиатуре. Набор полей зависит от выбранного типа документа.

Пример настройки: чтение значения поля элемента списка Клиенты.

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

Публикация документа

Действие переводит документ в статус опубликован.

Примечание: Действие используется только для бизнес-процессов информационных блоков в 1С-Битрикс: управление сайтом и коробочной версии Битрикс24.

  Описание параметров

Действие не имеет параметров. Запускается для текущего документа (для которого запущен бизнес-процесс) и переводит его в статус опубликован.

  Пример

Задача: пусть на сайте есть новостной раздел, реализованный на инфоблоке Новости. Созданная в инфоблоке новая новость должна быть направлена администратору на проверку (утверждение), и только после проверки публиковаться на сайте.

Создадим такой простой шаблон бизнес-процесса для инфоблока Новости:

Шаблон должен запускаться [ds]при создании[/ds][di]Бизнес-процесс имеет два варианта автоматического запуска: при создании и/или при изменении элемента.

Подробнее…[/di] новости. Непосредственно после создания новость будет иметь статус [dw]Не опубликован[/dw][di][/di]. Администратор получит задачу на утверждение новости. Если утвердит — запустится действие Публикация документа и новость появится на сайте. Если нет — новость будет [ds]удалена[/ds][di]Действие Удаление документа удаляет документ, запустивший бизнес-процесс.

Подробнее…[/di]. В любом варианте автору будет направлено уведомление.

Публикация на подключенных сайтах

Действие [dw]Публикация на подключенных сайтах[/dw][di]Действие относится к модулю Контроллер.
Подробнее…[/di] позволяет опубликовать элемент инфоблока на подключенных сайтах.

Описание Параметров

Тип выбора сайтов – указывается, на каких сайтах будет опубликован элемент инфоблока

  • Все сайты;
  • Сайты принадлежащие определенным группам;
  • Выбранные сайты из одной группы.

Синхронизировать элементы:

  • немедленно – элементы будут синхронизированы немедленно;
  • используя задачи – синхронизация будет происходить с использованием [dw]задач[/dw][di]Планировщик задач — это специализированный инструмент, который накапливает задания, формируемые остальным функционалом контроллера, и выполняет их в ручном или автоматическом режиме.Подробнее…[/di].

Важно! С версии 15.5.0 Дизайнера бизнес-процессов данное действие включено только для модуля Инфоблоки.

Разблокировка документа

Действие разблокирует документ для других бизнес-процессов. Используется для снятия блокировки после применения действия [dw]Блокировка документа[/dw][di]Действие блокирует документ, чтобы другие процессы не смогли произвести в него запись. Таким образом сохраняется целостность данных — несколько бизнес-процессов не смогут одновременно изменить документ и сохранить его.

Подробнее…[/di].

Примечание: Если не разблокировать документ в текущем процессе, то он будет недоступен для действий других бизнес-процессов до тех пор, пока не будет завершен.

Важно! С версии 15.5.0 Дизайнера бизнес-процессов данное действие исключено для модуля Диск.

Снятие документа с публикации

Действие снимает документ с публикации. Противоположно действию [ds]Публикация документа[/ds][di]Действие переводит документ в статус опубликован.

Подробнее…[/di].

Примечание: Действие используется только для бизнес-процессов информационных блоков в 1С-Битрикс: управление сайтом и коробочной версии Битрикс24.

  Описание параметров

Действие не имеет параметров. Запускается для текущего документа (для которого запущен бизнес-процесс) и переводит его в статус Не опубликован.

  Пример

Примером применения действия может быть необходимость запуска шаблона бизнес-процесса автоматически при изменении документа (к примеру, элемента в инфоблоке Новости) для снятия его с публикации с последующей проверкой. Если документ проходит проверку, он снова публикуется. Часть процесса может выглядеть так:

Создание нового документа

Действие создаёт новый документ.

Вспомним: В системе все бизнес-процессы работают с документами (таким документом может быть файл, элемент инфоблока, элемент CRM) и их версиями. Для каждого документа (из инфоблока, списков или др.) существуют свои шаблоны бизнес-процессов. Подробнее об этом было в уроке Общая информация.

  Описание параметров

Набор параметров действия зависит от того типа документа, для которого создаётся шаблон бизнес-процесса. Так, если это шаблон бизнес-процесса для Сделок (CRM), то набор параметров будет соответствовать полям сделки (как если бы вы создавали её вручную из публичного раздела). Если же это шаблон бизнес-процесса для информационного блока, то параметры — это поля формы элемента этого информационного блока.

Внимание: Действие есть и в шаблонах бизнес-процессов Диска. Его доступно использовать, но оно не создаёт полноценный файл. Для работы с файлами Диска используйте специально предназначенные для этого действия.

  Результаты выполнения действия

Дополнительных результатов действие не имеет.

  Дополнительно

Действие Создание нового документа имеет широкий набор полей при создании документа, что не всегда удобно. Например, если вы хотите создать элемент универсального списка, то текущее действие предложит заполнить полный набор полей как для элемента информационного блока. Поэтому рекомендуем использовать это действие в шаблонах бизнес-процессов информационных блоков, а для шаблонов остальных типов документов более узко-специализированные действия:

  • Создать элемент списка;
  • Создание нового контакта;
  • Создание нового лида;
  • Создание новой компании;
  • Создание новой сделки;
  • Создать элемент CRM.

Создать элемент списка

Действие добавляет элемент в один из уже созданных списков.

  Описание параметров

  • Тип документа – выберите для какого списка создать новый элемент.

Остальные параметры различаются в зависимости от выбранного списка и соответствуют полям списка. К спискам относятся Универсальные списки (Сервисы > Списки) и Процессы в ленте новостей (Автоматизация > Бизнес-процессы > Процессы в ленте новостей), а также списки групп и проектов.

  Пример

В примере выбран универсальный список Клиенты. После выбора типа документа появляются два параметра для заполнения. В качестве создателя элемента указан Автор (пользователь, запустивший бизнес-процесс), а в название подставляется значение [ds]параметра шаблона[/ds][di]Параметры используются для явного указания каких-либо значений во время исполнения бизнес-процесса и задаются пользователем, запустившим бизнес-процесс. Значения параметров запрашиваются непосредственно при запуске бизнес-процесса. И не могут быть изменены бизнес-процессом, в отличие от переменных.

Подробнее…[/di] бизнес-процесса.

  Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты.

Доступно:

  • [dw]Id[/dw][di]Идентификатор ID созданного элемента списка.[/di]

Сохранение истории

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

Описание Параметров

Название записи в историю – указывается название версии документа, под которым он будет сохранен в истории. Это позволит отличить его от других версий. Оставьте поле пустым для того, чтобы название бралось из документа.

Пользователь, от имени которого записывается история – укажите пользователя, от имени которого будет сделана запись.

Важно! С версии 15.5.0 Дизайнера бизнес-процессов данное действие исключено для модуля Диск.

Удаление документа

Действие удаляет документ, [dw]запустивший[/dw][di]Этим действием нельзя удалить другой документ (элемент списка). Только тот, в котором запущен бизнес-процесс.[/di] бизнес-процесс.

Параметры

  • Прервать текущий Бизнес-процесс – при выборе варианта Да процесс выполнения бизнес-процесса будет прерван после удаления документа.

Простой пример использования действия «Удаление документа»

Задания

В группе содержатся действия, создающие задания бизнес-процессов для пользователей.

Запрос доп.информации (с отклонением)

Действие создаст задание, в ходе которого у пользователя (или пользователей) запрашивается дополнительная информация, необходимая для выполнения бизнес-процесса. В отличие от стандартного действия [dw]Запрос дополнительной информации[/dw][di]Действие создает задание, в ходе которого у пользователя запрашивается дополнительная информация, необходимая для выполнения бизнес-процесса.
Подробнее…[/di], пользователь имеет возможность отклонить ввод информации.

  Описание параметров

  • Заполняют сотрудники – указываются пользователи, один из которых ([dw]первый[/dw][di]Другими словами задание будет доступно всем указанным пользователям до тех пор, пока кто-то один не начнет его выполнять. После этого оно автоматически отменится у всех остальных сотрудников.[/di], кто приступит к его выполнению) должен указать дополнительную информацию.
  • Название задания – задается название, которое отобразится в интерфейсе для пользователей.
  • Описание задания – указывается описание или пояснения к заданию. Содержимое данного поля отобразится в интерфейсе для пользователей. Рекомендуется в этом поле указывать полную информацию о действии, которое необходимо выполнить пользователю. Это поможет избежать путаницы в случае нескольких однотипных действий.
  • Текст кнопки в задании – позволяет задать собственный текст для кнопки, соответствующей вводу информации.
  • Показывать поле ввода комментария – опция позволяет разрешить пользователям оставлять собственные комментарии к назначенному заданию. Например, какие-либо примечания касаемо задания. Содержимое поля можно получить после выполнения действия с помощью соответствующей опции в форме Вставка значенияДополнительные результаты (см. ниже).
  • Обязательность комментария – опция позволяет установить добавление комментария при выполнении задания обязательным. Помимо простых вариантов Да и Нет, с версии 21.400.0 модуля Бизнес-процессы, доступны варианты:
    • Только при утверждении – комментарий обязателен только при утверждении задания;
    • Только при отклонении – комментарий обязателен только при отклонении задания.
  • Метка для поля комментария – подпись для поля с комментарием.
  • Устанавливать текст статуса – позволяет изменить текст статуса документа на произвольный. Это может, например, позволить отслеживать на каком этапе сейчас находится бизнес-процесс.
  • Текст статуса – задается текст статуса.
  • Период ожидания информации: – позволяет [dw]установить время[/dw][di]В выбранных единицах: секундах, минутах, часах или днях. Например, 86400 секунд, 36 часов или 5 дней.[/di], в течение которого действие будет ожидать выполнения. По окончании периода задание будет автоматически завершено. Пустое значение или 0 — отсутствие периода. Минимальное значение периода зависит от настроек модуля Бизнес-процессы, параметр Минимальное время ожидания для действий. Если в настройках действия указать период меньше этого минимального значения — появится соответствующее [dw]предупреждение[/dw][di][/di].
  • Ограничить доступ – делает текст задания видимым только для исполнителя задания и не показывает его в живой ленте. Это очень полезная опция, если нужно, например, передать исполнителю конфиденциальную информацию: пароли, пин-коды и т.п.
  • Тип делегирования – выбирается из списка кому доступно делегировать запрос:
    • Только подчиненным;
    • Всем сотрудникам;
    • Никому.
  • Текст кнопки отклонения в задании – позволяет задать собственный текст для кнопки, соответствующей отклонению ввода информации.
  • Сохранять значения в случае отказа – если выбрано Да, то все введенные данные будут сохранены даже в случае отклонения запроса. Сохраненные данные останутся доступны для использования в бизнес-процессе. Параметр доступен с версии 20.200.0 модуля Бизнес-процессы.
  • Раздел Поля позволяет добавить собственные поля, которые будет необходимо заполнить пользователям в ходе выполнения задания. Содержимое полей после выполнения действия можно получить в форме Вставка значенияПеременные.

  Переменные и результаты

Переменные

В этом разделе можно получить содержимое дополнительных полей, созданных в разделе Поля.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон:

  • ID;
  • Комментарий;
  • Автоматическое завершение;
  • Пользователь, предоставивший информацию.

Запрос дополнительной информации

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

  Описание параметров

Заполняют сотрудники – указываются пользователи, один из которых ([dw]первый[/dw][di]Другими словами задание будет доступно всем указанным пользователям до тех пор, пока кто-то один не начнет его выполнять. После этого оно автоматически отменится у всех остальных сотрудников.[/di] кто приступит к его выполнению) должен указать дополнительную информацию.

Название задания – задается название, которое будет отображаться в интерфейсе для пользователей.

Описание задания – указывается описание или пояснения к заданию. Содержимое данного поля будет отображаться в интерфейсе для пользователей. Рекомендуется в этом поле указывать полную информацию о действии, которое необходимо выполнить пользователю. Это поможет избежать путаницу в случае нескольких однотипных действий.

Текст кнопки в задании – позволяют задать собственный текст для соответствующей кнопки.

Показывать поле ввода комментария – опция позволяет разрешить пользователям оставлять собственные комментарии к назначенному заданию. Например, какие-либо примечания касаемо задания. Содержимое поля можно получить после выполнения действия с помощью соответствующей опции в форме Вставка значенияДополнительные результаты (см. ниже).

Обязательность комментария – опция позволяет назначить добавление комментария при выполнении действия обязательным.

Метка для поля комментария – подпись для поля с комментарием.

Устанавливать текст статуса – позволяет изменить текст статуса документа на произвольный. Это может, например, позволить отслеживать на каком этапе сейчас находится бизнес-процесс.

Текст статуса – задается текст статуса.

Период ожидания информации: По окончании периода задание будет автоматически завершено. Пустое значение или 0 — отсутствие периода. – позволяет установить время, в течение которого действие будет ожидать выполнения.

Ограничить доступ – делает текст задания видимым только для исполнителя задания и не показывает его в живой ленте. Это очень полезная опция, если нужно, например, передать исполнителю конфиденциальную информацию: пароли, пин-коды и т.п.

Раздел Поля позволяет добавить собственные поля, которые будет необходимо заполнить пользователям в ходе выполнения задания.

Содержимое полей после выполнения действия можно получить в форме Вставка значенияПеременные.

  Переменные и результаты

Переменные

В этом разделе можно получить содержимое дополнительных полей, созданных в разделе Поля.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон:

  • Комментарий.
  • Автоматическое завершение.
  • Пользователь, предоставивший информацию.
  • Измененные поля.

Ознакомление с документом

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

  Описание параметров

Ознакомить пользователей – указываются пользователи, которые должны ознакомиться с документом.

Название задания – задается название, которое будет отображаться в интерфейсе для пользователей.

Описание задания – указывается описание или пояснения к заданию. Содержимое данного поля будет отображаться в интерфейсе для пользователей. Рекомендуется в этом поле указывать полную информацию о действии, которое необходимо выполнить пользователю. Это поможет избежать путаницу в случае нескольких однотипных действий.

Должны ознакомиться:

  • Все сотрудники – задача не будет выполнена пока с документом не ознакомятся все пользователи, указанные выше;
  • Любой сотрудник – с документом должен ознакомиться любой из пользователей, указанных выше.

Устанавливать текст статуса – позволяет изменить текст статуса документа на произвольный. Это может, например, позволить отслеживать на каком этапе сейчас находится бизнес-процесс.

Текст статуса – задается текст статуса.

Текст кнопки в задании – позволяют задать собственный текст для соответствующей кнопки.

Показывать поле ввода комментария – опция позволяет разрешить пользователям оставлять собственные комментарии к назначенному заданию. Например, какие-либо примечания касаемо задания. Содержимое поля можно получить после выполнения действия с помощью соответствующей опции в форме Вставка значенияДополнительные результаты (см. ниже).

Обязательность комментария – опция позволяет назначить добавление комментария при выполнении действия обязательным.

Метка для поля комментария – подпись для поля с комментарием.

Период ознакомления – можно задать период, если до окончания которого пользователи не будут ознакомлены с документом, то задание по ознакомлению будет автоматически завершено. Пустое значение или 0 — отсутствие периода.

Ограничить доступ – делает текст задания видимым только для исполнителя задания и не показывает его в живой ленте. Это очень полезная опция, если нужно, например, передать исполнителю конфиденциальную информацию: пароли, пин-коды и т.п.

  Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно следующее:

  • Комментарий;
  • Сколько ознакомлено;
  • Сколько должно быть ознакомлено;
  • Автоматическое ознакомление — поле будет содержать 1, если задание по ознакомлению было автоматически завершено (см. Период ознакомления);
  • Последний ознакомившийся — ID последнего пользователя ознакомившегося с документом.

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

Действие позволяет произвести [dw]утверждение документа[/dw][di]Примечание: Бизнес-процесс будет поставлен в ожидание (приостановлен), пока кто-либо из указанных пользователей не выполнит задание (утвердит или отклонит заявку) или не выйдет время (см. опцию Период утверждения).[/di], для которого запущен бизнес-процесс. В зависимости от результата (утвержден документ или нет) возможны 2 варианта развития дальнейших действий.

  Описание параметров

  • Утверждают сотрудники – указываются [dw]пользователи / группы пользователей[/dw][di]Для указания списка пользователей или групп используйте перечисление через ;.

    [/di], которые должны утвердить документ.

  • Тип утверждения:
    • Все сотрудники – утвердить должны все пользователи указанные выше;
    • Любой сотрудник – утвердить должен любой из пользователей, указанных выше;
    • Голосование сотрудников – утверждение производится методом голосования среди указанных выше пользователей.
  • Название задания – задается название, которое будет отображаться в интерфейсе для пользователей.
  • Описание задания – указывается описание или пояснения к заданию. Содержимое данного поля будет отображаться в интерфейсе для пользователей. Рекомендуется в этом поле указывать полную информацию о действии, которое необходимо выполнить пользователю. Это поможет избежать путаницы в случае нескольких однотипных действий.
  • Устанавливать текст статуса – позволяет изменить текст статуса документа на произвольный. Это может, например, позволить отслеживать на каком этапе сейчас находится бизнес-процесс.
  • Текст статуса – задается текст статуса.
  • Текст кнопки подтверждения в задании и Текст кнопки отказа в задании позволяют задать собственный текст для соответствующих кнопок.
  • Показывать поле ввода комментария – опция позволяет разрешить пользователям оставлять собственные комментарии к назначенному заданию. Например, какие-либо замечания касаемо утверждаемого документа. Содержимое поля можно получить после выполнения действия с помощью соответствующей опции в форме Вставка значенияДополнительные результаты (см. ниже).
  • Обязательность комментария – опция позволяет назначить добавление комментария при выполнении действия обязательным. Можно включить обязательность комментария только для утверждения или отклонения документа.
  • Метка для поля комментария – подпись для поля с комментарием.
  • Период утверждения – задаётся период, за время которого требуется утвердить либо отклонить документ. По истечении этого времени документ будет автоматически отвергнут. Пустое значение или 0 — отсутствие периода. Период можно задать в секундах, минутах, часах или днях. Минимальное значение периода зависит от настроек модуля Бизнес-процессы, параметр Минимальное время ожидания для действий. Если в настройках действия указать период меньше этого минимального значения — появится соответствующее [dw]предупреждение[/dw][di][/di].
  • Ограничить доступ – делает текст задания видимым только для исполнителя задания и не показывает его в живой ленте. Это очень полезная опция, если нужно, например, передать исполнителю конфиденциальную информацию: пароли, пин-коды и т.п.

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

  • Тип делегирования – кому может быть делегировано утверждение документа. Доступны варианты: Только подчиненным, Всем сотрудникам и Никому. При выборе первых двух вариантов в форме утверждения документа появится кнопка Делегировать.

    Примечание: Администратор может делегировать действие, даже если это запрещено настройками.

  Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно следующее:

  • ID;
  • Комментарии;
  • Сколько проголосовало;
  • Сколько должно проголосовать;
  • Процент проголосовавших;
  • Процент утвердивших;
  • Процент отклонивших;
  • Количество утвердивших;
  • Количество отклонивших;
  • Последний голосовавший;
  • Комментарий последнего голосовавшего;
  • Утвердили пользователи;
  • Утвердили пользователи (текст) — получение списка пользователей;
  • Отклонили пользователи;
  • Отклонили пользователи (текст)- получение списка пользователей;
  • Автоматическое отклонение — поле будет содержать 1, если документ был автоматически отклонен (см. параметр Период утверждения).

Конструкции

В группе собраны управляющие конструкции.

Итератор

Конструкция выполняет перебор значений во [dw]множественных[/dw][di]Включена опция Множественный в настройках. Например, для переменной шаблона:
[/di] переменных. С помощью этой конструкции возможно создать цикл действий, каждая итерация которого выполнится с очередным значением множественной переменной (константы, параметра, поля документа).

  Параметры и структура конструкции

При добавлении конструкции Итератор в шаблон, появляется область выделенная серым цветом. Все действия, расположенные в этой области будут участвовать в цикле.

Итератор имеет один параметр Источник, в котором требуется выбрать [dw]источник значений[/dw][di]До версии модуля Бизнес-процессы 21.700.0 конструкция работала только с
переменными шаблона.
[/di] из списка. Источником значений может быть:

  • Параметр/переменная/константа шаблона БП;
  • Глобальная константа/переменная;
  • Поле документа.

  Дополнительные результаты

В результате использования конструкции в форме Вставка значения станут доступны Дополнительные результаты, которые потребуются нам для использования в цикле:

  • Ключ
  • Значение

Обратите внимание! Для того, чтобы каждый раз в цикле использовать очередное значение из источника, нужно использовать пункт [dw]Значение[/dw][di][/di] из Дополнительных результатов Итератора.

  Простой пример

Сначала подробно разберем работу итератора на очень простом примере:

  • Пусть у нас есть множественная переменная типа Целое число, в которой задано 6 разных чисел: 4, 8, 15, 16, 23, 42.

  • Создаём шаблон бизнес-процесса. Используем конструкцию Итератор и действие [dw]Сообщение соц. сети[/dw][di]Действие, которое позволяет отправить уведомление указанному пользователю/группе пользователей через модуль социальной сети.

    Подробнее…[/di] в теле итератора:

  • В параметре Итератора укажем переменную со списком чисел, а в Сообщении соц. сети в качестве текста сообщения — дополнительный результат итератора [dw]Значение[/dw][di][/di]:

Сохраним шаблон и запустим его на выполнение. Результат — 6 уведомлений с числами из переменной:

Поясним как выполнялся процесс:

  • Итератор взял первое значение из переменной. Это число 4;
  • Действие Сообщение соц.сети отработало с числом 4. Первая итерация цикла завершилась;
  • Итератор взял следующее значение из переменной — число 8;
  • Действие Сообщение соц.сети отработало с числом 8. Вторая итерация цикла завершилась;
  • И т.д. Процесс повторялся пока не было использовано последнее значение из переменной (число 42).

Таким образом в бизнес-процессе совершено 6 итераций (т.к. в переменной 6 чисел) и в результате показано 6 уведомлений.

Дополнительный результата итератора Ключ

  Другие примеры

  Создание задач для списка пользователей

Например, у вас имеется переменная с типом Привязка к пользователю, представляющая собой [dw]список сотрудников[/dw][di][/di]. И вы хотите создать последовательно каждому из них задачу. Укажите в настройках Итератора переменную со списком, а в цикл добавьте действие [ds]Задача[/ds][di]Действие позволяет создать задачу.

Подробнее…[/di]:

В качестве Ответственного укажем [dw]Значение[/dw][di][/di] из дополнительных результатов формы Вставка значения:

В результате запуска БП будет создано три задачи — по одной задаче для каждого пользователя из множественной переменной:

Нажмите на рисунок, чтобы увеличить

  Чтение информации о всех товарных позициях сделки

Пример приведен в уроке Информация о товарной позиции.

Команда

Действие, выполнение которого зависит от [dw]пользователей[/dw][di]Команда останавливает бизнес-процесс и ожидает действий от пользователя.[/di]. Для пользователя создаётся соответствующий элемент управления, в котором он выбирает какую команду выполнить.

Тип и вид элемента управления зависит от документа и места, где был запущен бизнес-процесс. Выполнение команды доступно пользователю только в документе для которого запущен бизнес-процесс, при этом действие не отправляет каких-либо уведомлений. Рекомендуется дополнительно оповестить пользователя, например, с помощью действия [ds]Сообщение соц. сети[/ds][di]Действие, которое позволяет отправить уведомление о событии указанному пользователю/группе пользователей через модуль социальной сети.

Подробнее…[/di], что ему необходимо выполнить эту команду.

Примечание: Наиболее часто действие Команда используется совместно с конструкцией [ds]Параллельное ожидание действия[/ds][di]Конструкция, которая позволяет направить бизнес-процесс по разным сценариям в зависимости от того, какое из событий наступит раньше.

Подробнее…[/di].

  Описание параметров

  • Выполнить команду могут – позволяет ограничить круг пользователей, которым будет доступна эта команда.
  • Примечание: Параметр

    не

    работает с группами из раздела Вставка значения > [dw]Категории пользователей[/dw][di][/di]. В поле могут быть добавлены только пользователи из раздела Вставка значения > [dw]Пользователи[/dw][di][/di]. Требуемые группы и пользователи будут отображаться в этом разделе при наличии прав на доступ к типу документа (конкретному инфоблоку, универсальному списку и т.д.), для которого создаётся шаблон бизнес-процесса.

  Пример настройки:

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон:

  • Пользователь, отправивший команду.

Пример использования действия

Параллельное выполнение

Конструкция, позволяющая выполнять параллельные сценарии бизнес-процесса.

  Структура конструкции

При добавлении конструкции в шаблон бизнес-процесса автоматически создаются две ветки (минимальное количество). С помощью знака
добавляется новая ветка, а знак на ветке — удаляет её. Других настроек у действия нет.

Важно правильно использовать эту конструкцию.

  Особенности и пример использования

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

  Посмотрим такой пример: пусть требуется шаблон для создания новой Задачи для Сделки (CRM). При этом бизнес-процесс должен быть остановлен, пока задача не будет выполнена. Дополнительно требуется уведомить Ответственного о создании задачи и дать ссылку на неё. После завершения задачи также должно прийти уведомление.

Задача сначала кажется простой. И со вторым уведомлением действительно сложностей нет. А вот где разместить действие с уведомлением ответственному о создании задачи?

  • Если разместить до действия [ds]Задача[/ds][di]Действие позволяет создать задачу.

    Подробнее…[/di], то мы ещё не знаем идентификатора новой задачи (задача не создана на этом этапе);

  • Если разместить после действия Задача, то на этом этапе задача уже будет выполнена и уведомление о создании новой задачи нам не требуется, только о завершении.

Тут поможет конструкция Параллельное выполнение. Оформим шаблон таким образом:

Поясним как отработает процесс:

  • Левая ветка выполняется первой, поэтому в ней размещено действие Задача. Выполнение ветки [dw]остановится[/dw][di]В настройках действия должна быть отмечена опция Остановить процесс на время выполнения задачи.[/di] на время выполнения задачи, но нам станут доступны [dw]дополнительные результаты[/dw][di][/di] этого действия.
  • Продолжает выполнение правая ветка, в которой размещено действие [ds]Сообщение соц. сети[/ds][di]Действие, отправляет уведомление модуля социальной сети.

    Подробнее…[/di]. В описании действия мы используем [dw]ID новой задачи[/dw][di][/di]. Правая ветка выполнится полностью сразу и ответственный получит уведомление.

  • Как только задача будет завершена, т.е. все ветки конструкции выполнятся, сработает второе уведомление и процесс завершится полностью.
  •   Ещё пример удобного использования конструкции: организация параллельного ознакомления с одним документом разных групп пользователей.

Параллельное ожидание действия

Конструкция, которая позволяет направить бизнес-процесс по разным сценариям в зависимости от того, какое из событий наступит раньше.

  Структура конструкции

При добавлении конструкции в шаблон бизнес-процесса автоматически создаются две ветки (минимальное количество). С помощью знака
добавляется новая ветка, а знак на ветке — удаляет её. Других настроек у действия нет.

Важно правильно использовать эту конструкцию.

  Особенности использования

В работе конструкции есть два важных момента:

  • В ветках конструкции первыми должны быть обязательно расположены действия [ds]Команда[/ds][di]Действие, выполнение которого зависит от пользователей. Для них будет создан соответствующий элемент управления.

    Подробнее…[/di] или [ds]Задача[/ds][di]Действие позволяет создать задачу.

    Подробнее…[/di]. То, по какой ветке действий направится выполнение бизнес-процесса, зависит от того, какое из этих действий выполнится раньше. Под выполнением действия понимается:

    • Выполнение команды пользователем в запущенном бизнес-процессе для действия Команда;
    • Завершение созданной задачи для действия Задача;
    • Истечение периода времени или наступление даты / времени, указанного в действии Пауза в выполнении (об этом в следующем пункте).

    Примечание: Как только выполнится первое действие одной из веток, другие ветки бизнес-процесса полностью исключаются. Даже если процесс первой ветки остановится на [dw]ожидании[/dw][di]Например, для запроса дополнительной информации у пользователя.[/di]. Главный критерий для выбора ветки — это только завершение первого действия.

  • Всегда используйте действие [ds]Пауза в выполнении[/ds][di]Действие позволяет отложить выполнение следующего действия на заданное время.

    Подробнее…[/di] в одной из веток действия (в качестве первого действия). Оно позволит продолжить выполнение бизнес-процесса по истечении указанного в нем времени, если ни одна из команд не будет выполнена. Иначе процесс зависнет и исполняться дальше не будет. Такие процессы накапливаются и [ds]увеличивают нагрузку на проект[/ds][di]Бизнес процессы — важнейший инструмент, который позволяет автоматизировать рабочие процессы компании. Однако их использование требует определенного навыка и осторожности. В противном случае бизнес-процессы создадут значительную нагрузку на проект.

    Подробнее…[/di].

  Пример

Посмотрим на простой пример правильного использования конструкции в шаблоне бизнес-процесса:

В примере показаны три ветки. В двух из них используется команда, в третьей — пауза. Пользователь должен [dw]выбрать команду[/dw][di][/di]. И в зависимости от выбранной команды — исполнится дальнейшая ветка БП. Если выбор не будет осуществлен, через указанное время сработает окончание Паузы (третья ветка) и бизнес-процесс завершится.

Условие

Конструкция позволяет направить бизнес-процесс по разным сценариям в зависимости от заданного типа условия.

  Структура конструкции

При добавлении конструкции Условие в шаблон бизнес-процесса автоматически создаются две ветки (минимальное количество). С помощью знака
добавляется новая ветка, а знак на ветке — удаляет её. Других настроек у основного действия нет. В каждой ветке настраиваются условия выполнения этой ветки .

С версии 22.400.0 модуля Бизнес-процессы ветки условий можно легко менять местами и копировать с помощью стрелок и . По клику на стрелку ветка переместится в соответствующую сторону, а при зажатой клавише Ctrl ветка скопируется.

Проверка условий начинается слева направо. Если условие выполняется, то действия, расположенные в ветке под ним, будут исполнены. Если же условие не выполняется, то происходит переход к условию, расположенному правее, и так до тех пор, пока какое-либо условие не будет выполнено.

  Типы условий

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

Внимание! Если ни одно из условий не выполнится, то, бизнес-процесс продолжит выполнять действия расположенные под конструкцией Условие. Другими словами он ее «перескочит».

  • Смешанное

    Тип условия Смешанное доступен с версии 20.100.0 модуля Бизнес-процессы.

    Тип даёт возможность указать условие одновременно по параметрам, переменным, константам, глобальным константам, глобальным переменным, полям документа и дополнительным результатам без необходимости создавать разные ветки и дополнительные переменные. При это условия объединяются по правилу И / ИЛИ. При выборе И ветка условий будет исполняться при выполнении обоих условий, а при ИЛИ — любого из указанных.

    На скриншоте под номером 1 выбрано условие типа Поле документа, а под номером 2Глобальная переменная. Условия объединены правилом И.

  • PHP код

    В качестве условия указывается [dw]код[/dw][di]Задавать PHP-код может только пользователь с правами администратора.[/di]. В случае если указанный PHP код вернет значение true, то будет выполнена ветка действий условия, если возвратится false, то будет произведен переход к следующему условию.

    Внимание! Для этого типа условия можно использовать только PHP-код. Параметры типа {=Variable:Variable2_printable} не поддерживаются.
    Также результатом выполнения кода в условии должно быть логическое выражение (true или false).

  • Значение переменной

    Ветка действий условия будет выполнена, если совпадут значения, связанные с переменными бизнес-процесса.

    Для этого необходимо выбрать Переменную/Параметр, указать оператор условия из списка и значение.

    Примечание: В этом типе могут быть использованы значения переменных или параметров шаблона. Константы, глобальные константы и глобальные переменные доступны только в типе Смешанное условие.

    Примечание: С версии 20.0.800 модуля Бизнес-процессы добавлены операторы условий не содержит и не содержится в.

  • Поле документа

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

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

    Примечание: С версии 20.0.800 модуля Бизнес-процессы добавлены операторы условий не содержит и не содержится в.

    Примечание: Для типа условия Поле документа есть полезный оператор условия [dw]Было изменено[/dw][di][/di] (только для Универсальных списков и бизнес-процессов Новостей). Если бизнес-процесс настроен на запуск при изменении документа, то становится возможно определять внутри него измененные поля. Ветка условий в таком случае будет выполняться, если в выбранном в настройках поле документа были внесены какие-то изменения.

    Как настроить условие Было изменено в универсальных списках до версии 16.0.2 (для разработчика)

  • Истина

    Ветка действий будет выполнена сразу. Это условие выполняется всегда.

  Подробнее об условиях И/ИЛИ

Повторим: При выборе И ветка условий будет исполняться при выполнении обоих условий, а при ИЛИ — любого из указанных.

Простое пояснение логики без привязки к бизнес-процессам

Посмотрим пример для конструкции Условие. Допустим у нас есть шаблон бизнес-процесса, в котором по условию определяется предоставить услугу платно или бесплатно. Услуга будет предоставлена платно если поле Комментарий
сделки не содержит слова: Благотворительность и Подарок. При составлении условия возникает вопрос что использовать: И или ИЛИ?

Условие ИЛИ Условие И
Нажмите на рисунок, чтобы увеличить Нажмите на рисунок, чтобы увеличить

В зависимости от того, что будет установлено в условии, результаты получатся разными:

Как заполнено поле Комментарий? Результат ИЛИ Результат И
Не содержит оба слова Платно Платно
Содержит одно слово из указанных Платно Бесплатно
Есть оба слова Бесплатно Бесплатно

Как видим, разница между условиями проявляется когда в комментарии содержится одно слово из двух. В случае с условием ИЛИ — для выполнения условия достаточно, чтобы не содержалось только одно из двух слов, что не соответствует нашей задаче. Аналогично происходит с любым количеством слов.

  Если несколько условий

При использовании нескольких условий и одновременно сравнений И и ИЛИ, приоритет будет у И. В виде формулы это можно представить так:

(УСЛ1 И УСЛ2) ИЛИ (УСЛ3 И УСЛ4)

Установить статус

Действие изменяет статус текущего документа на заданный.

Примечание: Действие доступно только в шаблонах [ds]бизнес-процессов со статусами[/ds][di]Бизнес-процесс со статусами — бизнес процесс, не имеющий начала и конца, в процессе работы которого происходит переход из одного состояния (статуса) в другое с разделением прав доступа.

Подробнее…[/di].

Другими словами, в шаблоне бизнес-процесса со статусами действие осуществляет перевод бизнес-процесса из текущего статуса в другой статус.

  Описание параметров

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

  Пример

Практический пример применения действия вы найдете в уроке Пример: организация обработки и доработки документа.

Цикл

Конструкция выполняет свои поддействия до тех пор, пока выполняется заданное условие.

Другими словами цикл работает до тех пор, пока условие истинно (true), иначе (false) происходит выход из цикла.

  Типы условий цикла

  • Смешанное

    Тип даёт возможность указать условие одновременно по параметрам, переменным, константам, глобальным константам, глобальным переменным, полям документа и дополнительным результатам без необходимости создавать разные ветки и дополнительные переменные. При это условия объединяются по правилу И / ИЛИ. При выборе И ветка условий будет исполняться при выполнении обоих условий, а при ИЛИ — любого из указанных.

    Примечание: В описании к конструкции Условие вы найдете более подробное пояснение об использовании И/ИЛИ.

    На скриншоте под номером 1 выбрано условие типа Поле документа, а под номером 2Глобальная переменная. Условия объединены правилом И.

  • PHP код

    В качестве условия указывается [dw]код[/dw][di]Примечание: Задавать PHP-код может только пользователь с правами администратора.[/di].

    В случае если указанный PHP код вернет значение true, то цикл продолжит работу, если возвратится false, то будет произведен выход из цикла.

  • Значение переменной

    Цикл будет продолжать свою работу, пока совпадают параметры, связанные с переменными бизнес-процесса.

    Примечание: В этом типе могут быть использованы значения переменных или параметров шаблона. Константы, глобальные константы и глобальные переменные доступны только в типе Смешанное условие.

  • Поле документа

    Цикл будет продолжать свою работу, пока совпадают параметры, связанные с полями документа.

  • Истина

    В этом случае цикл будет выполняться всегда

Внимание! Для облачной версии Битрикс24 количество итераций цикла ограничено 1000.

Внимание! НЕ используйте действие Почтовое сообщение при тестировании работы цикла. В облачной версии Битрикс24 в случае некорректной настройки процесс зациклится, почтовое сообщение отработает 1000 раз и клиенту уйдет 1000 писем. Остановить их отправку нельзя.
Сначала убедитесь, что цикл работает правильно, а потом используйте его для отправки писем.

  Дополнительно

  • Пример использования цикла для утверждения документа

Уведомления

В группе собраны все виды уведомления о событии.

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

Действие позволяет добавить событие в [dw]график отсутствия[/dw][di]В Графике отсутствий выводится вся информация об отсутствиях сотрудников на рабочем месте. Их можно проконтролировать, рассортировать все данные, например, для отдела кадров (отпуска, отгулы и больничные) и по личным календарям (командировки, работа вне офиса и т.п.).

Подробнее на helpdesk.bitrix24.ru.[/di] аналогично добавлению отсутствия в публичной части Битрикс24.

Описание Параметров

  • Пользователь — укажите пользователя, для которого будет занесено событие в график отсутствия. Обязательный параметр;
  • Название события – название события в графике отсутствия. Обязательный параметр;
  • Описание события – более подробное описание события;
  • Дата начала – дата и время начала события. Обязательный параметр;
  • Дата окончания – дата и время окончания события. Обязательный параметр;
  • Тип отсутствия – выберите тип отсутствия из списка. Обязательный параметр;
  • Состояние – укажите состояние пользователя на время отсутствия. Например: Болеет или Отдыхает. Состояние будет отражено в профиле пользователя в отсутствиях;
  • Состояние завершения – укажите состояние пользователя по завершению отсутствия. Например: Работает.

    Примечание: параметр Состояние завершения является устаревшим. Результат его заполнения не отобразится где-либо в публичном разделе.

Пример

В примере в качестве пользователя указан Автор, т.е. пользователь, запустивший бизнес-процесс. В качестве даты начала и окончания отсутствия, а также количества дней в описании, используются [dw]параметры[/dw][di]В нашем примере эти параметры заполнит пользователь при запуске бизнес-процесса:
[/di] шаблона бизнес-процесса. В поле состояния указана фраза Отсутствует на месте., которая отобразится в профиле в [dw]отсутствиях[/dw][di][/di].

Добавить новость

Действие создаёт пост на сотрудников в [dw]ленте новостей[/dw][di]Лента Новостей необходима для общения сотрудников внутри компании.

Подробнее на helpdesk.bitrix24.ru.[/di] (ранее имело название «Живая лента»).

Описание параметров

Автор – от чьего имени будет размещена запись в ленте новостей.

Внимание! Если вдруг в этом поле окажется несколько авторов, то автором записи будет тот, кто указан в поле первым.

Получатели – пользователи, группы пользователей или отделы, в чьих лентах новостей будет размещена создаваемая запись.

Тема сообщения – с какой темой будет размещено сообщение.

Текст сообщения – содержание сообщения. Для сообщения поддерживается работа с BB-кодами.

Целевой сайт – в ленте новостей какого сайта публиковать данное сообщение.

Задача

Действие позволяет создать задачу.

Примечание: Действие относится к модулю Задачи и доступно только в Битрикс24.

Описание Параметров

Настройка параметров действия аналогична созданию новой задачи в [dw]публичной части сайта[/dw][di]Задачи — это инструмент для организации работы компании. С их помощью сотрудники планируют свою работу, а руководители учитывают эффективность подчиненных и управляют проектами.

Подробнее о создании задач читайте на helpdesk.bitrix24.ru.[/di]. Но не все параметры, что есть в публичной части при создании Задачи, доступны в действии.

Рассмотрим особенности некоторых параметров:

  • Остановить процесс на время выполнения задачи – при отмеченной опции бизнес-процесс будет остановлен до тех пор, пока созданная задача не перейдет в статус Завершена;
  • Привязать к текущей сущности CRM – в задаче будет выполнена привязка к той сущности CRM, для которой запущен бизнес-процесс (Например, если бизнес-процесс запущен в определенной сделке, то выполнится привязка к этой сделке);
  • Элементы CRM – параметр позволяет выполнить привязку к другим элементам CRM. Доступен выбор конкретного элемента CRM из [dw]списка[/dw][di][/di] или подстановка через форму Вставка значения. Для привязки элементов через форму необходимо либо использовать [dw]поля документа[/dw][di][/di] вида Контакт: ID элемента CRM (есть не для всех сущностей), либо использовать следующий синтаксис:
    • Контакты: ="C_"&{{ID}}
    • Сделки: ="D_"&{{ID}}
    • Лиды: ="L_"&{{ID}}
    • Компании: ="CO_"&{{ID}}

    Как привязать элемент смарт-процесса

    Пример привязки Контакта и Компании, связанных со сделкой, с помощью префиксов

  • Load files – позволяет прикрепить файлы к задаче. По нажатии на Загрузить документы открываются доступные [dw]варианты загрузки[/dw][di][/di]: перетащить с помощью Drag’n’drop, загрузить с Битрикс24.Диск, загрузить с внешнего диска или создать новый файл. Также доступно прикрепление файлов через форму Вставка значения.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно:

  • ID задачи;
  • Дата завершения задачи;
  • Пользователь, закрывший задачу;
  • Задача удалена.

Календарь

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

Внимание: Данное действие устарело и используется только со старой версией календарей, которые не используют модуль Календарь событий.
Для текущей версии календаря следует использовать действие [dw]Событие календаря[/dw][di]Действие позволяет добавить событие в календарь (используется для модуля Календарь событий).
Подробнее…[/di].

Описание Параметров

Смысл большинства полей ясен из их названия, поэтому их описание будет пропущено.

Пользователь – указывается пользователь, для которого будет создано событие в календаре.

Контроль

Действие позволяет отправить уведомление руководителю ответственного за сущность менеджера.

Примечание: данное действие доступно для Сделок и Лидов в бизнес-процессах в CRM (Битрикс24).

Параметры действия

Текст сообщения – текст уведомления, отправляемого руководителю.

Отправить руководителю – выбирать ли непосредственного начальника ответственного менеджера, согласно структуре компании.

Дополнительные получатели – дополнительные пользователи, которым будет отправлено уведомление. Если руководителем не является непосредственный начальник, то здесь указывается кому нужно отправить уведомление.

Отправить сообщение в чат

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

Примечание: Действие доступно только в Битрикс24.

Описание параметров

  • Текст сообщения – задается текст сообщения, который будет отправлен в открытую линию клиента;
  • Скрытое сообщение – отметьте Да, чтобы сообщение было скрытым;
  • Тип вложений – укажите тип вложения, которое нужно прикрепить к сообщению. Доступны варианты: Файлы документа и Диск;
  • Вложения – выберите вложение с помощью формы Вставка значения (если был выбран тип Файлы документа) или с диска (если был выбран тип Диск).

Пример настройки: уведомление клиента о подготовке счета. В качестве вложения выбран файл c помощью формы Вставка значения из дополнительных результатов действия [dw]Создание документа CRM[/dw][di]Действие создаёт документ CRM.
Подробнее…[/di].

Почтовое сообщение

Действие позволяет отослать уведомление о событии на e-mail, указанный в настройках действия.

Описание Параметров

Смысл большинства полей ясен из их названия, поэтому их описание будет пропущено.

Тип сообщения – указывается, как будет отправлено сообщение: в виде текста или с использованием html.

Кодировка – Задается кодировка отправляемого сообщения.

Способ отправки – выбирается способ отправки сообщения:

  • Прямая отправка – сообщение будет отправлено [dw]сразу[/dw][di]Предпочтительный вариант для компаний, работающих с почтой в некрупных масштабах.[/di];
  • Отправка через систему сообщений – сообщение будет отправлено через встроенную почтовую систему. Отправка может произойти [dw]не сразу[/dw][di]Если вы активно работаете с почтой и массовыми рассылками, то этот вариант вам подойдет больше.[/di].

Сайт шаблона сообщения – указывается сайт шаблона сообщения для отправки его через встроенную почтовую систему. На разных сайтах могут быть разные [dw]шаблоны почтовых сообщений[/dw][di]Примечание: Если отправка сообщения осуществляется через систему сообщений и не проходит, то в первую очередь необходимо проверить выбранный шаблон сообщения[/di].

Вложение – позволяет добавить к письму документы, хранящиеся в полях, параметрах либо переменных типа Файл или Файл (Диск).

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

Событие календаря

Действие добавляет событие в календарь. Требуется
установленный модуль [ds]Календарь событий[/ds][di]Модуль Календарь событий позволяет просматривать прошедшие и запланированные события, отмеченные в различных календарях. Также он дает возможность управления событиями и их экспорта.

Подробнее в курсе Администратор сервиса Битрикс24 (коробочная версия).[/di].

  Описание параметров

  • Тип календаря (не обязательно) – тип календаря, в котором будет создано событие.

    Доступные типы календарей можно посмотреть в настройках модуля (Настройки > Настройки продукта > Настройки модулей > Календарь событий, закладка «Типы календарей»). По умолчанию в продукте есть следующие типы:

    • Календари компании [company_calendar];
    • Календари групп [group];
    • Календари пользователей [user].

    Если поле не заполнено, то по умолчанию событие будет создано в личном календаре пользователя (тип user).

  • ID владельца календаря (не обязательно) – числовой идентификатор ID владельца календаря. Что нужно вводить — зависит от типа календаря:
    • Если тип календаря user, то в параметре указывается ID пользователя, в личном календаре которого будет создано событие;
    • При создании события в календаре группы (тип group), в поле указывается идентификатор [dw]ID[/dw][di]Идентификатор легко и быстро посмотреть в ссылке на группу. Например, ссылка имеет
      вид https://[домен]/workgroups/group/12/. В этой ссылке число 12 — идентификатор группы.

      [/di] группы.

  • ID секции календаря (не обязательно) – впишите числовой идентификатор [dw]секции календаря[/dw][di]Под секциями календаря подразумеваются календари:

    Нажмите на рисунок, чтобы увеличить[/di].

    Внимание: Получить значение ID секции календаря можно из базы данных, из исходного кода страницы или из анализа AJAX запроса. Поэтому данное поле лучше заполнять программисту.

    Как узнать ID секции календаря из исходного кода страницы

  • Пользователь – добавьте пользователя, который будет организатором события. Обязательный параметр. В параметре может быть указан как один пользователь, так и несколько пользователей и групп. Как это сработает:
    • Если тип календаря user и владелец не указан, то для [dw]каждого[/dw][di]Например, в параметре добавлены три пользователя: Иван, Елена и Ирина. В результате выполнения действия в личном календаре каждого из этих трех пользователей будет создано событие и этот пользователь станет организатором события. Таким образом, всего создастся три события.[/di] пользователя из добавленных будет создано событие, в котором он будет организатором;
    • Если тип календаря — календарь компании / группы или пользовательский с указанием владельца, то будет создана одна встреча в календаре, организатором которой будет первый пользователь указанный в параметре.
  • Название события – укажите название создаваемого события. Обязательный параметр.
  • Описание события – укажите произвольное текстовое описание события;
  • Дата начала – установите дату и время начала события. Обязательный параметр. Формат: 15.02.2022 15:00:00;
  • Дата окончания – задайте дату и время окончания события. Если дата и время окончания не установлены, то длительность встречи по умолчанию будет равна 1 часу;
  • Часовой пояс – укажите часовой пояс, в котором устанавливаются даты.

Примечание: На текущий момент действие не позволяет:

  • привязать элемент CRM;
  • указать участников встречи;
  • получить id созданного события или ссылку на событие в дополнительных результатах.

  Примеры

 Событие в календаре пользователя

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

В результате выполнения действия в календаре пользователя с ID = 5 создастся событие, организатором которого будет пользователь, запустивший бизнес-процесс (Автор). В название события подставится названием элемента, для которого запущен БП. Функция dateadd вычислит дату и время начала и окончания события, основываясь на времени создания элемента.

 Событие в календаре группы

Для создания события в группе (которая, например, имеет адрес https://[домен]/workgroups/group/12/), помимо обязательных полей, необходимо заполнить поля следующим образом:

  • Тип календаря (не обязательно): group;
  • ID владельца календаря (не обязательно): 12 (идентификатор группы).

Совершить звонок

Действие позволяет совершить информационный звонок на указанный номер с произношением текста или проигрыванием аудиофайла.

Внимание!

  1. Действие работает только при работающей [ds]телефонии[/ds][di]Сервис Битрикс24 даёт возможность использовать телефонию для решения производственных задач. Телефония в Битрикс24 реализована с помощью технологии WebRTC позволяющей совершать/принимать звонки прямо из браузера.

    Подробнее в курсе Администратор сервиса Битрикс24 (коробочная версия)[/di].

  2. Существует ограничение на 10 неудачных попыток инфозвонка. По достижению этого числа номер, на который он выполнялся, блокируется на постоянной основе, статус по звонку перестает передаваться. В бизнес-процессе это выглядит, как зависание на стадии «Ожидает результата обзвона». Необходимо избегать зацикливаний инфозвонков в рамках бизнес-процесса.

  Описание параметров

  • Номер абонента – указывается конкретный номер или строковое поле в документе, в котором указан номер телефона.
  • Ожидать результата – Приостановить или нет действие Бизнес-процесса пока не будет завершено выполнение информационного звонка.

Смысл большинства полей ясен из их названия, поэтому их описание будет пропущено.

Результаты выполнения действия

Результаты выполнения этого действия можно использовать в других действиях с помощью формы Вставка значения. Они будут доступны сразу после добавления действия в шаблон в секции Дополнительные результаты.

Доступные результаты:

  • [dw]Результат звонка[/dw][di]Результат звонка может принимать одно из двух значений: Y если успешно и N если не успешно.[/di];
  • [dw]Результат звонка (текст)[/dw][di]Результатом звонка в виде текста является описание результата и его код, вида:
    Успешно (200).[/di];
  • Код завершения звонка.

  Документация

  • Справочник кодов и типов для телефонии

Сообщение соц.сети

Действие, отправляет уведомление модуля социальной сети.

Примечание Если пользователь не активен в течение 10 минут, то сообщение будет отправлено на его почту.

  Описание параметров

  • Отправитель сообщения – укажите пользователя, который будет отправителем сообщения. Необязательное поле. Если поле не заполнено — сообщение придет как системное, без отправителя.
  • Получатель сообщения – укажите получателей сообщения: пользователей и группы пользователей.
  • Текст сообщения – Произвольный текст сообщения. В тексте доступно форматирование с использованием тегов [ds]bb-code[/ds][di]BBCode — язык разметки, используемый для форматирования сообщений.

    Подробнее на Википедии[/di]: [url], [b], [i], [s], [u].

  Пример

В примере Автор (пользователь, запустивший бизнес-процесс) отправляет всем пользователям группы Администраторы сообщение. Применим в сообщении все, перечисленные выше, теги bb-code:

Результатом выполнения действия будет сообщение:

Уведомление пользователя

Действие позволяет отправлять сообщения на сайт /[dw]XMPP[/dw][di]Если пользователь использует XMPP, то сообщение придет ему туда, иначе оно будет отправлено на сайт в качестве уведомления (если пользователь там авторизован). Если пользователь не авторизован на сайте, то дополнительно текст сообщения будет отправлен по электронной почте.[/di]/ e-mail.

Описание Параметров

  • Отправитель уведомления – выбирается пользователь, от имени которого придет уведомление (если в опции Тип уведомления выбран вариант Персонализированное уведомление)
  • Получатель уведомления – выбирается пользователь или группа пользователей, которые получат уведомление.
  • Текст уведомления для сайта – задается текст сообщения, который будет отображаться в качестве уведомления на сайте, если пользователь не использует XMPP.

    Для текста доступно форматирование BBCode ([b], [i], [s], [u], [url]).
  • Текст уведомления для email/jabber — задается текст сообщения для e-mail/XMPP, который будет отправлен, если пользователь не авторизован на сайте. Текст сообщения можно задать как отличный от текста уведомления для сайта, так и такой же, оставив для этого поле пустым.
  • Тип уведомления – позволяет указать от кого придет сообщение:
    • Персонализированное уведомление (с аватаром) – т.е. от конкретного пользователя, указанного в Отправитель уведомления;
    • Уведомление от системы (без аватара) – отобразится как системное сообщение.

Установить текст статуса

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

  Описание параметров

  • Установить текст статуса – внесите в поле текст, вручную или с помощью формы [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса есть возможность указывать как собственный текст (заданный вручную), так и использовать различные переменные (поля документа и прочие данные, которые не задаются вручную). Для этого используется специальная форма Вставка значения.

    Подробнее…[/di], который отобразится в статусе текущего документа.

  Пример

  Где отобразится статус

Статус отображается в списке процессов (Бизнес-процессы > Мои процессы) и общем списке документов (элементов универсального списка):

А также в детальном просмотре документа:

CRM (только для Б24)

В группе собраны действия для работы с CRM. Все действия доступны только в Битрикс24.
О работе с бизнес-процессами в CRM описано в уроке Бизнес-процессы в CRM.

Выбор данных crm

Действие позволяет получить данные полей указанной сущности CRM, в зависимости от типа сущности.

Описание параметров

  • ID сущности — укажите идентификатор сущности для которой необходимо получить значения полей;
  • Тип сущности — выберите из списка для какого типа сущности CRM осуществляeтcя выборка полей: Контакты, Лиды, Сделки, Компании;
  • Выберите поля — укажите нужные поля. Список доступных полей зависит от выбранного типа сущности;
  • Версия для печати — включите эту опцию, если вы хотите получить значения выбранных полей в форме понятной человеку. Например для поля Ответственный с отключенной опцией значением будет ID пользователя, а с включенной опцией — имя пользователя.

Пример

Бизнес-процесс для сделки. В качестве ID сущности указываем [dw]ID компании[/dw][di][/di], связанной со сделкой, через форму Вставка значения. Соответственно тип сущности — Компания. Поля, значения которых требуется получить: Название компании, тип и сфера деятельности.

Таким образом, при запуске бизнес-процесса для конкретной сделки, это действие получит значения указанных нами полей для той компании, которая связана с этой сделкой.

В результате выполнения действия в секции Дополнительные результаты формы Вставка значения станут доступны значения полей выбранной сущности. Результат для примера выше:

Полученные значения доступны для использования в других действиях бизнес-процессов.

Добавить клиента в рекламную аудиторию Google AdWords

Добавляет обезличенные данные клиентов (e-mail и телефонные номера) в рекламную аудиторию Google AdWords.

Внимание! Роботы рекламы не настраиваются через дизайнер бизнес-процессов. Они настраиваются отдельно в роботах CRM. Роботов можно открыть в канбане или списке элементов CRM. Подробнее о роботах описано в статьях поддержки Битрикс24 на helpdesk.bitrix24.ru.

Таким образом в дизайнере бизнес-процессов вы не увидите параметры в этом действии, только сообщение о необходимости выполнения настроек в Роботах. В роботах же отобразится такое окно настроек:

Настройка рекламы аналогична такой же в интерфейсе Битрикс24: Создание рассылок.

Добавить клиента в рекламную аудиторию Вконтакте

Добавляет обезличенные данные клиентов (e-mail и телефонные номера) в рекламную аудиторию Вконтакте.

Внимание! Роботы рекламы не настраиваются через дизайнер бизнес-процессов. Они настраиваются отдельно в роботах CRM. Роботов можно открыть в канбане или списке элементов CRM. Подробнее о роботах описано в статьях поддержки Битрикс24 на helpdesk.bitrix24.ru.

Таким образом в дизайнере бизнес-процессов вы не увидите параметры в этом действии, только сообщение о необходимости выполнения настроек в Роботах. В роботах же отобразится такое окно настроек:

Настройка рекламы аналогична такой же в интерфейсе Битрикс24: Создание рассылок.

Добавить клиента в список исключений

Действие вносит клиента в список исключений, чтобы при повторном обращении элемент CRM с ним не создавался. Подробнее о списке исключений на helpdesk.bitrix24.ru.

Действие не имеет настроек, кроме стандартного заголовка.

Добавить комментарий в элемент

Действие добавляет комментарий от сотрудника в таймлайн элемента CRM.

  Описание параметров

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

    Подробнее…[/di] и форматирование [ds]BBCode[/ds][di]BBCode — язык разметки, используемый для форматирования сообщений.

    Подробнее на Википедии[/di] ([b], [i], [s], [u], [url], [img], [color], [size], [list] и [table]).

  • Автор — укажите от чьего имени будет оставлен комментарий.

  Пример

Добавление комментария в сделке о важности клиента и быстрой подготовке документов. Используется форматирование bbcode. В качестве автора комментария выбран Ответственный (форма Вставка значения, Поля документа > Ответственный.

В результате форматированный комментарий добавляется в сделку:

Нажмите на рисунок, чтобы увеличить

Добавить товар

  Действие добавляет нужные [ds]товары[/ds][di]В карточках лидов, сделок и предложений товары находятся в отдельной вкладке.

Подробнее на helpdesk.bitrix24.ru[/di] в элемент.

Примечание: Действие доступно только в бизнес-процессах Сделок и Счетов (с версии CRM 21.1800.0).

  Описание параметров

  • ID товара — укажите ID товара. Доступен выбор из [dw]списка товаров[/dw][di][/di]. При выборе товара из списка товаров, в поле подставится ID в виде числа;
  • Цена — цена товарной позиции;
  • Количество — количество экземпляров товарной позиции;
  • Скидка, % — величина скидки в процентах, которую нужно применить к указанной товарной позиции.

Для всех параметров доступна подстановка через форму [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения.
Подробнее…[/di].

  Пример настройки:

Забронировать ресурс

Действие бронирует ресурс.

Описание параметров

  • Поле — выберите поле из существующих полей типа [dw]бронирование ресурсов[/dw][di]Для лидов и сделок можно создать поле с типом Бронирование ресурсов.

    Подробнее на helpdesk.bitrix24.ru.[/di];

  • Услуга — укажите услугу с помощью формы Вставка значения;
  • Дата начала — установите время начала бронирования (можно указать конкретную дату и время из календаря или с помощью формы Вставка значения);
  • Длительность — выберите длительность бронирования ресурса из списка;
  • Сотрудники — укажите ответственного сотрудника.

Пример настройки: выбрано поле Подготовка сопроводительных документов и в качестве услуги выбрано направление сделки. Дата начала установлена с помощью [dw]оператора dateadd[/dw][di]Посмотрим на простой пример: прибавим к текущей дате точное количество дней.
Подробнее…[/di] калькулятора выражений и выбрана длительность бронивания — 3 дня. Сотрудник — администратор магазина.

Завершить задачу

  Действие позволяет завершить задачи созданные на определенной стадии сделки.

Действие доступно в шаблонах бизнес-процессов Лидов, Сделок, Коммерческих предложений и Смарт-процессов.

Важно: Действие не завершает задачи, созданные [dw]вручную[/dw][di]Например, созданные из карточки сделки самостоятельно.[/di]. Будут завершены задачи, созданные роботами или бизнес-процессами.

  Описание параметров

  • Завершать задачи созданные на стадии — выберите стадии, задачи которых нужно завершить. В списке стадий доступен [dw]множественный выбор[/dw][di]Зажмите Ctrl + клик левой кнопкой мыши.[/di], а также вставка через форму Вставка значения.

  Пример настройки:

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

Запись события в crm

Действие добавляет запись в историю элемента, чтобы руководитель мог следить за процессом работы с клиентом. Запись добавляется в журнал во вкладке История [dw]карточки CRM[/dw][di]На вкладке История расположен журнал доступа с подробной информацией о том, кто, когда и как изменял текущий элемент.

Подробнее на helpdesk.bitrix24.ru.[/di].

Действие выполняется только в контексте бизнес-процессов, работающих в CRM.

Описание параметров

  • Тип события — выберите из списка тип события: Информация, Телефонный звонок или Отправлен email;
  • Текст сообщения — в поле укажите текст, который отобразится в Описании записи в журнале;
  • Автор — укажите автора записи.

Пример

Пусть в примере действие используется в шаблоне БП для сделок. Укажем тип события и текст, а в качестве автора записи — ответственного за сделку, в которой запущен БП (через форму [dw]Вставка значения[/dw][di][/di]):

При запуске БП в сделке, во вкладке История в журнале добавится запись:

Нажмите на рисунок, чтобы увеличить

Запланировать дело

Действие cоздаёт [ds]дело[/ds][di]Планируйте любое дело, которое связано с клиентом в карточке элемента.

Подробнее на helpdesk.bitrix24.ru.[/di]. Это может быть встреча, звонок или отправка документов. Созданное задание привязано к элементу, в котором запущен бизнес-процесс, и отображается в таймлайне элемента и в [ds]представлении «Дела»[/ds][di]В представлении «Дела» сделки автоматически распределяются на стадии в зависимости от срока дел внутри элемента.

Подробнее на helpdesk.bitrix24.ru.[/di]. Действие доступно в бизнес-процессах CRM для Лидов, Сделок, Контактов и Компаний.

Примечание: ранее применялись отдельные действия для разных типов дел (Задание, Запланировать встречу и Запланировать звонок). Теперь дело создаётся одним действием Запланировать дело.

  Описание параметров

  • Что нужно сделать – укажите подробную информацию о деле;
  • Дата – задайте крайний срок выполнения дела (дату и время);
  • Ответственный – укажите пользователя, которому требуется поставить задание. Например, ответственного за Сделку / Лид;
  • Автоматически завершать дело при переходе в другой статус – при выборе данной опции дело будет считаться завершенным, как только статус Лида/Сделки изменится.

В результате выполнения действия в секции Дополнительные результаты формы Вставка значения станет доступен ID созданного дела.

  Пример

Например, пусть будет создано дело «связаться с клиентом» с крайним сроком через 2 дня от текущей даты.

Созданное задание в списке дел:

  Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты.

Доступно:

  • ID созданного дела.

Изменить компанию

Действие изменяет данные в полях связанной компании.

Описание параметров

  • Добавить условие — по нажатии добавляется новая строка, в которой необходимо выбрать существующее поле из списка и указать его новое значение;
  • Добавить поле — открывается форма для добавления нового поля. После создания поля укажите его значение;
  • Дополнить множественные поля вместо перезаписи — если поле является множественным, выберите Да для дополнения списка вариантов новым значением. Иначе старое значение будет перезаписано;
  • Изменять от имени — укажите от чьего имени будет внесено изменение.

Пример настройки: изменение поля Сфера деятельности компании, связанной со сделкой, в которой запущен бизнес-процесс. Новое значение задается с помощью [dw]параметра[/dw][di]Параметры используются для явного указания каких-либо значений во время
исполнения бизнес-процесса. Подробнее…

В примере использовался такой параметр:
[/di] при запуске бизнес-процесса.

Изменить контакт

Действие изменяет данные в полях [dw]связанного[/dw][di]Например, контакта привязанного к сделке, в которой запущен бизнес-процесс.[/di] контакта.

Описание параметров

  • Добавить условие — по нажатии добавляется новая строка, в которой необходимо выбрать существующее поле контакта из списка и указать его новое значение. Таким образом можно изменить все необходимые поля в одном действии;
  • Добавить поле — открывается форма для добавления нового поля. После создания поля укажите его значение;
  • Дополнить множественные поля вместо перезаписи — если поле является множественным, выберите Да для дополнения списка вариантов новым значением. Иначе старое значение будет перезаписано;
  • Изменять от имени — укажите от чьего имени будет внесено изменение.

Пример настройки: изменение поля Ответственный контакта, связанного со сделкой, в которой запущен бизнес-процесс.

Изменить наблюдателей

Действие изменяет или добавляет наблюдателей в карточку элемента.

Описание параметров

  • Действие над наблюдателями — выберите из списка, какое действие необходимо выполнить: добавить, заменить или удалить наблюдателя;
  • Наблюдатели — укажите пользователя или группу пользователей, попадающих под действие.

Пример настройки: добавление в качестве [dw]наблюдателя в сделке[/dw][di]Битрикс24 позволяет добавить наблюдателей в лиды и сделки. Наблюдатели могут просматривать элемент, а также участвовать в обсуждении.

Подробнее на helpdesk.bitrix24.ru.[/di] пользователя Администратор магазина.

Изменить ответственного

Действие изменяет ответственного в элементе, для которого был запущен бизнес-процесс.

Примечание: Действие аналогично [dw]cмене ответственного[/dw][di]В CRM ответственный сотрудник может быть у лидов, сделок, контактов, компаний, предложений, счетов и CRM-форм.
Сменить ответственного можно у конкретного элемента или сразу у нескольких, такой вариант называется массовой сменой ответственного. Он доступен для всех элементов, кроме CRM-формы.

Подробнее читайте на helpdesk.bitrix24.ru.[/di] в публичной части CRM.

Параметры действия

Все перечисленные параметры являются обязательными для заполнения.

  • Новый ответственный — указывается новый ответственный за сущность (т.е. лид, сделку, контакт и т.д.). В параметре могут быть указаны пользователи или группы пользователей (в том числе совместно), из которых будет сформирован общий список и выбран ответственный. Алгоритм выбора ответственного зависит от параметров Как выбирать и Пропускать отсутствующих;
  • Изменить от имени — указывается от имени кого будет назначен новый ответственный (напр., от имени начальника отдела или автора, запустившего бизнес-процесс);
  • Как выбирать — каким образом выбирать ответственного из списка пользователей:
    • Случайно — пользователь выбирается из списка случайным образом;
    • Конкретно — всегда выбирается первый пользователь из списка;
    • Последовательно — пользователь выбирается из списка последовательно, т.е. при каждом новом запуске процесса будет выбран следующий по порядку в списке пользователь.
  • Пропускать отсутствующих — если в параметре указано Да, то при выборе ответственного будут пропущены отсутствующие пользователи.

Примечание: Параметры Как выбирать и Пропускать отсутствующих доступны с версии 21.400.0 модуля Бизнес-процессы.

Пример

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

  1. Всегда в качестве ответственного будет выбираться пользователь Елена;
  2. В случае отсутствия Елены установится следующий по порядку пользователь Игорь;
  3. При отсутствии указанных двух пользователей, выбор ответственного перейдет к пользователям группы Администраторы магазина.

Изменить привязанный элемент

  Действие позволяет изменить привязанный элемент CRM. Доступно только в бизнес-процессах смарт-процессов.

  Описание параметров

  • Тип действия — выберите какое действие совершить с элементом: Удалить или Заменить;
  • Связь с — выберите сущность CRM, которую нужно изменить. Список зависит от настроек смарт-процесса, а именно какие [dw]элементы CRM[/dw][di][/di] могут быть привязаны к смарт-процессам;
  • ID элемента — укажите вручную или с помощью формы Вставка значения идентификатор ID элемента:
    • Если выбран тип действия Заменить, в параметре указывается ID элемента, который нужно привязать к элементу смарт-процесса;
    • Если выбран тип действия Удалить, параметр можно оставить пустым. В результате выполнения действия будет просто удалена существующая привязка.

  Пример

В примере в качестве ID элемента указан ID сделки, созданной ранее действием [ds]Создание новой сделки[/ds][di]Действие аналогично действиям в публичной части CRM по созданию новой сделки.

Подробнее…[/di], с помощью формы [dw]Вставка значения[/dw][di]ID созданной сделки хранится в дополнительных результатах.[/di].

Изменить реквизиты

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

Описание параметров

  • Тип сущности — выберите из списка тип сущности: контакт или компания;
  • Шаблоны — укажите [dw]шаблон реквизитов[/dw][di]Шаблон реквизитов — это подготовленный набор полей, который вы можете вставить в документ одним кликом.

    Подробнее читайте на helpdesk.bitrix24.ru.[/di];

  • Тип адреса — укажите тип адреса из реквизитов;
  • Поле из реквизитов — выберите поле, значение которого необходимо изменить. В поле справа укажите новое значение. С помощью кнопки Добавить условие добавляйте столько полей для изменения, сколько требуется.

    Внимание: Указать значение можно только вручную. Подстановка через форму Вставка значения для этих полей не предусмотрена.

Пример настройки: изменение полей Ген. директор и Полное наименование организации в реквизитах компании, связанной со сделкой, в которой запущен бизнес-процесс.

Изменить элемент смарт-процесса

  Действие позволяет изменить элемент произвольного смарт-процесса.

Примечание: О работе со смарт-процессами в Битрикс24 читайте в статье helpdesk.bitrix24.ru

  Описание параметров

  • Тип элемента смарт-процесса — выберите тип смарт-процесса из списка. В списке представлены созданные в системе смарт-процессы;
  • Фильтр по полям — укажите поля и их значения, для выбора элемента, который требуется изменить. В фильтре доступна [dw]подстановка значения[/dw][di]Для подстановки значения нажмите на три точки справа от поля ввода:

    [/di]. Если по результатам настройки фильтра будут подходить несколько элементов, то изменения будут внесены только для первого найденного элемента (первого в списке по ID).

    Изменить информацию для нескольких элементов возможно с помощью [ds]итератора[/ds][di]Конструкция выполняет перебор значений во множественных переменных. С помощью этой конструкции возможно создать цикл действий, каждая итерация которого выполнится с очередным значением множественной переменной (константы, параметра, поля документа).

    Подробнее…[/di], если список этих элементов сохранен в множественной переменной / поле. В этом случае в фильтре нужно указать ID равным Значению итератора (из дополнительных результатов);

  • Выбрать поле — по нажатии на ссылку добавляется строка с выборам поля. Выберите поле и укажите его новое значение. Доступно использование формы [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения.
    Подробнее…[/di].

  Пример настройки:

Копировать или Переместить товары

  Действие копирует или переносит [ds]товары[/ds][di]В карточках лидов, сделок и предложений товары находятся в отдельной вкладке.

Подробнее на helpdesk.bitrix24.ru[/di] из текущего элемента в указанный.

Примечание: Действие доступно только в бизнес-процессах Сделок и Счетов (с версии CRM 21.1800.0).

  Описание параметров

  • Цель — выберите из списка тип сущности CRM;
  • ID цели — укажите ID сущности, в которую будут скопированы/перемещены товарные позиции;
  • Действие — выберите необходимое действие:
    • Копировать — товарные позиции будут скопированы в указанную сущность, т.е. сохранены в текущем документе (в котором запущен бизнес-процесс);
    • Переместить — товарные позиции будут перемещены в указанную сущность, т.е. удалены в текущем документе (в котором запущен бизнес-процесс).

  Пример

В примере в качестве ID цели указан ID конкретной сделки. ID можно указать и через форму Вставка значения. Например, это может быть ID сделки созданной ранее действием [ds]Создание новой сделки[/ds][di]Действие аналогично действиям в публичной части CRM по созданию новой сделки.

Подробнее…[/di] (хранится в дополнительных результатах).

Копировать сделку

Действие создаёт сделку по данным из текущей сделки.

Описание параметров

  • Название сделки — укажите название новой сделки. По умолчанию это название текущей сделки =Document:TITLE с добавлением текста (Копия);
  • Перенести в направление — выберите, в какое из существующих направлений перенести создаваемую сделку;
  • Начальная стадия — укажите начальную стадию сделки;
  • Ответственный — назначьте пользователя, ответственного за сделку.

Пример настройки:

В результате выполнения действия в секции Дополнительные результаты формы Вставка значения станет доступен ID новой сделки:

Копировать элемент смарт-процесса

  Действие создаёт элемент смарт-процесса по данным из текущего элемента смарт-процесса. Доступно только в бизнес-процессах смарт-процессов.

Примечание: О работе со смарт-процессами в Битрикс24 читайте в статье helpdesk.bitrix24.ru

  Описание параметров

  Пример настройки:

В секции Дополнительные результаты формы Вставка значения станет доступен ID нового смарт-процесса.

Ожидание

Действие включает ожидание указанного промежутка времени или любой активности клиента.

Примечание: Действие аналогично ожиданию в карточке CRM в публичной части (форма создания дел и комментариев, кнопка Ждать).

Описание параметров

  • Тип ожидания — выберите из списка тип ожидания:
    • Ждать указанное количество дней
    • Ждать указанное количество дней до выбранной даты
  • Интервал, дней — укажите интервал ожидания в днях;
  • До даты — выберите из списка доступных дат ту дату, до которой будет установлено ожидание (если ранее не произойдет [dw]активности клиента[/dw][di]Допустим, Вы выбрали опцию Ждать 2 дня. Т.е. Битрикс24 установит для элемента CRM (например, Сделки) ожидание на 2 дня. Но ожидание автоматически прекратится раньше срока, если Клиент совершит какую-нибудь активность — к примеру, напишет письмо или позвонит.[/di]);
  • Комментарий или инструкция — необязательное текстовое поле для комментария или инструкции. При необходимости, заполните его вручную или с помощью формы Вставка значения.

Пример настройки:

Ожидание стадии сделки

Действие приостанавливает выполнение бизнес-процесса пока не будет достигнута указанная стадия сделки.

Описание параметров

ID сделки — идентификатор сделки. Для удобства можно использовать Форму вставки значения.

Стадия — выберите одну или несколько стадий для ожидания. Бизнес-процесс будет ожидать перехода сделки в выбранные стадии либо финальную стадию.

Важно: Рекомендуется использовать это действие только для тех шаблонов бизнес-процессов, которые запускаются при

добавлении (создании)

. При использовании действия «Ожидание стадии сделки» на изменение документа бизнес-процесс запускается при каждом изменении и останавливается в ожидании сделки. Таким образом создается несколько экземпляров БП (по количеству изменений), которые одновременно выполняются при достижении нужной стадии.

Пример заполнения: указан ID сделки, в которой запущен бизнес-процесс, через форму Вставка значения и выбрана стадия из списка стадий.

Ожидание статуса лида

Действие приостанавливает выполнение бизнес-процесса, пока не будет достигнут указанный статус [ds]Лида[/ds][di]Лид – это один из основных элементов CRM. Лидом мы называем потенциального клиента, у которого ещё не сформирована окончательная потребность в ваших товарах или услугах.

Подробнее на helpdesk.bitrix24.ru.[/di].

  Описание параметров

  • ID лида – идентификатор лида. Для удобства можно использовать форму Вставка значения.
  • Статус – укажите статус, по достижении которого процесс продолжит свое выполнение. Бизнес-процесс будет ожидать перехода лида в выбранный статус либо финальный статус.

Важно: Рекомендуется использовать это действие только для тех шаблонов бизнес-процессов, которые запускаются при

добавлении (создании)

. При использовании действия «Ожидание статуса лида» на изменение документа бизнес-процесс запускается при каждом изменении и останавливается в ожидании статуса лида. Таким образом создается несколько экземпляров БП (по количеству изменений), которые одновременно выполняются при достижении нужной стадии.

  Пример

Пример заполнения: через форму Вставка значения указан ID лида, для которого запущен бизнес-процесс, и выбран статус из списка статусов.

Отменить бронирование

Действие удаляет бронирование.

Описание параметров

  • Поле — выберите поле из существующих полей типа [dw]бронирование ресурсов[/dw][di]Для лидов и сделок можно создать поле с типом Бронирование ресурсов.

    Подробнее на helpdesk.bitrix24.ru.[/di].

Пример настройки:

Отправить SMS

[dw]Действие[/dw][di]Действие доступно для Лидов и Сделок.[/di] позволяет отправить SMS клиенту.

Параметры действия

Текст сообщения — что будет отправлено клиенту.

Провайдер — с помощью какого провайдера нужно отправить сообщение. Провайдера необходимо установить через Маркетплейс.

Отправить письмо клиенту

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

Примечание: Действие аналогично отправке писем из CRM в публичной части CRM Битрикс24.

Параметры действия

  • От кого — укажите отправителя письма. Отправитель выбирается автоматически: почтовый адрес берется по ответственному из списка доступных для отправки адресов (первый по списку). Также можно добавить [dw]дополнительного отправителя[/dw][di]На указанный почтовый адрес придет проверочное письмо с кодом проверки.
    После подтверждения владения этим почтовым адресом, вы сможете выбирать
    в поле От кого этот адрес.

    [/di] (почтовый ящик, который не подключен к Битрикс24).

  • Тема — внесите тему письма;
  • Текст письма — напишите текст письма для клиента. Способ форматирования текста зависит от следующего параметра Тип текста (html или bbcode);
  • Тип текста — выберите тип текста, на основании которого будет выполнено форматирование текста письма. Доступны BBCODE и HTML;
  • Тип адреса клиента — выберите из списка [dw]тип адреса[/dw][di]Тип e-mail адреса указан в карточке клиента (Контакта, Компании или Лида) для поля E-mail:

    [/di] клиента:

    • Автоматический выбор;
    • Рабочий e-mail;
    • Частный e-mail;
    • E-mail для рассылок;
    • Другой e-mail.

    Если адрес выбранного типа отсутствует в карточке (не заполнен), действие не сработает (письмо не будет отправлено).
    Если выбран Автоматический выбор адреса, то письмо будет отправлено на первый или последний адрес (см. следующий параметр), указанный в карточке клиента.

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

  • Использовать адрес — выберите на какой адрес, первый добавленный или последний добавленный, отправить письмо. Параметр нужен, если в параметре Тип адреса клиента указан Автоматический выбор;
  • Тип вложений — укажите тип вложения. От типа меняется вид следующего поля Вложения;
  • Вложения
    • Файлы документа — укажите файл с помощью формы Вставка-значения. С помощью кнопки Добавить можно добавлять необходимое количество файлов;
    • Диск — выберите файл с диска.
  • Отслеживать переходы по ссылкам — опция включает отслеживание переходов клиента по ссылкам в письме.

Пример настройки:

Получить информацию о привязанном элементе

  Действие получает значения полей в привязанном элементе для передачи в другие действия. Доступно только в бизнес-процессах смарт-процессов.

Примечание: О работе со смарт-процессами в Битрикс24 читайте в статье helpdesk.bitrix24.ru

  Описание параметров

  • Связь с — выберите сущность CRM, по которой нужно получить информацию. Список зависит от настроек смарт-процесса, а именно какие [dw]элементы CRM[/dw][di][/di] могут быть привязаны к смарт-процессам.

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

Получить информацию о реквизитах

Действие получает информацию о реквизитах контакта или компании для передачи в другие действия.

Если это бизнес-процесс Контакта / Компании — действие получит информацию о реквизитах той сущности, в которой запущен БП. Если же это бизнес-процесс Сделки / Лида — то будут получены реквизиты связанного контакта / компании со сделкой / лидом.

Описание параметров

  • Тип сущности — выберите тип сущности: контакт или компания, по которому необходимо получить информацию о реквизитах. Этот параметр НЕ отображается, если действие используется в бизнес-процессе Контакта или Компании;
  • Шаблоны — укажите [dw]шаблон реквизитов[/dw][di]Шаблон реквизитов — это подготовленный набор полей, который вы можете вставить в документ одним кликом.

    Подробнее читайте на helpdesk.bitrix24.ru.[/di];

  • Тип адреса — укажите тип адреса из реквизитов.

Например: шаблон бизнес-процесса для Сделки. С такой настройкой параметров, при запуске БП в сделке, будут получены реквизиты компании, связанной с этой сделкой.

Полученные данные о реквизитах будут доступны для выбора в секции Дополнительные результаты формы Вставка значения в других действиях:

Получить информацию о товаре

Действие позволяет получить данные о товаре для передачи в другие действия.

Примечание: Действие доступно только в бизнес-процессах Сделок и Счетов (с версии CRM 21.1800.0).

  Описание действия

  Описание параметров

  • ID товарной позиции — укажите идентификатор ID товарной позиции, по которой нужно получить информацию.

  Пример настройки:

Поля выбранной товарной позиции с указанным ID станут доступны в секции Дополнительные результаты формы Вставка значения:

  • ID товара;
  • Название товара;
  • Цена;
  • Количество;
  • Ед. измерения;
  • Скидка;
  • Сумма скидки;
  • Налог;
  • Включен в цену;
  • Сумма;
  • Сумма (текст).

  Пример работы с действием

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

Подробнее…[/di], секция Поля документа, поле [dw]Товарные позиции[/dw][di][/di]. Это поле содержит в себе идентификаторы всех товарных позиций в документе.

Чаще всего в документе (сделке, счете) привязано несколько товаров. Действие Информация о товарной позиции предоставляет информацию только по одному товару, поэтому при попытке использования поля Товарные позиции в этом действии, вы получите данные только об одном товаре (первом в списке).

Как же получить данные по всем товарам? Поле «Товарные позиции» — множественное, а значит с ним получится работать с помощью [ds]Итератора[/ds][di]Конструкция выполняет перебор значений во множественных переменных. С помощью этой конструкции возможно создать цикл действий, каждая итерация которого выполнится с очередным значением множественной переменной (константы, параметра, поля документа).

Подробнее…[/di].

Посмотрим практический пример простого шаблона БП в котором мы получим информацию по всем товарным позициям в Сделке и используем её при создании задачи ответственному. Так будет выглядеть наш шаблон:

Действия, которые использованы в практическом примере: [ds]Изменение документа[/ds][di]Действие изменяет указанные поля документа.
Подробнее…[/di], Итератор, Информация о товарной позиции, [ds]Задача[/ds][di]Действие позволяет создать задачу.
Подробнее…[/di]. Также в Сделках создано [ds]пользовательское[/ds][di]Пользовательские поля — это поля, которые создают пользователи CRM, то есть сотрудники. Такие поля доступны во всех элементах и по своим возможностям полностью повторяют системные — отображаются в карточке, по ним можно фильтровать элементы, с ними взаимодействуют роботы.

Подробнее на helpdesk.bitrix24.ru.[/di] множественное поле типа Строка с названием Информация о товарах, в которое мы будем записывать полученную о товарах информацию.

 Шаблон бизнес-процесса из примера можно скачать по ссылке. Не забудьте создать пользовательское поле в сделке и заменить нужные данные на свои после импорта, чтобы шаблон работал.

Опишем как отработает такой бизнес-процесс:

Результатом запуска БП в сделке с двумя товарами будет новая задача с информацией о товарах в описании:

Нажмите на рисунок, чтобы увеличить

, где

  1. Информация о товарах, которую мы записали в поле сделки Информация о товарах;
  2. Информация из поля документа Товарные позиции (текст).

Получить информацию об оплате

  Действие позволяет получить данные о статусе оплаты заказа для передачи в другие действия.

Примечание: Действие доступно только в бизнес-процессах Сделок и работает для Заказов (включенном режиме [ds]работы с заказами[/ds][di]Подробнее на helpdesk.bitrix24.ru.

[/di]).

  Описание параметров

  • ID заказа — укажите идентификатор ID заказа, по которому нужно получить данные об оплате.

  Пример настройки:

В параметре указан ID заказа [dw]текущей сделки[/dw][di][/di] (в которой запущен бизнес-процесс).

В результате в секции Дополнительные результаты формы Вставка значения станут доступны:

  • ID оплаты;
  • Номер оплаты.

Получить информацию об элементе CRM

  Действие позволяет прочитать данные произвольного элемента CRM для передачи в другие действия.

Примечание: До версии модуля CRM 21.1800.0 действие имело название Чтение элемента смарт-процесса и позволяло прочитать данные

только

элемента смарт-процесса.
Если вы ранее уже использовали действие со старым названием в шаблоне БП, то шаблон продолжит исправно работать, а действие будет с пользовательским названием.

  Описание параметров

  • Тип элемента CRM — выберите тип элемента CRM из списка. Доступны все типы элементов, кроме [ds]старых счетов[/ds][di]В CRM есть две версии счетов: новая, которую мы выпустили в конце 2021 года, и старая, которой уже несколько лет. Основная разница в том, что новые счета сделаны на базе смарт-процессов.

    Подробнее на helpdesk.bitrix24.ru.[/di]:

    • Контакт
    • Компания
    • Лид
    • Сделка
    • Предложение
    • Счет
    • Смарт-процесс (каждый смарт-процесс представлен отдельной строкой в списке)
  • Фильтр по полям — укажите поля и их значения для отбора элемента, данные которого требуется прочитать. В фильтре доступна [dw]подстановка значения[/dw][di]Для подстановки значения нажмите на три точки справа от поля ввода:

    [/di]. Если по результатам настройки фильтра будут найдены несколько подходящих элементов, то данные будут прочтены

    только для первого найденного элемента (первого в списке по ID).

    Прочитать информацию для нескольких элементов возможно с помощью [ds]итератора[/ds][di]Конструкция выполняет перебор значений во множественных переменных. С помощью этой конструкции возможно создать цикл действий, каждая итерация которого выполнится с очередным значением множественной переменной (константы, параметра, поля документа).

    Подробнее…[/di], если список этих элементов сохранен в множественной переменной / поле. В этом случае в фильтре нужно указать ID равным Значению итератора (из дополнительных результатов);

  • Выберите поля — выберите поля элемента CRM, значения которых необходимо получить. Набор доступных полей зависит от типа элемента. Для выбора нескольких полей зажмите клавишу Ctrl на клавиатуре.

  Пример настройки:

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

Провести оплату

  Действие позволяет провести оплату по заказу.

Примечание: Действие доступно только в бизнес-процессах Сделок и работает для Заказов (включенном режиме [ds]работы с заказами[/ds][di]Подробнее на helpdesk.bitrix24.ru.

[/di]).

  Описание параметров

  • ID заказа — укажите идентификатор ID заказа, по которому нужно провести оплату.

  Пример настройки:

В параметре указан ID заказа [dw]текущей сделки[/dw][di][/di] (в которой запущен бизнес-процесс).

Сменить воронку

Действие переносит элемент в указанную воронку и останавливает все текущие незавершенные роботы и бизнес-процессы. Подробнее о воронках продаж читайте на helpdesk.bitrix24.ru.

Примечание: ранее действие имело название Сменить направление

Описание параметров

  • Воронка — выберите воронку продаж из списка или укажите её через форму Вставка значения;
  • Стадия — выберите стадию из списка или укажите её через форму Вставка значения. В списке отображены стадии выбранной воронки.

Пример:

Сменить стадию

  Действие переносит элемент на указанную стадию в бизнес-процессах Сделок с завершением бизнес-процесса.

  Описание параметров

  • Изменить на стадию — выберите из списка стадию, на которую нужно перенести элемент. В списке доступны стадии всех воронок продаж;

    В шаблонах бизнес-процессов для Лидов, Коммерческих предложений, Счетов и Смарт-процессов параметр действия имеет название Изменить на статус.

  • Изменить от имени — укажите пользователя, от имени которого выполнится смена стадии / статуса.

Для обоих параметров доступна подстановка значения через форму [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения.
Подробнее…[/di].

После выполнения действия, бизнес-процесс сразу завершается. При этом в журнале в текущем статусе БП отобразится запись, что бизнес-процесс Завершен по смене статуса:

  Пример настройки:

Смена стадии Сделки:

Смена статуса Лида. Обратите внимание на другое название параметра в бизнес-процессе Лидов:

Создание нового контакта

Действие создаёт новый Контакт.

Примечание: Этот урок о создании Контакта в CRM с помощью действия бизнес-процесса. О том как создать Контакт обычным способом вы найдете в статьях поддержки Битрикс24 на helpdesk.bitrix24.ru.

  Описание параметров

Список параметров полностью состоит из полей [ds]карточки[/ds][di]Карточка CRM — полезный инструмент для повседневной работы менеджеров. Вы сэкономите много время сотрудникам и сделаете их работу намного приятнее, если настроите для них карточку CRM.

Подробнее на helpdesk.bitrix24.ru.[/di] Контакта, таких как Имя, Фамилия, Обращение, Дата Рождения и т.д. Других особенных параметров действие не имеет.

  Пример

Ниже пример заполнения параметров действия. В качестве Имени и Фамилии контакта подставляются значения из переменных:

  Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты.

Доступно:

  • ID созданного контакта.

  Дополнительно

Также новый Контакт можно создать с помощью более универсального действия Создать элемент CRM.

Создание нового лида

Действие создаёт новый Лид.

Примечание: Этот урок о создании лида в CRM с помощью действия бизнес-процесса. О том как создать лид обычным способом вы найдете в статьях поддержки Битрикс24 на helpdesk.bitrix24.ru.

  Описание параметров

Список параметров полностью состоит из полей [ds]карточки[/ds][di]Карточка CRM — полезный инструмент для повседневной работы менеджеров. Вы сэкономите много время сотрудникам и сделаете их работу намного приятнее, если настроите для них карточку CRM.

Подробнее на helpdesk.bitrix24.ru.[/di] Лида, таких как Название лида, Статус, Ответственный и т.д. Других особенных параметров действие не имеет.

  Пример

Ниже пример заполнения параметров действия. В качестве Названия лида подставляется значение из параметра шаблона:

  Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты.

Доступно:

  • ID созданного лида.

  Дополнительно

Также новый Лид можно создать с помощью более универсального действия Создать элемент CRM.

Создание новой компании

Действие создаёт новую Компанию.

Примечание: Этот урок о создании компании в CRM с помощью действия бизнес-процесса. О том как создать компанию обычным способом вы найдете в статьях поддержки Битрикс24 на helpdesk.bitrix24.ru.

  Описание параметров

Список параметров полностью состоит из полей [ds]карточки[/ds][di]Карточка CRM — полезный инструмент для повседневной работы менеджеров. Вы сэкономите много время сотрудникам и сделаете их работу намного приятнее, если настроите для них карточку CRM.

Подробнее на helpdesk.bitrix24.ru.[/di] Компании, таких как Название компании, Логотип, Тип компании и т.д. Других особенных параметров действие не имеет.

  Пример

Ниже пример заполнения параметров действия. В качестве Названия компании подставляется значение из параметра шаблона:

  Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты.

Доступно:

  • ID созданной компании.

  Дополнительно

Также новую Компанию можно создать с помощью более универсального действия Создать элемент CRM.

Создание новой сделки

Действие создаёт новую Сделку.

Примечание: Этот урок о создании сделки в CRM с помощью действия бизнес-процесса. О том как создать сделку обычным способом вы найдете в статьях поддержки Битрикс24 на helpdesk.bitrix24.ru.

  Описание параметров

Список параметров полностью состоит из полей [ds]карточки[/ds][di]Карточка CRM — полезный инструмент для повседневной работы менеджеров. Вы сэкономите много время сотрудникам и сделаете их работу намного приятнее, если настроите для них карточку CRM.

Подробнее на helpdesk.bitrix24.ru.[/di] Сделки, таких как Название, Сумма, Ответственный и т.д. Других особенных параметров действие не имеет.

  Пример

Ниже пример заполнения параметров действия. В название сделки подставляется значение названия компании, а в сумму — значение параметра шаблона:

  Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты.

Доступно:

  • ID созданной сделки.

  Дополнительно

Также новую Сделку можно создать с помощью более универсального действия Создать элемент CRM.

Создать документ

Действие создаёт документ на основании шаблона. Например, счет или коммерческое предложение.

  Описание параметров

  • Шаблон — укажите шаблон, по которому будет создан документ;
  • Ожидать конвертации PDF файла — если выбрано Да, то действие не будет завершено пока не выполнится конвертация документа в формате PDF;
  • С подписью и печатью — добавлять в документ подпись и печать (должны быть ранее указаны в настройках вашей компании);
  • Создать публичную ссылку — создастся публичная ссылка (т.е. созданный документ будет доступен для скачивания извне по ссылке);
  • Моя компания — укажите свою компанию;
  • Реквизиты моей компании — укажите реквизиты вашей компании;
  • Банковские реквизиты моей компании — укажите банковские реквизиты вашей компании;
  • Поля документа > Добавить поле — добавление [dw]пользовательских полей[/dw][di]Пример добавления в статье на helpdesk.bitrix24.ru.[/di] для документа.

Примечание:

  • Как создать свою компанию и заполнить реквизиты читайте в статье Как добавить реквизиты своей компании?
  • А о том, как настроить наименование файла, создаваемого по шаблону документа, в статье Нумераторы

Пример настройки:

Важно: Для параметров действия Шаблон, Реквизиты … и Банковские реквизиты … доступна подстановка значений через форму Вставка значения, но нужно иметь ввиду два момента:

  • В качестве значений действию нужны идентификаторы [dw]ID[/dw][di]Например для шаблона документов идентификаторы можно посмотреть на странице списка шаблонов.
    Подробнее на helpdesk.bitrix24.ru.

    [/di] этих элементов;

  • В основном списке вариантов параметра должно быть выбрано Не установлено.

Сгенерированные документы доступны в той сущности CRM, в которой был запущен бизнес-процесс, а также хранятся в скрытой папке [dw]Документы CRM[/dw][di]Папка скрытая. Её содержимое можно посмотреть в экспертном режиме Очистки диска.[/di] на Общем диске.

  Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно:

  • Идентификатор созданного документа;
  • Публичная ссылка на документ;
  • PDF файл;
  • DOCX файл;
  • Номер документа CRM.

Пример использования такого результата: добавление файла DOCX в действии [dw]Загрузить в Диск[/dw][di]Действие загружает файл в хранилище Диска.
Подробнее…

[/di].

Создать Контакт к Лиду

Действие создаёт Контакт и помечает Лид как [dw]повторный[/dw][di]Получайте постоянных клиентов и повышайте лояльность с повторными лидами в Битрикс24.

Подробнее читайте на helpdesk.bitrix24.ru[/di].

Описание параметров

  • Ответственный — назначьте пользователя, ответственного за создаваемый Контакт.

Пример настройки:

В результате выполнения действия в секции Дополнительные результаты формы Вставка значения станет доступен ID нового Контакта:

Создать на основании

Действие позволяет создать новый элемент CRM на основании лида / сделки, в которой запущен бизнес-процесс.

Примечание: Действие доступно в шаблонах бизнес-процессов [dw]Лидов[/dw][di]Лид — это самый-самый «холодный контакт», зацепка, которая может стать клиентом, а может и не стать.

Подробнее на helpdesk.bitrix24.ru.[/di] и [dw]Сделок[/dw][di]Сделка — один из основных элементов CRM, это процесс продажи товара или услуги клиенту.

Подробнее на helpdesk.bitrix24.ru.[/di].

  Действие в БП лидов

В бизнес-процессах лидов действие позволяет создать новый элемент CRM на основании лида: Сделку, Контакт и/или Компанию. Действие аналогично [dw]конвертации Лида[/dw][di]Лид в Битрикс24 — это любая зацепка или связь с возможным клиентом. Лид может стать контактом, компанией или сделкой — это зависит от вашего сценария продаж.
Что же такое конвертация? Конвертация — это и есть превращение лида в другие элементы CRM.

Подробнее на helpdesk.bitrix24.ru.[/di]).

Параметры действия

  • Ответственный — укажите ответственного за создаваемый элемент;
  • Создать на основании — из списка выберите тип создаваемого элемента. В списке доступен множественный выбор:
    • Сделка;
    • Контакт;
    • Компания.
  • Направление сделки — указывается направление создаваемой сделки.
  • Не закрывать дела при конвертации — если установлено Да, то дела связанные с лидом НЕ будут закрыты (например, задачи или встречи).

Пример

В результате выполнения действия в секции Дополнительные результаты формы Вставка значения станут доступны идентификаторы ID сделки, контакта и компании для использования в других действиях:

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

В бизнес-процессах сделок действие позволяет создать на основании сделки [dw]Cчет[/dw][di]В Битрикс24 счёт — финальный этап процесса продаж. Когда сделка заключена, мы создаём счет и выставляем его клиенту для оплаты.

Подробнее на helpdesk.bitrix24.ru.[/di] и/или [dw]Предложение[/dw][di]Коммерческое предложение — это элемент CRM с информацией о компании, товарах и услугах, а также предложением сотрудничества. Это следующая стадия работы с клиентом после создания сделки.

Подробнее на helpdesk.bitrix24.ru.[/di].

Параметры действия

  • Ответственный — укажите ответственного за создаваемый элемент;
  • Создать на основании — из списка выберите что создать на основании сделки: Счет или Предложение. Можно выбрать оба варианта.

Пример

В результате выполнения действия в секции Дополнительные результаты формы Вставка значения станут доступны идентификаторы ID счета и предложения для использования в других действиях:

Создать повторный Лид

Действие создаёт [dw]повторный Лид[/dw][di]Получайте постоянных клиентов и повышайте лояльность с повторными лидами в Битрикс24.

Подробнее читайте на helpdesk.bitrix24.ru[/di] по данным текущего документа. Доступно только для шаблонов бизнес-процессов Сделок.

Описание параметров

  • Название Лида — укажите название для создаваемого Лида;
  • Ответственный — выберите пользователя, ответственного за создаваемого Лида.

Пример настройки: название лида задается на основании названия компании в текущей сделки {{Компания: Название компании}} и добавления текста (повторный).

В результате выполнения действия в секции Дополнительные результаты формы Вставка значения станет доступен ID Лида:

Создать ссылку на оплату

  Действие позволяет создать ссылку на оплату Заказа. Действие доступно только в бизнес-процессах Сделок.

  Описание параметров

  • Автоматически создавать ссылку на оплату — если Да, то для Сделки, в которой запущен бизнес-процесс, будет создана короткая ссылка на оплату;
  • ID заказа — параметр доступен, если в первом параметре было указано Нет. Укажите идентификатор ID заказа, для которого нужно получить ссылку на оплату.

Важно: Действие работает с заказами. В настоящий момент заказ в сделке создается только при нажатии кнопки [ds]Принять оплату[/ds][di]CRM.Оплата и доставка — инструмент для принятия оплаты и оформления доставки в карточке сделки.

Подробнее на helpdesk.bitrix24.ru[/di].
Если же у вас включен режим [ds]«Сделки + Заказы»[/ds][di]Подробнее на helpdesk.bitrix24.ru.

[/di], то в действии можно указать ID нужного заказа.

Если вы уже работаете в режиме «Сделки», то вернуться в режим «Сделки + Заказы», не получится. Режим работы с заказами больше не поддерживается в Битрикс24.

В результате в секции Дополнительные результаты формы Вставка значения станет доступна Ссылка.

  Примеры настройки:

Если в параметре Автоматически создавать ссылку на оплату указано Да, то второй параметр недоступен для заполнения:

Если в первом параметре указано Нет, то требуется указать ID заказа. Например, это может быть ID заказа [dw]текущей сделки[/dw][di][/di] (в которой запущен бизнес-процесс).

Создать элемент CRM

  Действие создаёт элемент CRM.

Примечание: До версии модуля CRM 21.1800.0 действие имело название Создать элемент смарт-процесса и позволяло создать

только

элемент смарт-процесса.
Если вы ранее уже использовали действие со старым названием в шаблоне БП, то шаблон продолжит исправно работать, а действие будет с пользовательским названием.

  Описание параметров

  • Тип CRM элемента — выберите тип элемента CRM из списка. Доступны все типы элементов, кроме [ds]старых счетов[/ds][di]В CRM есть две версии счетов: новая, которую мы выпустили в конце 2021 года, и старая, которой уже несколько лет. Основная разница в том, что новые счета сделаны на базе смарт-процессов.

    Подробнее на helpdesk.bitrix24.ru.[/di]:

    • Контакт
    • Компания
    • Лид
    • Сделка
    • Предложение
    • Счет
    • Смарт-процесс (каждый смарт-процесс представлен отдельной строкой в списке)
  • Поля элемента — заполните значения полей для создаваемого документа. Набор полей меняется в зависимости от выбранного типа элемента CRM. Для заполнения полей доступно использование формы [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения.
    Подробнее…[/di].

  Пример настройки:

В качестве типа CRM элемента выбран смарт-процесс.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон (с версии CRM 21.1100.0).

Доступно:

  • ID нового элемента CRM.

Удалить товар

  Действие удаляет [ds]товары[/ds][di]В карточках лидов, сделок и предложений товары находятся в отдельной вкладке.

Подробнее на helpdesk.bitrix24.ru[/di] в карточке элемента, например, если клиент передумал покупать.

Примечание: Действие доступно только в бизнес-процессах Сделок и Счетов (с версии CRM 21.1800.0).

Удалить элемент CRM

  Действие удаляет произвольный элемент CRM.

Примечание: До версии модуля CRM 21.1800.0 действие имело название Удалить элемент смарт-процесса и позволяло удалить

только

элемент смарт-процесса.
Если вы ранее уже использовали действие со старым названием в шаблоне БП, то шаблон продолжит исправно работать, а действие будет с пользовательским названием.

  Описание параметров

  • Тип элемента CRM — выберите тип элемента CRM из списка. Доступны все типы элементов, кроме [ds]старых счетов[/ds][di]В CRM есть две версии счетов: новая, которую мы выпустили в конце 2021 года, и старая, которой уже несколько лет. Основная разница в том, что новые счета сделаны на базе смарт-процессов.

    Подробнее на helpdesk.bitrix24.ru.[/di]:

    • Контакт
    • Компания
    • Лид
    • Сделка
    • Предложение
    • Счет
    • Смарт-процесс (каждый смарт-процесс представлен отдельной строкой в списке)
  • ID элемента CRM — укажите идентификатор ID элемента CRM вручную или с помощью формы [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения.
    Подробнее…[/di].

  Пример настройки:

В примере выбран идентификатор элемента смарт-процесса, созданного ранее в шаблоне действием [dw]Создать элемент CRM[/dw][di]

Подробнее…[/di].

Диск (только для Б24)

В группе собраны действия для работы с объектами диска. Все действия доступны только в Битрикс24.

Детально об объекте Диска

Действие позволяет получить детальную информацию об объекте. Полученная информация используется в качестве дополнительных результатов для других действий.

  Описание параметров

  • Исходный объект – существующие файл или папка на диске, информацию о которых необходимо получить. Для выбора доступны только один файл или одна папка;
  • Папка или файл Диска – вместо выбора исходного объекта выше, в этом параметре можно указать ID папки или файла диска, созданных ранее другим действием в этом же бизнес-процессе. Например, с помощью действия [dw]Загрузить в Диск[/dw][di]Действие загружает файл в хранилище Диска.

    Подробнее…[/di] или [dw]Создать папку в Диске[/dw][di]Действие создает папку в Диске.

    Подробнее…[/di].

  Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно:

  • ID;
  • Тип объекта;
  • Название;
  • Размер в байтах;
  • Размер (форматированное);
  • URL для просмотра;
  • URL для загрузки.

  Пример

В качестве примера рассмотрим работу со вторым параметром действия Папка или файл Диска. Пусть наш простой бизнес-процесс сначала создаст новую папку на Общем диске c названием Папка для фотографий, а затем пришлет в уведомлении информацию об этой папке и ссылку на её просмотр.

Шаблон бизнес-процесса нашего примера состоит их [dw]трёх действий[/dw][di][/di]: Создать папку в Диске, Детально об объекте Диска и [dw]Сообщение соц.сети[/dw][di]Действие, которое позволяет отправить уведомление о событии указанному пользователю/группе пользователей через модуль социальной сети.

Подробнее…[/di].

Действие [dw]Создать папку в Диске[/dw][di][/di] создаст папку, затем в действии Детально об объекте Диска станет доступен выбор ID этой папки в дополнительных результатах:

Добавим получение более полной информации по вновь созданной папке из дополнительных результатов в уведомление:

Результат выполнения бизнес-процесса:

Загрузить в Диск

Действие загружает файл в хранилище Диска.

Описание параметров

Куда загрузить – куда именно нужно загрузить файл. Возможны следующие варианты:

  • Диск пользователя – в этом случае так же указывается и пользователь, в диск которого будет загружаться файл;
  • Диск группы соцсети – файл будет загружен в диск указанной группы;
  • Общий диск – файл будет загружаться в выбранный общий диск;
  • Папка диска – файл будет загружен в указанную папку на Диске.

Файл для загрузки — необходимо указать загружаемый файл. Сделать это можно:

  • С помощью формы [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения.
    Подробнее…[/di]. Например, из [dw]параметра[/dw][di]Файл добавляется при запуске БП.[/di] или файл, созданный ранее [dw]действием[/dw][di]К примеру, DOCX файл из доп. результатов действия Создание документа CRM.[/di] бизнес-процесса;
  • Прямой ссылкой на файл. Просто добавьте ссылку на файл для загрузки его на Диск. Например: https://dev.1c-bitrix.ru/images/portal_user/bizproc/ask_parameters.png.

Загружать от имени – от чьего имени будет загружен файл на диск.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно:

  • ID файлов Диска;
  • URL для просмотра;
  • URL для загрузки.

Загрузить новую версию в Диск

Загружает новую версию файла (документа) на Диск. При этом название останется таким же как у исходного файла.

  Описание параметров

  • Файл Диска – файл на диске, который будет обновлен. Доступно добавление напрямую с Диска или подстановка через форму Вставка значения (нужен ID файла);
  • Файл для загрузки – новая версия обновляемого файла. Добавляется через форму Вставка значения. Файл для загрузки должен иметь тип [dw]Файл[/dw][di]Передавать здесь ID файла диска некорректно.[/di];
  • Загружать от имени – от имени какого пользователя будет произведено обновление. Если оставить параметр пустым — изменение выполнится от имени «Системного пользователя».

  Пример

Здесь в качестве файла диска указан ID файла, для которого запущен бизнес-процесс. Файл для загрузки – [dw]параметр[/dw][di][/di] шаблона БП типа Файл, который будет [dw]заполнять[/dw][di][/di] пользователь при запуске БП.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

[dw]Доступно[/dw][di][/di]:

  • [dw]ID новой версии[/dw][di]Содержится информации именно об идентификаторе версии файла, а не ID файла. Посмотреть версии
    и их ID можно в истории изменений файла:

    [/di];

  • URL для просмотра;
  • URL для загрузки.

Копировать/Переместить в Диске

Действие позволяет копировать элементы или перемещать их в Диске.

  Описание параметров

  • Исходный объект – файл или папка, которые будут скопированы;
  • Папка или файл Диска – можно указать дополнительные данные для действия, например ID созданной ранее папки;
  • Тип операции – какая операция будет производиться: Перемещение или Копирование.
  • Куда – куда будет произведено копирование/перемещение. Возможны следующие варианты:
    • Диск пользователя – в этом случае так же указывается и Пользователь в, диск которого будет загружаться файл;
    • Диск группы соцсети – файл будет загружен в диск указанной Группы;
    • Общий диск – файл будет загружаться в выбранный общий Диск;
    • Папка диска – необходимо указать Папку, в которую будет загружен файл.
  • Выполнять от имени – от чьего имени будет выполняться операция.
  • Результаты выполнения действия

    Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

    Доступно:

    • ID объектов Диска;
    • URL для просмотра;
    • URL для загрузки.

  Пример работы с действием

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

  Шаблон для ознакомления: Скачать.

Создадим в бизнес-процессах Общего [ds]диска[/ds][di]Бизнес-процессы на диске организуют автоматическую обработку файлов.
Подробнее на helpdesk.bitrix24.ru.[/di] новый шаблон последовательного бизнес-процесса. Для создания новой папки используем действие [ds]Создать папку в Диске[/ds][di]Действие создает папку в Диске.
Подробнее…[/di]:

Новая папка будет создавать в Диске пользователя, запустившего бизнес-процесс (Автора). В название создаваемой папки подставится текущая дата. При этом если папка с таким названием уже будет существовать, новая создаваться не будет.

Следующим добавим действие Копировать/переместить в папку Диска:

Исходным объектом, который нужно скопировать, является загружаемый файл. Добавляем его через форму [dw]Вставка значения[/dw][di][/di]. А в качестве папки, в которую будем копировать файлы, укажем [dw]ранее созданную[/dw][di][/di] папку.

В результате получим такой простой шаблон:

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

Создать папку в Диске

Действие создает папку в Диске.

Описание параметров

Где создать – выберите из списка, где будет создана новая папка. Доступны следующие варианты:

  • Диск пользователя – указывается Пользователь, в диске которого будет создана папка;
  • Диск группы соцсети – папка будет создана в диске указанной Группы;
  • Общий диск – папка будет создана в указанном общем Диске;
  • Папка диска – необходимо указать конкретную Папку на одном из дисков, в которой будет создана новая папка (подпапка).

Название папки – как будет называться созданная папка;

Создатель папки – от чьего имени будет создана папка.

Примечание: Действие ничего не выполнит, если название создаваемой папки, указанное в действии БП, совпадёт с названием уже существующей папки в указанном месте Диска. Существующая папка останется без изменений, а новая создана не будет.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно:

  • ID папки Диска;
  • URL папки.

Удалить объект Диска

Действие удаляет объект Диска.

Описание параметров

Исходный объект – файл или папка, которые должны быть удалены;

Папка или файл Диска – можно указать дополнительные данные для действия, например ID ранее созданной папки;

Удалять от имени – от чьего имени будет удален файл.

Прочее

В группе собраны все остальные команды.

PHP код

Действие позволяет выполнить произвольный PHP код. Доступно только для коробочной версии «Битрикс24».

  Рекомендации

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

Например, вместо конструкции {=Variable:COMPANY_NAME} лучше использовать $root->GetVariable('COMPANY_NAME').

Cчитать поле документа в переменную можно таким образом:

// Считываем поле документа NAME в переменную
$documentService = $this->workflow->GetService("DocumentService");
$document = $documentService->getDocument($this->getDocumentId());
$fieldValue = $document['NAME'];

, где NAME — это поле документа (его название), а $fieldValue — произвольная переменная, в которую мы сохраняем значение поля документа для использования в коде.

 Полезные уроки по теме:

  • Произвольный PHP код в бизнес-процессе — глава об использовании действия PHP код для разработчиков;
  • Добавление информации в инфоблок из бизнес-процесса — пример, в котором значения из пользовательских полей списка с помощью бизнес-процесса и действия PHP код записываются в пользовательские свойства инфоблока.

  Примеры кода

1. Как установить значение переменной?

$this->SetVariable('Variable1', 12345);

где:

Variable1 — идентификатор переменной, которой будет присвоено значение (число 12345).

2. Как записать нескольких пользователей в переменную типа «Пользователь»?

$this->SetVariable("user", array("user_1", "user_2"));

где:

array("user_1", "user_2") — массив пользователей в формате user_[идентификатор_пользователя_в_системе].

3. Как при помощи PHP кода и существующих значений полей/переменных получить название элемента инфоблока?

$arFilter = Array("IBLOCK_ID" => {=Variable:Variable1_printable}, "ID" => {=Document:PROPERTY_1}); 
$dc = CIBlockElement::GetList(array(), $arFilter, array("NAME"));
$br = $dc->Fetch();
$Pbrr = $br["NAME"];
$this -> SetVariable('Variable2', $Pbrr);

где:

{=Variable:Variable1_printable} — значение переменной, в которой содержится идентификатор инфоблока;

{=Document:PROPERTY_1} — поле документа, содержащее идентификатор элемента инфоблока;

Variable2 — идентификатор переменной, которой будет присвоено вычисленное название элемента инфоблока.

4. Как преобразовать формат поля документа и использовать его в дальнейшем?

Рассмотрим пример преобразования поля документа Пользователь в понятную форму для того, чтобы использовать его при отправке сообщения:

  1. В шаблоне бизнес процесса следует создать переменную для хранения преобразованного значения поля документа;
  2. Укажем в действии PHP-код приблизительно следующее:
    $rsUser = CUser::GetByID({=Document:PROPERTY_USER});
    $arUser = $rsUser->Fetch();
    $this->SetVariable('#Имя_переменной#', $arUser[NAME].' '.$arUser[SECOND_NAME].' '.$arUser[LAST_NAME]);
    
  3. После чего в блоке, используемом для уведомления, необходимо уже использовать вывод данной переменной вместо поля документа.

5. Как считать поле документа в переменную, произвести с ней какие-либо действия и передать результат в переменную шаблона бизнес-процесса?

// Считываем поле документа PROPERTY_175 в переменную
$documentService = $this->workflow->GetService("DocumentService");
$document = $documentService->getDocument($this->getDocumentId());
$fieldValue = $document['PROPERTY_175'];

// Производим действия с переменной. Например обрабатываем функцией myFunc.
$myVar = myFunc($fieldValue);

// Пишем значение из переменной $myVar в переменную шаблона бизнес-процесса Variable1
$this->SetVariable('Variable1', $myVar);

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

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

Например, разместим в блоке действия [ds]Параллельное выполнение[/ds][di]Конструкция, позволяющая выполнять параллельные сценарии бизнес-процесса.

Подробнее…[/di], [ds]Задача[/ds][di]Действие позволяет создать задачу.

Подробнее…[/di] и [ds]Сообщение соц. сети[/ds][di]Действие, отправляет уведомление модуля социальной сети.

Подробнее…[/di]. В развернутом виде он занимает много места, а свернув его — вы значительно сэкономите пространство на схеме:

Нажмите на рисунок, чтобы увеличить

Также блок действий позволит вам существенно сэкономить трудозатраты при создании шаблонов бизнес-процессов в типовых сценариях. Однажды созданный и настроенный блок действий можно сохранить в группе Мои действия и многократно использовать. При этом будут сохранены и все заполненные поля в параметрах действий.

Измените название блока на понятное для вас и просто перетащите его целиком в [ds]Мои действия[/ds][di]Мои действия позволяют сохранять настроенные действия/конструкции и использовать их повторно.

Подробнее…[/di]:

Нажмите на рисунок, чтобы увеличить

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

Выбор сотрудника

Действие позволяет в автоматическом режиме выбрать сотрудника для дальнейшего использования его в процессе.

Описание Параметров

Тип:

  • случайный – выбор обычного сотрудника случайным образом;
  • последовательный – выбор обычного сотрудника последовательным образом (т.е. по порядку из списка в параметре Из пользователей). При каждом новом запуске процесса будет выбран следующий по порядку в списке пользователь;
  • начальник – [dw]выбор начальника[/dw][di]Опция выбора начальника актуальна только для продукта «Битрикс24 в коробке».[/di] для указанного сотрудника.

Из пользователей – указываются пользователи или группы, из которых будет выбран один сотрудник.

Для пользователя – указывается пользователь, для которого будет выбран начальник.

Уровень начальника (чем больше, тем выше уровень) – выбирается уровень начальника для указанного пользователя.

Резервные пользователи – Указываются пользователи, которые будут выбраны в случае невозможности выбора из основных пользователей, указанных выше. Например, если указанная в поле Из пользователей группа не содержит сотрудников, то будет выбран кто-то из резервных пользователей.

Пропускать отсутствующих – позволяет [dw]автоматически[/dw][di]Действие определяет отсутствие сотрудника согласно записям, которые отображаются на странице График отсутствий.[/di] пропускать отсутствующих сотрудников, например, если они в отпуске.

Пропускать с завершенным рабочим днем – позволяет автоматически пропускать сотрудников, завершивших рабочий день.

Примечание: С версии 20.0.700 модуля Бизнес-процессы для параметров Пропускать отсутствующих и Пропускать с завершенным рабочим днем добавлена опция [dw]Применить к резервным[/dw][di][/di]. При включенной опции выбранные настройки будут применены не только к основным пользователям, но и к резервным.

Подробнее про ситуацию с отсутствующим сотрудником/начальником

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно:

  • Выбранный сотрудник.

Выполнить математические операции

Действие позволяет выполнять математические операции со значениями переменных: сложение, вычитание, умножение, деление. Доступно с версии 21.600.0 модуля Бизнес-процессы.

  Описание Параметров

  • 1 – укажите [ds]глобальную переменную[/ds][di]На контекстной панели визуального конструктора расположены две кнопки: Глобальные переменные и Глобальные константы. По нажатии на кнопку открывается слайдер со списком глобальных переменных или констант соответственно.

    Подробнее…[/di], в которую будет записан результат математической операции;

  • 2 – выберите из списка или укажите своё значение (число) для составляющей математической операции. В списке доступны для выбора глобальные переменные / константы и поля документа, в котором запущен бизнес-процесс;
  • 3 – выберите математическую операцию: сложение, вычитание, умножение или деление.

Важно: Действие работает только со значениями типа Число или Целое число. Поэтому в параметрах для выбора доступны только значения из перечисленных типов.

  Пример

В примере мы умножаем значение глоб. переменной Базовая ставка на число 2 (своё значение) и сохраняем результат в глоб. переменную Стоимость договора.

Запись в отчет

Действие позволяет добавлять в [ds]журнал[/ds][di]При разработке и использовании уже готовых процессов бывает необходимо узнать подробности выполнения того или иного процесса / действия. Для этого в системе предусмотрен журнал выполнения бизнес-процессов (лог).

Подробнее…[/di] выполнения бизнес-процесса (лог) произвольные записи и формировать отчеты. Запись в отчет удобно использовать, например, во время отладки бизнес-процесса, сохраняя в отчет данные на нужном этапе.

  Описание параметров

  • Текст – укажите произвольный текст отчета. Обязательный параметр. В тексте доступно форматирование с использованием тегов [ds]bb-code[/ds][di]BBCode — язык разметки, используемый для форматирования сообщений.

    Подробнее на Википедии[/di]: [url], [b], [i], [s], [u] и т.д. (будет ли работать тот или иной тег зависит от [dw]действия[/dw][di]Например, тег [color] изменит цвет текста если вывести отчет в ленту Новостей, но не сработает в сообщении соц. сети.[/di], которым будет выводиться отчет). Обратите внимание, что форматирование bb-code

    не работает для записей в логе;

  • Загрузить отчет для доступа из бизнес-процесса – опция позволяет получить содержимое всех отчетов, сформированных на текущий момент, в рамках бизнес-процесса для его дальнейшего использования в шаблоне (например, отправить такой отчет можно по почте или в уведомлении). Отчет доступен через форму [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса есть возможность указывать как собственный текст (заданный вручную), так и использовать различные переменные (поля документа и прочие данные, которые не задаются вручную). Для этого используется специальная форма Вставка значения.

    Подробнее…[/di] (секция Дополнительные результаты).
    При отключенной опции информация записывается только в журнал выполнения бизнес-процесса (лог).

  Пример настройки:

  Дополнительные результаты

Результаты выполнения действия Запись в отчет можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они становятся доступны сразу после добавления действия в шаблон.

Доступно:

  • Отчет.

Для каждого использованного в шаблоне действия Запись в отчет создаётся [dw]своя запись[/dw][di]Рекомендуем менять заголовки действий, чтобы легче различать их между собой в шаблоне и в форме Вставка значения.[/di]. Использование вставки этого значения имеет смысл только если в параметрах действия была отмечена опция Загрузить отчет для доступа из бизнес-процесса. С её помощью можно получить суммарный отчет по всем отчетам, что расположены до текущего действия и включая его. Т.о. отчет каждого последующего действия включает отчеты предыдущих действий.

Внимание: Переменная Отчет будет пустой, если опция Загрузить отчет для доступа из бизнес-процесса не была отмечена.

Пример использования опции: формирование суммарного отчета по данным из всех отчетов на этапе завершения бизнес-процесса без лишних запросов к базе.

  Пример

Для лучшего понимания как работает опция Загрузить отчет для доступа из бизнес-процесса рассмотрим очень простой пример. Создадим тестовый шаблон с тремя действиями Запись в отчет и одним уведомлением Сообщение соц. сети:

Параметры действий заполнены таким образом:

Мы хотим отправить в уведомлении информацию о всех трех записях. Поэтому в третьем отчете опция загрузки отчета включена. В уведомление добавим с помощью формы Вставка значения наш итоговый отчет:

В результате запуска БП сформируется такое уведомление:

Как видно на скриншоте, сообщение содержит все три записи с указанием даты и времени.

В журнале (логе) бизнес-процесса каждый отчет будет записан отдельной строкой:

Примечание: Если в примере выше опцию загрузки отчета включить для Записи в отчет 2 и в сообщении добавить отчет этого действия, то получим данные по двум записям: первой и второй. Третьей записи в сообщении с отчетом не будет. А вот в логе отобразятся все три записи.

Изменение глобальных переменных

Действие позволяет изменить значения [ds]глобальных переменных[/ds][di]Глобальные переменные используются для хранения данных и могут быть изменены. Доступны сразу во всех шаблонах бизнес-процессов.

Подробнее…[/di]. Доступно с версии 21.500.0 модуля Бизнес-процессы и версии 21.300.0 модуля Дизайнер бизнес-процессов.

Описание Параметров

Примечание: Действие аналогично действию [ds]Изменение переменных[/ds][di]Действие позволяет изменить значения переменных, заданных в настройках шаблона.

Подробнее…[/di].

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

Подробнее…[/di].

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

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

Действие позволяет изменить значения [ds]переменных[/ds][di]Переменные используются для временного хранения данных, необходимых для выполняемого процесса.

Подробнее…[/di], заданных в настройках шаблона.

Описание Параметров

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

Подробнее…[/di].

По кнопке Добавить условие добавляется новая строка для изменения переменной. Таким образом можно изменить несколько переменных в одном действии.

Вид строк для изменения переменных меняется в зависимости от типа переменной (например для типов [dw]Список[/dw][di][/di], [dw]Привязка к сотруднику[/dw][di][/di] и др.).

Действие работает и с [dw]множественными переменными[/dw][di]Например, можно установить в качестве значений переменной, значения других
двух переменных:

[/di]. При этом выполняется полная замена значений, выборочно заменить нельзя.

Особенности подстановки значений через форму Вставка значения

Исходящий Вебхук

Действие передаёт информацию в другие системы с помощью [dw]Вебхука[/dw][di]WebHook — упрощенный вариант rest-событий и rest-команд, без написания приложения. Для коробочных версий доступен только при наличии модуля Rest.[/di]. Действие не возвращает никаких данных, оно только отправляет запрос.

Параметры действия

  • Хендлер – URL, который нужно использовать при отправке данных из Битрикс24.

Ожидание рабочего дня сотрудника

Действие ставит бизнес-процесс на паузу в ожидании [ds]рабочего дня[/ds][di]Одним из важнейших показателей ответственности ваших коллег является рабочее время. Используйте инструмент Рабочий день и учитывайте рабочее время сотрудников, не отрываясь от собственных дел.

Подробнее на helpdesk.bitrix24.ru.[/di] указанного сотрудника.

Действие доступно с версии 22.400.0 модуля Бизнес-процессы.

  Описание параметров

  • Сотрудник – укажите сотрудника, чей рабочий день будет ожидать бизнес-процесс. Бизнес-процесс возобновит работу как только указанный сотрудник начнет или продолжит рабочий день.

  Пример настройки

В шаблоне бизнес-процесса сделок в параметре действия указан Ответственный с помощью формы [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения.
Подробнее…[/di].

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

В [ds]журнал[/ds][di]При разработке и использовании уже готовых процессов бывает необходимо узнать подробности выполнения того или иного процесса / действия. Для этого в системе предусмотрен журнал выполнения бизнес-процессов (лог).

Подробнее…[/di] бизнес-процесса действие добавляет запись о паузе:

Нажмите на рисунок, чтобы увеличить

Пауза в выполнении

Действие позволяет отложить выполнение следующего действия на заданное время.

  Описание Параметров

Режим:

  • Промежуток – указывается промежуток времени, через который продолжится выполнение бизнес-процесса.

    Период можно задать в секундах, минутах, часах или днях. Минимальное значение периода зависит от настроек модуля Бизнес-процессы, параметр Минимальное время ожидания для действий.

  • Время – указывается конкретное время возобновления бизнес-процесса.

    Примечание: Если в режиме Время, на момент выполнения действия, указанная дата имеет место в прошлом (например был указан прошлый год, а действие начало выполняться в текущем), то будет произведен автоматический переход к следующему за «паузой в выполнении» действию. Другими словами процесс «перескочит» через него.

Важно:

  1. Паузу нельзя прервать каким-либо образом для уже запущенного бизнес-процесса.
  2. Паузы выполняются на хитах, то есть зависят от посещения пользователями самого портала. Если у вас портал создан только для автоматизации деятельности и на нём нет пользователей, постоянно посещающих портал, то возможна ситуация, когда бизнес-процессы (БП) и роботы с опозданием сходят с паузы. Для исключения такой ошибки необходимо организовать периодическую активность пользователей на портале. Например: ежедневный заход одного пользователя на портал.

Сохранять в журнал Бизнес-процесса информацию о паузах – при включенном параметре информация о паузе будет записываться в статус БП. Параметр доступен с версии 20.200.0 модуля Бизнес-процессы.

  Особенность работы бизнес-процесса после паузы

Бизнес-процесс после паузы работает на агентах, без контекста пользователя. Поэтому если в шаблоне используется Пауза в выполнении, а после паузы вывод даты и времени каким-либо действием (например, в уведомлении), то дата будет выведена в часовом поясе сервера. Во избежание этого, используйте время пользователя. Например, с помощью [ds]модификатора[/ds][di]Указанные нами параметры, переменные шаблона или поля документа возможно модифицировать с помощью специальных модификаторов, которые преобразуют данные.

Подробнее…[/di] responsible выводится время в часовом поясе Ответственного.

  Пример

Простой пример заполнения:

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

Подробнее…[/di] и функции [ds]калькулятора выражений[/ds][di]При вычислении значений выражений в параметрах действий вы можете использовать различные операторы и функции.

Подробнее…[/di]. Например, поставим паузу так, чтобы процесс возобновлялся за 3 дня до указанной в поле сделки даты:

Примечание: Действие часто применяется в конструкции [ds]Параллельное ожидание действия[/ds][di]Конструкция, которая позволяет направить бизнес-процесс по разным сценариям в зависимости от того, какое из событий наступит раньше.

Подробнее…[/di].

Пауза робота

Действие позволяет отложить выполнение следующего действия на заданное время и при этом дополнительно ожидать начала рабочего дня сотрудника.

Действие доступно с версии 22.400.0 модуля Бизнес-процессы и объединяет в себе два простых действия: Пауза в выполнении и Ожидание рабочего дня сотрудника.

В этом уроке мы не будем рассматривать действие подробно. Все подробности и нюансы можно посмотреть в описаниях действий по ссылкам выше.

  Описание параметров

  • Режим:
    • Промежуток – указывается промежуток времени, через который продолжится выполнение бизнес-процесса.

      Период можно задать в секундах, минутах, часах или днях. Минимальное значение периода зависит от настроек модуля Бизнес-процессы, параметр Минимальное время ожидания для действий.

    • Время – указывается конкретное время возобновления бизнес-процесса.

      Примечание: Если в режиме Время, на момент выполнения действия, указанная дата имеет место в прошлом (например был указан прошлый год, а действие начало выполняться в текущем), то будет произведен автоматический переход к следующему за «паузой в выполнении» действию. Другими словами процесс «перескочит» через него.

  • Сотрудник – укажите сотрудника, чей рабочий день будет ожидать бизнес-процесс. Бизнес-процесс возобновит работу как только указанный сотрудник начнет или продолжит рабочий день.

  Пример настройки

В шаблоне бизнес-процесса сделок в параметрах действия задана пауза на 10 минут и указан Ответственный с помощью формы [ds]Вставка значения[/ds][di]При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса можно указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не нужно задавать вручную. Для этого используется специальная форма Вставка значения.
Подробнее…[/di].

Таким образом, бизнес-процесс встанет на паузу на 10 минут и, затем, будет ожидать рабочего дня ответственного за сделку сотрудника.

В [ds]журнал[/ds][di]При разработке и использовании уже готовых процессов бывает необходимо узнать подробности выполнения того или иного процесса / действия. Для этого в системе предусмотрен журнал выполнения бизнес-процессов (лог).

Подробнее…[/di] бизнес-процесса действие сначала добавляет запись о паузе, а по окончании паузы — запись об ожидании рабочего дня сотрудника:

Нажмите на рисунок, чтобы увеличить

Получить информацию о сотруднике

Действие получает данные о сотруднике для использования в других действиях.

  Описание параметров

  • Сотрудник – укажите пользователя, информацию о котором требуется получить.

Например:

Полученные данные о пользователи будут доступны для выбора в других действиях в секции Дополнительные результаты формы Вставка значения:

  Подробнее о дополнительных результатах

Бо́льшая часть доп. результатов — это информация из [dw]карточки пользователя[/dw][di]Управление учетными записями пользователей в системе выполняется на странице Список пользователей (Настройки > Пользователи > Список пользователей).

Подробнее в курсе Администратор. Базовый.[/di]. Ниже приведен полный список дополнительных результатов (для некоторых из них даны пояснения во всплывающей информации):

Примечание: Все указанные выше поля есть по умолчанию в штатной версии Битрикс24 в коробке. Если вы не находите в карточке пользователя указанные поля, проверьте [dw]настройки формы[/dw][di]При работе с товарами, материалами статей, каталогами справочников зачастую в форме присутствуют поля, которые не используются на сайте. Лишние поля увеличивают размеры формы редактирования и затрудняют внесение данных. Облегчите свой труд, используйте инструмент настройки форм инфоблоков.

Подробнее в курсе Контент-менеджер.[/di]. Вероятно, эти поля скрыты из формы.

В штатной 1С-Битрикс: Управление сайтом в карточке пользователя есть только [dw]часть полей[/dw][di]Отсутствуют все поля до конца списка начиная от Skype.[/di] из дополнительных результатов действия.

* Социальная сеть признана экстремистской и запрещена на территории Российской Федерации.

Прерывание процесса

Действие позволяет прекратить выполнение бизнес-процесса.

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

Описание параметров:

  • Текст статуса – устанавливает [dw]текст[/dw][di]Указанный статус установится для всех прерванных процессов, если их
    данные не удалены параметром Удалить данные процесса.
    [/di] статуса действия;
  • Прервать процесс – выберите, какие процессы [dw]текущего документа[/dw][di]Текущим документом может быть элемент универсального списка, элемент CRM (сделка, контакт и т.д.) и др. Подробнее о документах в уроке Общая информация.[/di] нужно завершить (прервать):
    • Текущий – будет прерван только текущий процесс;
    • Все процессы шаблона – будут прерваны все процессы этого шаблона для того документа, в котором запущен текущий процесс;
    • Все процессы шаблона, кроме текущего – будут прерваны все процессы этого шаблона для того документа, в котором запущен бизнес-процесс, кроме текущего процесса. Текущий процесс продолжит выполнение.

    Параметр доступен с версии 21.400.0 модуля Бизнес-процессы.

  • Удалить данные процесса – при включенной опции все связанные с БП данные будут удалены при завершении его работы. Опция доступна с версии 20.200.0 модуля Бизнес-процессы.

Пример:

Сгенерировать код

Действие сгенерирует случайную строку.

Описание параметров

  • Длина строки – укажите необходимое количество символов в строке;
  • Алфавит – выберите из чего необходимо сгенерировать строку. Доступен множественный выбор с помощью зажатия клавиши Ctrl. В списке четыре вида алфавита:
    • Числа;
    • Прописные буквы;
    • Заглавные буквы;
    • Специальные символы.

Пример настройки:

Примеры сгенерированных комбинаций для строки длиной 10 символов:

Алфавит Пример сгенерированного кода
  • Числа
  • 8584643630
  • Прописные буквы
  • rkqldugmmy
  • Заглавные буквы
  • TPSHUMDRNP
  • Специальные символы
  • @[_+;(*#@)
  • Числа
  • Заглавные буквы
  • EYQFV5I5IK
  • Числа
  • Прописные буквы
  • Заглавные буквы
  • Специальные символы
  • 1eHdUz{3@F

    Сгенерированный код будет в дальнейшем доступен для выбора в секции Дополнительные результаты формы Вставка значения в других действиях:

    Создание группы

    Действие позволяет создать [dw]группу[/dw][di]Группы (проекты) помогают сгруппировать все данные, задачи, файлы, сообщения, встречи в одном месте и работать внутри определенного коллектива, группы людей.

    Подробнее на helpdesk.bitrix24.ru[/di].

      Описание параметров

    • Название группы – укажите название для создаваемой группы. Обязательный параметр;
    • Владелец группы – выберите пользователя, который будет владельцем группы. Обязательный параметр;

      Важно: У группы может быть только один Владелец.

    • Участники группы – добавьте участников группы. Можно выбрать как отдельных пользователей, так отделы и членов другой рабочей группы. Обязательный параметр;
    • Подразделения – выберите подразделения, для привязки их к новой группе, если необходимо. Сотрудники выбранных подразделений [dw]автоматически привяжутся к группе[/dw][di]Подключенные пользователи – это те пользователи, кого добавили в группу или проект в составе подразделения или отдела.

      Подробнее на helpdesk.bitrix24.ru.[/di] после её создания и смогут покинуть её, только если подразделение будет удалено из группы;

    • Целевой сайт – выберите из списка, к какому сайту относится группа.

      Пример

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

    В результате работы действия, при запуске бизнес-процесса, создастся новая группа с указанным названием. При этом владельцем и участником группы будет только Автор (на скриншоте ниже такой пользователь это Администратор), а все остальные — подключенные пользователи из выбранных подразделений (на скриншоте ниже это пользователи: Администратор магазина из Отдела продаж и Ирина из Бухгалтерии).

      Результаты выполнения действия

    В результате выполнения действия в секции Дополнительные результаты формы Вставка значения станет доступен ID новой группы:

    Создать QR-код

    Действие позволяет создать QR-код на специальную страницу. Доступно только в Битрикс24 с версии 22.600.200 модуля CRM.

      Описание параметров

    • Идентификатор для триггера – укажите текст, который будет являться идентификатором для триггера Сканирование QR-кода. По умолчанию это «QR-код от [текущий день и месяц]». Идентификатор нужен для того, чтобы триггер передвигал только те сделки, код для которых создало конкретное действие;

      Важно: На текущий момент идентификаторы, указанные через бизнес-процессы, не доступны в триггере Сканирование QR-кода. Триггер возможно использовать, если выбрать вариант [dw]все[/dw][di][/di] в настройках триггера. Если такая схема не подходит вам, рекомендуем использовать робот [ds]Создать QR-код[/ds][di]Мы добавили в CRM робота Создать QR-код и триггер Сканирование QR-кода. Эти инструменты помогут автоматизировать приглашение и регистрацию участников на мероприятиях.

      Подробнее на helpdesk.bitrix24.ru.[/di] взамен действия бизнес-процесса.

    • Текст при открытии страницы – текст, который увидит пользователь при открытии страницы. По умолчанию в поле задан пример текста;
    • Текст кнопки – укажите текст кнопки подтверждения. По умолчанию текст «Подтвердить».

    QR-коды, которые сформировало действие, можно отправить клиенту в письме или SMS, добавить в комментарий к сделке и так далее. Для этого разместите нужное действие в шаблоне после действия Создать QR-код и воспользуйтесь одним из результатов выполнения действия.

      Результаты выполнения действия

    Результаты выполнения этого действия можно получить с помощью формы Вставка значенияДополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

    Доступно:

    • Короткая ссылка на страницу
    • Ссылка на страницу (BBcode)
    • Ссылка на страницу для вставки в письмо (HTML)
    • Короткая ссылка на QR-код
    • Ссылка на QR-код (BBcode)
    • Ссылка на QR-код для вставки в письмо (HTML)
    • Вставка QR-кода (HTML картинка)

    Дополнительные значения рекомендуется использовать следующим образом:

    • Для писем: Ссылка на страницу для вставки в письмо (HTML), Ссылка на QR-код для вставки в письмо (HTML) и Вставка QR-кода (HTML картинка).
      В первом случае клиент увидит страницу, как-будто QR-код уже отсканирован, во втором случае ссылку на изображение кода, а в третьем случае в письме придёт изображение кода.
    • Для SMS: Короткая ссылка на страницу и Короткая ссылка на QR-код.
    • Для сообщений в ленту и комментариев: Ссылка на страницу (BBcode) и Ссылка на QR-код (BBcode).

      Что увидит клиент

    Если клиенту отправлена ссылка на QR-код, то он увидит такую страницу:

    QR-код содержит ссылку на страницу подтверждения участия. При желании клиент может скачать QR-код в виде картинки.

    Перейдя по ссылке клиент увидит такую страницу:

    На странице показывается текст, указанный в настройках действия (в том числе текст кнопки).

      Пример

    Действие Создать QR-код совместно с триггером Сканирование QR-кода помогут автоматизировать приглашение и регистрацию участников на мероприятиях.

    Рассмотрим такой краткий сценарий: необходимо пригласить клиентов на мероприятие и собрать информацию о том, кто посетил это мероприятие.

    Допустим у нас есть ряд клиентов в CRM, которых мы приглашаем на мероприятие. Для этого в сделках у нас настроены соответствующим образом стадии:

    Нажмите на рисунок, чтобы увеличить

    Сначала все клиенты попадают на первую стадию сделки. На этой стадии создаём шаблон бизнес-процесса, который содержит действия создания QR-кода и отправки ссылки / QR-кода клиенту.

    На третьей стадии разместим триггер Сканирование QR-кода. Триггер переместит сделку на эту стадию, если клиент подтвердит участие в мероприятии.

    Таким образом после окончания мероприятия вы увидите, кто из клиентов действительно посетил мероприятие, а кто нет (т.е. то, какие сделки перешли на стадию Посетил мероприятие).

    Установка прав

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

    Описание Параметров

    • Право на операцию «…» имеют – [dw]установка прав документа[/dw][di]Примечание: Для разных типов документов существуют разные типы прав.[/di] для указанных пользователей/групп пользователей.
    • Текущие права документа – выберите, что сделать с текущими правами документа:
      • Оставить – оставить права без изменений;
      • Перезаписать – позволяет не добавлять права, а производить их замену;
      • Очистить – очистить права полностью.
    • Область применения очистки и перезаписи – выберите область применения для очистки или перезаписи прав:
      • Права, установленные текущим бизнес-процессом (т.е. производится работа только с правами, которые устанавливаются внутри бизнес-процесса);
      • Все права документа (работа со всеми права документа).

    Внимание: В случае использования [dw]бизнес-процесса со статусами[/dw][di]По умолчанию бизнес-процесс использует права документа, но в каждом статусе возможно дополнительно указать права, которые будут добавлены к правам документа именно в этом статусе.

    Подробнее…[/di], переход к другому

    статусу

    переписывает права доступа к документу, установленные действием Установка прав в текущем статусе.

    Особенности назначения прав в системе

    Важно! С версии 15.5.0 Дизайнера бизнес-процессов данное действие исключено для модулей Диск и CRM.

    Мои действия

    Мои действия позволяют сохранять настроенные действия/конструкции и использовать их повторно.

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

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

    Документация по теме:

    • Создание собственных действий

    Примеры работы с действиями

    Давайте посмотрим примеры использования действий в бизнес-процессах.

    Пример использования цикла для утверждения документа

    Используем цикл для процесса утверждения документа

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

    Пример упрощен, и описание касается только работы конструкции [dw]Цикл[/dw][di]Конструкция выполняет свои поддействия до тех пор, пока выполняется заданное условие.
    Подробнее…[/di]. В примере используем тип условияПоле документа.

    Порядок действий:

    • Первым делом добавим действие [dw]Изменение документа[/dw][di]Действие изменяет указанные поля документа.
      Подробнее…[/di]. C помощью ссылки Добавить поле создадим дополнительное поле типа список с названием Результат утверждения. Укажем [dw]2 варианта[/dw][di][/di] значений поля с новой строки: на рассмотрении и утвержден. По значениям этого поля будет принято решение — выходить из цикла или нет.

      Теперь выберем созданное поле Результат утверждения и установим для него значение [dw]на рассмотрении[/dw][di][/di].

    • Добавим действие Цикл. В параметрах [dw]укажем[/dw][di][/di]: тип условияполе документа; условиеравно; значениена рассмотрении.
    • В цикле добавим действие [dw]Утверждение документа[/dw][di]Действие позволяет произвести утверждение документа, для которого запущен бизнес-процесс.
      Подробнее…[/di]:

      • В ветку Да добавляем действие Изменение документа. В параметрах поля Результат утверждения выбираем значение утвержден. Этим мы заставим процесс больше не входить в цикл.
      • После этого действия, если требуется, ставим [dw]дополнительные действия[/dw][di]Примечание: В процессе изучения работы конструкции Цикл можно на этом этапе использовать действие Запись в отчет. Это позволит в журнале отследить, какое именно решение было принято и как цикл продолжил свою работу дальше.
        Подробнее…[/di].
      • В ветку Нет добавляем действие [dw]Запрос дополнительной информации[/dw][di]Действие создает задание, в ходе которого у пользователя будет запрошена дополнительная информация необходимая для выполнения бизнес-процесса.
        Подробнее…[/di]. Оно используется, например, для указания информации о правках старой версии документа или каких-либо замечаний, связанных с повторным рассмотрением документа.
      • Добавляем действие Изменение документа. В поле Результат утверждения выбираем значение на рассмотрении. Этим мы заставим процесс повторно войти в цикл. Также в этом действии мы обновим значения полей документа на значения, полученные из предыдущего действия, т.е. отправим на рассмотрение уже измененный документ.
      • При необходимости укажем в этой ветке дополнительные действия.
    • После конструкции Цикл установим действие, которое оповестит нас о том, что цикл [dw]завершил[/dw][di]документ может постоянно отклоняться и соответственно выхода из цикла не будет[/di] свою работу. В качестве оповещения выберем действие [dw]Установить текст статуса[/dw][di]Действие позволяет изменить текст статуса документа, что облегчает отслеживание состояния документа в общем списке бизнес-процессов во время выполнения бизнес-процесса.
      Подробнее…[/di] или [dw]Почтовое сообщение[/dw][di]Действие позволяет отослать уведомление о событии на e-mail, указанный в настройках действия.
      Подробнее…[/di].

    Итоговая схема шаблона бизнес-процесса с Циклом:

    Пример работы с переменными и дополнительными результатами действий

    Когда нужна дополнительная информация

    Рассмотрим пример создания простого шаблона [dw]последовательного бизнес-процесса[/dw][di]Последовательный бизнес-процесс — действия выполняются одно за другим от точки входа до точки выхода.
    Подробнее…[/di], в котором у пользователя запрашивается дополнительная информация, и затем она используется для записи в отчет и установку статуса документа.

    Порядок действий:

    Получили такой шаблон:

    Пример использования действия «Выбор сотрудника»

    Пример: начальник в отпуске

    Рассмотрим небольшой пример использования действия [dw]Выбор сотрудника[/dw][di]Действие позволяет в автоматическом режиме выбрать сотрудника для дальнейшего использования его в процессе.
    Подробнее…[/di]. Используем его для выбора начальника, который утверждает документ. Если начальник находится в отпуске, то выбирается вышестоящий начальник и так далее. Когда действие, таким образом, дойдет до генерального директора, или начальник не выбран вообще (в случае отсутствия всего начальства), то назначается заместитель начальника.

    Порядок действий

    • Создадим новый шаблон, а в нем 2 переменные типа Пользователь:
      • переменная Начальник, которая меняется по ходу процесса;
      • переменная Заместитель, которая практически постоянна, и меняется вручную в случае ухода в отпуск заместителя. Укажем для нее сотрудника по умолчанию, который утвердит документ в случае отсутствия начальства.
    • Первым добавим действие Выбор сотрудника. В параметрах [dw]укажем[/dw][di][/di], что производим выбор непосредственного начальника для Автора с пропуском отсутствующих.
    • Добавим действие [dw]Изменение переменной[/dw][di]Действие позволяет изменить значения переменных, заданных в настройках шаблона.
      Подробнее…[/di]. В параметрах [dw]укажем[/dw][di][/di], что значение переменной Начальник равно сотруднику, который был выбран действием Выбор сотрудника (форма Вставка значения — Дополнительные результаты — Выбор сотрудника — Выбранный сотрудник).
    • Добавим конструкцию [dw]Условие[/dw][di]Конструкция позволяет направить бизнес-процесс по разным сценариям в зависимости от заданных условий.
      Подробнее…[/di] и создадим в ней 3 ветви. Нумерация условий в действии такая же, как и порядок их выполнения действием: слева направо.
      1. В первой ветке определим условие, при котором, в случае выбора генерального директора, ответственным назначается заместитель. Для этого в самом условии укажем [dw]генерального директора[/dw][di][/di], а после добавим действие Изменение переменной. В нем [dw]укажем[/dw][di][/di], что значение переменной Начальник равно значению переменной Заместитель.
      2. Во второй ветке определим условие, при котором заместитель утверждает документ, в случае отсутствия всего начальства. Для этого в самом условии [dw]укажем[/dw][di].[/di], что значение переменной Начальник должно быть [dw]пустым[/dw][di]Это связанно с особенностью работы действия Выбор сотрудника, которое возвращает пустое значение выбранного сотрудника, если ни один начальник не был выбран (например, все начальство отсутствует).[/di]. Теперь добавим действие Изменение переменной, которое настраивается аналогично предыдущей ветке. После, например для заместителя, добавим уведомление о том, что все начальство отсутствует.
      3. В последней ветке условия мы не меняем сотрудников, в результате у нас значение переменной Начальник [dw]останется равно[/dw][di][/di] результату работы действия Выбор сотрудника.

    В результате шаблон выглядит так:

    Ручной переход по действиям процесса с помощью «Ознакомления с документом»

    В ряде случаев полезно включить в шаблон ручной переход от задания к заданию (например, в целях обучения пользователей работе с созданным бизнес-процессом). С помощью действия [dw]Ознакомление с документом[/dw][di]Действие позволяет создать для выбранных пользователей задание по ознакомлению с документом и возможностью оставить отзыв на него. В ходе выполнения задания ведется вычисление процента ознакомившихся.
    Подробнее…[/di], создадим обязательный шаг переключения бизнес-процесса вручную к следующему исполнителю.

    Как это выглядит в публичной части

    Пример использования действия «Утверждение документа»

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

    Действие [dw]Утверждение документа[/dw][di]Действие позволяет произвести утверждение документа , для которого запущен бизнес-процесс. В зависимости от результата (утвержден документ или нет) возможны 2 варианта развития дальнейших действий.
    Подробнее…[/di] удобно использовать для автоматизации процесса распределения работ. Например, у нас есть задача: необходимо уведомить нескольких сотрудников о наличии работы, которую нужно выполнить. Работа назначается первому сотруднику, который возьмется за ее выполнение. Как только кто-то один берет на себя эту работу, другим она уже не предлагается. В случае, если никто не согласился, процесс повторяется.

    Порядок действий:

    • В данном шаблоне используем [dw]Цикл[/dw][di]Конструкция выполняет свои поддействия до тех пор, пока выполняется заданное условие.
      Подробнее…[/di]. Голосование повторится до тех пор, пока кто-либо из сотрудников не возьмет на себя работу.
    • Остановимся на настройках действия Утверждение документа [dw]подробнее[/dw][di][/di]:
      • В поле Утверждают сотрудники укажем тех сотрудников, которым высылается уведомление.
      • Тип утверждения — выберем [dw]Голосование сотрудников[/dw][di]Можно воспользоваться стандартной функцией и в данном поле указать Любой. Но это крайне непрактично т.к. в нашем примере используется цикл, который вновь и вновь запрашивает действие сотрудника, если тот не утвердит документ. Поэтому сначала надо дать возможность принять решение всем сотрудникам, после чего, при необходимости, повторить утверждение.[/di].
      • Более скольки процентов голосов необходимо для принятия решения — в данном поле укажем 0. Как только любой пользователь из указанных утвердит документ, а в нашем случае согласится взять на себя работу, то голосование прекратится.
      • Ожидать, чтобы проголосовали все указанные сотрудники — укажем Да, таким образом, цикл голосования повториться только после того, как все проголосуют.
    • После того, как сотрудник утвердил документ, ему поставлена Задача. Сотрудника, утвердившего документ, возможно указать используя Дополнительные результаты предыдущего действия с помощью формы Вставка значения.
    • Действие [dw]Изменение переменной[/dw][di]Действие позволяет изменить значения переменных, заданных в настройках шаблона.
      Подробнее…[/di] используется только для того, чтобы контролировать выход из цикла.

    Шаблон полученного процесса:

    Практические задания

    После изучения главы Действия рекомендуем выполнить несколько практических заданий. Выполнять их необходимо на установленной на локальный компьютер [ds]пробной версии Битрикс24 в коробке[/ds][di]В главе описаны предварительные шаги для установки продукта, шаги мастера установки, а также выбор и первоначальная настройка портала для быстрого развертывания своего проекта.

    Подробнее…[/di].

    В начале установки необходимо выбрать [dw]1C-Битрикс24 Корпоративный портал[/dw][di][/di]. Период работы демонстрационной версии составит 30 дней.

    Примечания:

    1. НЕ рекомендуется выполнять задания на работающем, «боевом» портале;
    2. Если вы всё же пытаетесь выполнять задания на работающем портале, где вы не являетесь администратором, то не все задания можно выполнить.

    Практические задания состоят из вопроса, скриншота или видео с конечным результатом и объяснением как это получить в спойлере. Не торопитесь подглядывать в спойлер.

    Практические задания

    Примечание: практические задания предназначены для ознакомления с интерфейсом и получения базовых навыков работы с бизнес-процессами. В заданиях НЕ изучается планирование и создание сложных бизнес-процессов.

    1. Создайте новый процесс с названием Уведомления в Процессах ленты новостей. Добавьте для процесса новый шаблон последовательного бизнес-процесса и действие Сообщение соц. сети. В действии заполните параметры следующим образом:
      • Замените заголовок на свой вариант;
      • Добавьте комментарий;
      • В качестве отправителя укажите Автора, а получателем — группу Администраторы. Добавьте группу через раздел «Категории пользователей» в форме Вставка значения;
      • Напишите текст и отформатируйте его при помощи bb-code, чтобы получился такой результат:

        где текст синим цветом — это ссылка на урок Общие моменты.
    2. Вы уже имеете достаточно навыков работы с бизнес-процессами, поэтому в следующих заданиях не будет пошаговых инструкций. Выбирайте сами, какой текст указывать, какие действия добавлять и какие параметры заполнять. Главное — выполнение бизнес-процессом поставленной задачи. Примеры учебные, простые и непохожи на реальные задачи. Реальные задачи требуют построения сложных процессов и учета большого количества нюансов.

    3. Создайте ещё один новый шаблон последовательного БП (в процессе из первого задания или в любом удобном вам месте). Добавьте и настройте нужные действия так, чтобы бизнес процесс выполнял следующую задачу:
      • Запрашивал информацию у Администраторов, надо ли создавать задачу. Получал ответ Да/Нет, а также пользователя, который будет Ответственным за задачу;
      • В случае, если указано Да, должна быть создана важная задача на указанного пользователя и отправлено уведомление этому пользователю о создании задачи;
      • В случае, если указано Нет, должно быть отправлено уведомление пользователю, запустившему БП, что задачу создавать не нужно;

      Меняйте заголовки действий и добавляйте комментарии, где вам кажется необходимо, для лучшей читаемости шаблона.

    4. Для выполнения этого задания предварительно привяжите к одной Сделке несколько Контактов.
      Теперь с помощью бизнес-процессов реализуйте массовое изменение поля Тип контакта для всех привязанных к Сделке контактов. Указанное поле Контактов должно измениться по запуску БП из Сделки. Новое значение для поля указывает пользователь при ручном запуске БП.

      [dw]Нужна подсказка![/dw][di]1. Для реализации такого сценария понадобится создать два шаблона: один для Контактов и один для Сделки.
      2. Вам пригодятся такие действия, как Итератор и Запуск бизнес-процесса.
      3. Список всех привязанных к сделке Контактов хранится в поле документа Контакты.[/di]

    Распространенные ошибки при работе с бизнес-процессами

    Постараемся не делать ошибок

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

    На каждом физическом сервере в Битрикс24 одновременно работает несколько порталов. Аномальная нагрузка от одного из них негативно влияет на остальные. [dw]Бизнес-процессы[/dw][di]Внимание! Для предотвращения подобных ситуаций были введены технические ограничения количества запущенных экземпляров бизнес процесса на одном документе — не более двух. Это означает, что всего одновременно работающих экземпляров бизнес-процессов может быть много, но на каждый конкретный документ — не более двух.[/di] — одна из причин. В связи с этим, рекомендуется проверить и скорректировать свои бизнес-процессы. При выявлении аномальной нагрузки создаваемой бизнес-процессами, портал блокируется согласно пункту 8.1 [dw]лицензионного соглашения[/dw][di]Лицензионное соглашение с конечным пользователем.
    Подробнее…[/di].

      Распространенные ошибки

    Рассмотрим наиболее распространенные ошибки при проектирование бизнес-процессов, которые увеличивают нагрузку на портал:

    1. Изменения различных полей документа несколькими действиями — достаточно частая [dw]ошибка[/dw][di]Неправильное изменение документа
      [/di]. Конечно, изменять каждое поле документа отдельным действием не запрещено, однако такой подход значительно увеличивает количество выполняемых запросов при работе бизнес-процесса.

       Как правильно: Изменять все необходимые поля документа [dw]одним действием[/dw][di]Правильное изменение документа
      [/di].

    2. Зацикливание — тщательно проверяйте отсутствие зацикливания бизнес-процессов. Особенно при использовании [dw]паузы[/dw][di]В этом случае бизнес процесс не зависнет во время выполнения, а значит ошибку можно не заметить.[/di].

      При запуске бизнес-процесса на создание документа с ошибкой в условии выхода из цикла постепенно накопится большое количество экземпляров бизнес-процесса, запущенных для разных документов. А запуск бизнес-процессов на изменение документа — ещё более опасный вариант. В этом случае очень быстро накапливается большое количество работающих экземпляров бизнес-процесса даже на небольшом количестве документов (один документ может быть изменен большое количество раз).

       Как правильно: Тщательно продумывать и проверять корректность выхода из цикла. По возможности использовать дополнительное условие для выхода из цикла (например, условие выхода по истечению времени).

      Примечание: В некоторых случаях лучше предусмотреть отдельное условие для прерывания цикла. Такое условие обеспечит выход из цикла, даже если основное условие по каким-либо причинам не было выполнено за разумное время/циклы. Приведем пример такого условия: бизнес-процесс [dw]прекращается[/dw][di]Для такого условия понадобится создать новое поле в карточке Лида, в которое будет записываться время
      обработки с помощью действия Изменение документа (вычислением между текущей датой/временем
      и началом цикла. Действие Пауза в выполнении позволит проверять время обработки раз
      в указанный промежуток времени (к примеру, раз в 1 час).

      [/di] после того как время обработки лида становится больше 1000 минут, несмотря на то, что статус лида еще не изменился на нужный (указанный в цикле). Это позволит остановить бизнес-процесс, если он не был обработан в рамках указанного времени (например, по причине увольнения ответственного).

    3. Использование проверки статуса в цикле с паузой — в шаблонах иногда вместо действия [dw]Ожидание стадии сделки[/dw][di]Действие приостанавливает выполнение бизнес-процесса пока не будет достигнута указанная стадия сделки.
      Подробнее…[/di] используют [dw]цикл с паузой[/dw][di][/di]. В этом случае при запуске процесса на создание документа, накапливается большое число запущенных экземпляров шаблона бизнес-процесса, для разных документов. Бизнес-процессы часто поднимаются из Паузы и создают нагрузку, что в определенный момент может привести к неработоспособности проекта.

       Как правильно: Правильнее в таких случаях использовать действие [dw]Ожидание стадии сделки[/dw][di][/di]. В этом случае бизнес-процесс проснется только во время смены статуса документа на нужный, а значит не будет создавать нагрузку все остальное время.

    4. Некорректное использование пауз и заданий — ошибка случается часто для бизнес-процессов, которые запускаются [dw]при изменении документа[/dw][di][/di].

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

       Как правильно: Не использовать действия с паузами или ожиданием в бизнес-процессах, запускаемых на изменение.

    5. Ошибки при работе с Параллельным ожидания действия – очень часто возникают сложности при работе с [dw]этой конструкцией[/dw][di]Конструкция позволяющая направить бизнес-процесс по разным сценариям в зависимости от того, какое из событий наступит раньше.
      Подробнее…[/di]. При ее использовании процесс выполняется по той ветке, которая следует за первой выполненной [dw]Командой[/dw][di]Действие, выполнение которого зависит от пользователей. Для них будет создан соответствующий элемент управления.
      Подробнее…[/di]. Но если ни одна из команд не выполнена, то и процесс зависнет и исполняться дальше не будет. Чтобы такого не происходило, всегда стоит добавлять ветку, содержащую [dw]Паузу в выполнении[/dw][di]Действие позволяет отложить выполнение следующего действия на заданное время.
      Подробнее…[/di]. Таким образом, [dw]бизнес-процесс[/dw][di]Добавление паузы в Параллельное ожидание действия
      [/di] продолжит свое исполнение по истечению указанного в нем времени, даже если ни одна из команд не будет выполнена.

       Как правильно: Использовать действие Пауза в выполнении в конструкции Параллельное ожидание действия.

    Проверьте себя

    Ответьте на несколько вопросов по теме отдельных уроков главы Создание и настройка бизнес-процессов, а также главы Действия, которые помогут вам самим оценить свои знания. Это не тест, это просто проверка того, как вы поняли тему. Удачи!

    Верно ли утверждение?

    Оцените верность утверждения: Верно или Неверно. А потом в спойлере проверьте ваш выбор.

    1 Один и тот же информационный блок может работать сразу в двух режимах:
    в режиме Документооборота и в режиме Бизнес-процессов.

    Верно

    Неверно

    2 Для того, чтобы пользователи могли запускать бизнес-процессы, им нужно установить право доступа к инфоблоку Бизнес-процессы.

    Верно

    Неверно

    3 В списке процессов в ленте Новостей могут быть запущены только те процессы, у которых стоит автоматический запуск При добавлении.

    Верно

    Неверно

    4 Набор доступных действий раздела CRM в визуальном конструкторе различен для каждой сущности CRM. Некоторые отображаются только для Сделок, а некоторые только для Коммерческих предложений, и т.д.

    Верно

    Неверно

    5 В текстовых полях действий, таких как описание задания или текст сообщения, можно применять HTML теги для форматирования текста.

    Верно

    Неверно

    6 Блок Мои действия в конструкторе шаблона БП позволяет сохранять действия вместе с заполненными настройками.

    Верно

    Неверно

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

    Верно

    Неверно

    8 В бизнес-процессах, запускаемых на изменение, не стоит использовать действия с паузами или ожиданием.

    Верно

    Неверно

    Каталог примеров

    В главе приведены примеры использования бизнес-процессов. Посмотреть примеры работ с отдельными действиями можно в разделе Примеры работы с действиями.

    Внимание! Обязательно производите сверку и настройку под себя импортируемых шаблонов бизнес-процессов.

    Список шаблонов для импорта

    Список шаблонов

    В данном уроке для удобства собраны все шаблоны, присутствующие в курсе и доступные для импорта на портал. В других примерах из главы содержатся описания шаблонов бизнес-процессов, которые можно создать самостоятельно по присутствующим в уроках инструкциях. Список имеющихся на данный момент шаблонов:

    • Шаблон бизнес-процесса для обслуживания заявок клиентов. Сложный бизнес-процесс, регламентирующий работу нескольких сотрудников компании и поставщиков по обработке входящего лида.

      Прочитать урок / Скачать шаблон

    • Шаблон бизнес-процесса со статусами по созданию счета для клиента в CRM. Бизнес-процесс включает в работу многих сотрудников компании по формированию счета клиента. Пример включает в себя также настройку полей в CRM и работу с пользовательскими полями.

      Прочитать урок / Скачать шаблон

    • Шаблон бизнес-процесса для последовательного создания задач. Задачи должны создаваться одна за другой, при том что каждая последующая задача должна создаваться только после того, как предыдущий пользователь закончит выполнение своей задачи. Бизнес-процесс включает работу с действием PHP код.

      Прочитать статью на helpdesk.bitrix24.ru / Скачать шаблон

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

      Прочитать урок / Скачать шаблон

    • Шаблон измененного бизнес-процесса Заявление на отпуск. Усложнение заключается в том, что в процесс добавляются 2 периода, во время которых сотрудникам нельзя уходить в отпуск. Если выбранный период пересекается с запрещенным, то процесс автоматически отклоняет заявку.

      Прочитать урок / Скачать шаблон

    • Шаблон измененного бизнес-процесса Исходящие документы. В типовой бизнес-процесс добавляется цикл проверки и утверждения исходящего документа.

      Прочитать урок / Скачать шаблон

    • Шаблон бизнес-процесса для подачи заявки на отпуск. В отличии от типового процесса, работа данного базируется на Универсальных списках.

      Прочитать урок / Скачать шаблон

    Пример бизнес-процесса со статусами по созданию счета для клиента в CRM

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

    Шаблон для ознакомления: Скачать

    Техническое задание

    Составим техническое задание

    ТЗ по созданию счета для клиента на портале:

    1. Менеджер по продажам начинает бизнес-процесс и заполняет поля:

      • Название сделки,
      • Менеджер по продажам,
      • Менеджер по закупкам,
      • Клиент (название),
      • Сумма сделки,
      • Адрес доставки.
    2. Менеджер по закупкам продолжает процесс и заполняет поля:

      • Поставщик (название),
      • Поставщик (контактное лицо),
      • Сумма закупки,
      • Срок поставки от поставщика,
      • Вес отправления,
      • Объем отправления,
      • Адрес отгрузки,
      • Счет от поставщика, опционально (номер и вложение),
      • Договор от поставщика, опционально (номер и вложение).
    3. Менеджер по продажам изучает ответ от менеджера по закупкам.

      Выставление срока поставки для клиента. Сверяются сроки поставки, если срок поставки до клиента равен или > срок поставки до поставщика +5 дней, процесс продолжается, иначе открывается поле комментирования сроков поставки, комментарии обязателен. Заполняются следующие поля:

      • Срок поставки до клиента.
    4. Юрист изучает договор вложенный менеджером по закупке (в случае его наличия) и создает договор для клиента. Заполняются следующие поля:

      • Договор для клиента (номер и вложение),
      • Договор от поставщика, опционально (номер и вложение).
    5. Процесс переходит менеджеру по продажам, согласование договора. Заполняются следующие поля:

      • Договор для клиента (номер и вложение).
    6. Процесс переходит менеджеру по закупкам, согласование договора. Заполняются следующие поля:

      • Договор для клиента (номер и вложение).
    7. Процесс переходит в бухгалтерию — создание и прикрепление счета для клиента. Заполняются следующие поля:

      • Счет для клиента (номер и вложение).
    8. Процесс переходит помощнику руководителя, который должен иметь возможность получить для печати всех документов сделки.

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

      • Счет для клиента (номер и вложение),
      • Договор для клиента (номер и вложение).

    Настройки CRM

    Прежде всего, необходимо произвести настройки в самой CRM. Они будут состоять из нескольких этапов:

      Создание и настройка пользовательских полей

    В качестве основы будем использовать такую сущность CRM, как Сделка. Поэтому первым делом мы создадим и настроим пользовательские поля для карточки сделки согласно ТЗ (CRM > Настройки > Настройки форм и отчетов > Пользовательские поля > Сделка > Список полей).

    Значения по умолчанию для полей устанавливать не будем. Все необходимое будет заполнено автоматически, по мере выполнения процесса.

    В итоге в форме будет всего 2 поля, которые требуют обязательного заполнения: Название (обязательно к заполнению всегда) и Адрес доставки. Остальные поля буду заполнены автоматически, а также посредством выполнения заданий разными участниками процесса.

      Настройка прав доступа

    Укажем пользователей/группы пользователей, которые будут иметь доступ к бизнес-процессам (менеджеры, юрист, бухгалтер и остальные, согласно ТЗ) на странице Права доступа (CRM > Настройки > Права > Права доступа)

    В нашем примере это будет группа Моя компания: Сотрудники, это позволит в дальнейшем, при создании шаблона бизнес-процесса, выбирать в нем любого сотрудника.

    Внимание! В описании далее и самом шаблоне-примере для всех участвующих в процессе сотрудников задан по умолчанию сотрудник с идентификатором 1. Это позволит сразу ознакомиться со всем процессом, не создавая и не настраивая других пользователей.

      Настройка формы создания сделки

    Перейдем к форме создания новой сделки (CRM > Сделки, кнопка Добавить сделку) и произведем ее настройку согласно ТЗ:

    Примечание: Ниже представлены скриншоты устаревшего интерфейса Битрикс24. Актуальную информацию по работе с карточкой CRM смотрите на helpdesk.bitrix24.ru.

    В итоге должны получить следующий вид:

    Создание бизнес-процесса

    Создание бизнес-процесса тоже будет состоять из нескольких этапов:

      Начальные настройки

    Создадим новый шаблон бизнес-процесса со статусами для сделки на странице CRM > Настройки > Роботы и бизнес-процессы > Бизнес-процессы.

    • Укажем в параметрах шаблона, что процесс будет автоматически запускаться при добавлении новой сделки.
    • Создадим новые переменные типа Привязка к пользователю:
      • Менеджер по продажам (*),
      • Менеджер по закупкам (*),
      • Юрист (*),
      • Бухгалтер (*),
      • Логист (*),
      • Помощник руководителя (*).

      Для всех них по умолчанию укажем требуемых сотрудников (в нашем случае это пользователь с идентификатором 1).

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

    • Создадим переменную Адрес портала (*) типа Строка и укажем для нее значение по умолчанию, равное адресу портала.

      Например: http://myportal.com.

      Эта переменная в дальнейшем будет использоваться для формирования ссылок.

    В результате список переменных должен будет выглядеть следующим образом:

    Остальные переменные будут созданы по мере необходимости. Это будут переменные, в которых будут храниться значения полей действия Запрос дополнительной информации. Названия этих переменных пронумерованы, согласно этапу, на котором в них заносятся значения.

    Кроме этого будет использоваться переменная Флаг «Поля Пусты», про которую будет написано ниже.

      Статусы шаблона

    Начальный статус

    Подпроцесс первого статуса начинается с Блока действий.

    Он используется для группировки однотипных действий, которые будут проверять, указаны ли требуемые сотрудники в форме Сделка, а также будут автоматически записывать в пустые поля пользователей из переменных Менеджер по продажам (*), и.т.д. Это позволит автоматизировать заполнение формы, позволяя каждый раз не указывать всех необходимых сотрудников, которые, в большинстве случаем одни и те же.

    Проверка полей состоит в непосредственной проверке поля на то, что оно пустое, и дальнейшей записи в это поле сотрудника из переменной, которая была задана в начале создания шаблона бизнес-процесса (Менеджер по продажам (*), и.т.д.).

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

    Этап 1 — Менеджер по продажам

    Этап начинается с действий по проверке заполнения требуемых от менеджера по продажам полей. Если поле окажется пустым, то будет изменено значение специальной переменная Флаг «Поля пусты» на ДаПараметрах шаблона по умолчанию значение этой переменной задается как Нет).

    После проверки полей идет условие, по которому, если значение переменной Флаг «Поля пусты» равно Да, то сначала значение этой переменной будет сброшено на Нет, а затем Менеджеру по продажам будет выставлено задание, в котором от него потребуется заполнить эти поля. После чего будет произведен опять переход на начало этапа.

    Если же поля окажутся заполнены, то значение переменной Флаг «Поля пусты» будет сброшено на Нет и процесс перейдет на следующий этап.

    Этап 2 — Менеджер по закупкам

    На этом этапе менеджеру будет выставляться задание по заполнению требуемых полей, согласно ТЗ. Для этого будет использоваться действия Запрос дополнительной информации и дополнительные поля (переменные), которые указываются прямо в этом действии. После выполнения задания, значения этих переменных будут сохранены в поля Сделки.

    Также менеджер по продажам будет уведомлен через «Веб-Мессенджер» о том, что менеджер по закупкам заполнил требуемые поля. В сообщении будут указаны значения этих полей и ссылки на Поставщика и приложенные файлы.

    Рассмотрим эти ссылки поподробнее:

    • Для автоматического формирования ссылки на карточку просмотра сделки будет использоваться следующее выражение:
      [url]{=Variable:domain_printable}/crm/deal/show/{=Document:ID}/[/url]

      где {=Variable:domain_printable} будет являться значением переменной Адрес портала (*), которая была ранее задана при создании шаблона бизнес-процесса, а {=Document:ID}Идентификатор сделки, который входит в стандартный набор полей сделки.

    • Для автоматического формирования ссылки на карточку просмотра поставщика будет использоваться следующее выражение:
      [url]{=Variable:domain_printable}/crm/company/show/{=Document:UF_CRM_1369312906}/[/url]

      где {=Document:UF_CRM_1369312906} будет являться значением поля Поставщик (название).

    • Для автоматического формирования ссылки на файл из поля сделки Счет от поставщика будет использоваться следующее выражение:
      [url]{=Variable:domain_printable}/bitrix/components/bitrix/crm.deal.show/show_file.php?ownerId={=Document:ID}&fieldName=UF_CRM_1369315496&fileId={=Document:UF_CRM_1369315496}/[/url]

      где {=Document:UF_CRM_1369315496} будет являться значением поля Счет от поставщика (файл). Также идентификатор этого поля используется для параметра &fieldName=UF_CRM_1369315496 ссылки.

    Этап 3 — Менеджер по продажам

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

    Этап 3а — Комментарий относительно сроков доставки

    На этом этапе сверяются сроки поставки. Если срок поставки до клиента равен или больше срока поставки до поставщика +5 дней, то процесс продолжается, иначе менеджеру по продажам выставляется задание (Ознакомление с документом), в котором он должен будет оставить комментарий по поводу сроков поставки. После чего его комментарий будет записан в сделку.

    Проверка осуществляется следующим образом: если значение поля документа Срок поставки до клиента не меньше чем вычисленное выражение =Dateadd({=Document:UF_CRM_1369314998}, "5d") (где {=Document:UF_CRM_1369314998} — поле сделки Срок поставки от поставщика), то никаких действий выполняться не будет. Во всех остальных случаях менеджеру по продажам будет выставлено задание.

    Этап 4 — Этап 8

    Действия аналогичны действиям 3-го этапа, с той разницей, что задается другой сотрудник и поля, которые ему необходимо заполнить.

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

    Рассмотрим работу с бизнес-процессами на примере создания новости контент-менеджером и утверждение ее администратором информационного портала.

      Администратор

    Действия для пользователей группы «Администраторы»

    • Включить в группу Контент-менеджеры желаемых пользователей;
    • [dw]Настроить инфоблок[/dw][di]Для того, чтобы выбранный инфоблок участвововал в Бизнес-процессах, его необходимо настроить.
      Подробнее…[/di] Новости на работу с бизнес процессами;
    • [dw]Настроить права доступа[/dw][di]Для работы с бизнес-процессами необходимо дать нужные права для групп пользователей.
      Подробнее…[/di] для группы Контент-менеджеры. В нашем случае необходимо выбрать право [dw]Изменение[/dw][di]Не забудьте убедиться, чтобы к этому инфоблоку был доступ у группы Администраторы информационного портала не ниже уровня Бизнес процессы[/di], чтобы менеджеры могли создавать и редактировать элементы инфоблока (новости);
    • На закладке Шаблоны бизнес-процессов [dw]настроить автозапуск[/dw][di]Модуль Бизнес-процессы позволяет автоматически запускать выбранные бизнес-процессы при создании/изменении элемента инфоблока.Подробнее…[/di] бизнес-процесса [dw]Простое утверждение/голосование[/dw][di]При необходимости можно отредактировать или создать новый шаблон процесса (если установлен модуль Дизайнер Бизнес-процессов) Подробнее…[/di] на Создание и Изменение;
    • [dw]Настроить форму создания/изменения элемента инфоблока[/dw][di]При создании/изменении элемента инфоблока пользователь должен указать не только название и другие параметры, относящиеся к контенту, но и все параметры запускаемого бизнес-процесса. Для этого нужно настроить саму форму редактирования элемента инфоблока.
      Подробнее…[/di], если требуется, чтобы в публичной части сайта контент-менеджер смог указать параметры запуска бизнес-процесса.

      Контент-менеджер

    Действия для пользователей группы «Контент-менеджеры»

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

      Администратор инф. портала

    Действия для пользователей группы «Администраторы информационного портала»

    Для публикации новости, созданной контент-менеджером, воспользуемся ссылкой [dw]Перейти к списку заданий[/dw][di][/di] в центре уведомлений или перейдем на страницу Задания (Сервисы > Бизнес-процессы > Задания).

    Посмотрим задание с помощью пункта [dw]меню действий[/dw][di][/di] или дважды кликнув по строке с заданием. В открывшейся форме нажмем кнопку Утвердить документ:

    Задание пропадет из очереди, а новость будет опубликована на сайте.

    Пример создания бизнес-процесса

    Рассмотрим процедуру создания БП на примере алгоритма согласования подотчетных денег.

    Создание нового бизнес-процесса

    Постановка задачи

    Рассмотрим процедуру создания БП на примере алгоритма согласования подотчетных денег. С использованием компонента Бизнес-процесс. Создание БП с использованием других механизмов будет частично выглядеть иначе. Пусть в нашей условной организации согласование подотчетных денег осуществляется следующим образом:

    1. Составляется заявка на выдачу подотчетных денег;
    2. Заявка согласуется с руководителем (или несколькими руководителями). Пусть согласование производится по очереди с двумя заранее известными руководителями;
    3. Оформление заявки в бухгалтерии;
    4. Выдача денег;
    5. Предоставление отчета;
    6. Проверка отчета в бухгалтерии.

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

    Создание бизнес-процесса

    Для создания нового БП нажмите на кнопку Создать новый на странице Бизнес-процессы > Процессы в ленте:

    Нажмите на рисунок, чтобы увеличить

    И заполните форму создания нового БП:

    После сохранения БП автоматически запускается редактор БП и открывается окно основных настроек БП.

    В основных параметрах БП на закладке Параметры с помощью команды Добавить параметр задайте входящие параметры БП: подотчетное лицо, сумма, цель и описание подотчетных денег. Эти параметры должно будет заполнить подотчетное лицо при оформлении заявки (т.е. при запуске экземпляра БП). Приведем ключевые значения полей формы, остальные поля заполните по собственным потребностям:

    • Подотчетное лицо: идентификатор – TargetUser, тип – Привязка к сотруднику.

      Примечание: Создание этого параметра с таким идентификатором нужно для одной единственной цели: правильного отображения имени пользователя создавшего заявку. Технически БП будет работать и без этого параметра.
      В отличие от других параметров использование другого типа идентификатора невозможно, параметр не будет выполнять своей роли.

    • Сумма: идентификатор – Summ, тип – Число, обязательный.
    • Цель: идентификатор – Purpose, тип – Список, обязательный, заполнить поле Варианты значений (закупка материалов, представительские расходы и так далее).
    • Описание: идентификатор – Purpose_text, тип – Текст.

    В итоге имеем:

    Зададим на закладке Доступ права на доступ к БП (Для выбора групп пользователей можно воспользоваться кнопкой рядом с полем ввода):

    • любой сотрудник может запустить экземпляр БП (т.е. подать заявление на подотчетные деньги), а так же может видеть свои заявки (группа Автор);
    • администраторы могут видеть все экземпляры БП и могут управлять ими (группа Администраторы);
    • руководство может видеть все экземпляры БП (группа Руководство).

    После сохранения основных параметров запуска можно начинать создание шаблона БП.

    Создание шаблона бизнес-процесса. Часть1.

    Шаблон БП представляет собой последовательность шагов (действий) от начального к конечному, которые будут выполняться один за другим. Необходимо таким образом и в таком порядке составить шаги (действия), чтобы реализовать нужный нам алгоритм и получить необходимый результат.

    Примечание: В данном типе документа, который используется компонентом «Бизнес-процесс», для каждого документа существует только один БП. Поэтому далее будем считать конкретный запущенный на выполнение экземпляр БП и документ эквивалентными терминами (за исключением того, что по завершении БП уничтожается, а документ сохраняется для истории).

    • Сохраните в документе входящие параметры БП: сумму, цель и описание назначения подотчетных денег. Это необходимо для того, чтобы иметь возможность посмотреть и обработать эти параметры даже после завершения БП.

      Для сохранения параметров разместите в шаблоне БП действие Изменение документа (раздел
      Обработка документа). Это действие позволяет сохранить любую информацию в полях документа таким образом, что к ней всегда можно будет обратиться. Кроме того, это действие позволяет создавать для документа дополнительные поля.

    • Настройте параметры действия (кнопка в правом верхнем углу действия):
      • Измените название документа, которое выводится в списке документов. Допустим необходимо, чтобы документ назывался по шаблону: Подотчетное лицо, цель, сумма подотчетных денег. (Например: Иван Иванов, закупка оборудования, 3800).

        Для этого в окне настройки параметров действия выберите в выпадающем списке поле Название элемента и в качестве значения укажем строку {=Template:TargetUser_printable}, {=Template:Purpose}, {=Template:Summ}. Значения в фигурных скобках — это ссылки на значения входящих параметров БП. Они имеют вид {=Template:КодВходящегоПараметра}.

        Для вставки таких значений проще всего воспользоваться кнопкой рядом с полем ввода. В открывшемся диалоге на закладке Параметры шаблона можно выбрать любой входящий параметр БП.

        Примечание: Обратите внимание, что для входящих параметров, содержащих коды пользователей, их реальные значения можно получить строкой {=Template:КодПараметра} (например, user_1), а их печатные значения — строкой {=Template:КодПараметра_printable} (например, Иван Иванов [1]).

      • Сохраните сразу в документ все входящие параметры БП. Для этого добавьте новое поле (ссылка Добавить условие). Выберите Текст для предпросмотра и в качестве значения укажите ссылку на входящий параметр БП Описание, т.е. строку {=Template:Purpose_text}. Для вставки этой строки нажмите на кнопку рядом с полем ввода и в открывшемся диалоге на закладке Параметры шаблона выберите Описание.
      • Для сохранения параметра Сумма создайте новое поле (так как стандартного поля нет). Используйте ссылку Добавить поле и введите параметры нового поля. Задайте в качестве значения поля Сумма ссылку на входящий параметр БП Сумма, т.е. строку {=Template:Summ}.

    • Сохраните параметры действия Изменение документа.
    • Нажмите на кнопку Применить редактора БП. Теперь в случае возникновения каких-либо проблем не придется начинать конструировать БП с самого начала.

    Вторым шагом выполнения БП задайте установку начального статуса БП. Этот статус выводится в списке документов и служит для указания, на каком этапе согласования подотчетных денег мы находимся.

    • Установите статус с помощью действия Установить текст статуса из раздела Уведомления.

    • Откройте диалог настройки параметров действия Установить текст статуса и укажите в качестве текста статуса значение Согласование.

    Создание шаблона бизнес-процесса. Часть 2.

    Далее согласно алгоритму БП необходимо последовательно согласовать документ у двух руководителей.

    • Для организации согласования перенесите действие Утверждение документа (раздел Задания) под действие Установить текст статуса.
    • Откройте диалог настройки параметров действия и заполните необходимые поля:
    • Сохраните внесенные изменения.

    В момент обработки реальной заявки, когда конкретный экземпляр БП дойдет до шага Утверждение начальником отдела, будет сделано следующее:

    • пользователям, указанным в действии Утверждение начальником отдела, будет выставлено задание утвердить или отклонить заявку;
    • данный экземпляр БП будет поставлен в ожидание (приостановлен), пока кто-либо из указанных пользователей не выполнит задание (утвердит или отклонит заявку);
    • после выполнения задания исполнение экземпляра БП будет продолжено в соответствии с алгоритмом БП.

    В случае, если первый этап согласования не будет пройден (т.е. документ будет отвергнут), выполнение БП пойдет по ветке, обозначенной словом Нет.

    • Разместите в этой ветке действие Сообщение соц.сети с сообщением для подотчетного лица об отклонении.
      • При заполнении поля Отправитель сообщения нажмите на кнопку рядом с полем ввода и на закладке Дополнительные результаты открывшегося диалогового окна выберем подпункт Последний голосовавший пункта Утверждение начальником отдела. Таким образом сообщение будет отправлено от имени того пользователя, который отклонил согласование подотчетных денег.
      • В качестве получателя сообщения укажите подотчетное лицо, т.е. значение {=Template:TargetUser}.

    • Установите в этой ветке текущий статус БП с помощью действия Установить текст статуса в значение Отклонено.

    • Нажмите на кнопку Применить редактора БП. Теперь в случае возникновения каких-либо проблем нам не придется начинать конструировать БП с самого начала.

    Если первый этап согласования будет успешно пройден, выполнение БП пойдет по ветке, обозначенной словом Да.

    • Разместите в этой ветке действие Утверждение документа для второго этапа согласования.
    • Настройте параметры действия аналогично первому этапу согласования с учетом того, что это – второй этап. В частности утверждать может уже другая группа пользователей или конкретный пользователь, скажем Главный бухгалтер.
    • В ветке Нет второго этапа согласования разместите действие Сообщение соц.сети с сообщением для подотчетного лица об отклонении. Кроме того установим в этой ветке текущий статус БП с помощью действия Установить текст статуса в значение Отклонено.

    Если выполнение БП пойдет по ветке Да второго этапа согласования, то это означает, что подотчетные деньги согласованы у обоих руководителей. В этом случае можно оформлять их в бухгалтерии.

    Создание шаблона бизнес-процесса. Часть 3.

    Обработка заявки в бухгалтерии.

    • Разместим в ветке Да второго этапа согласования действие Сообщение соц.сети с сообщением для подотчетного лица об согласовании подотчетных денег.
    • Установите текущий статус БП с помощью действия Установить текст статуса в значение Согласовано.

    Далее согласно алгоритму нашего БП необходимо оформить заявку в бухгалтерии.

    • Добавьте действие Ознакомление с документом из раздела Задания.
    • Откройте свойства действия Ознакомление с документом и заполните необходимые поля:
      • в поле Заголовок запишите значение Оформление в бухгалтерии;
      • в поле Ознакомить пользователей выберите с помощью кнопки пользователя или группу пользователей, которые являются бухгалтерами (например, группы Администраторы и Бухгалтерия);
      • в поле Название задания введите строку: Оформление подотчетных денег для {=Template:TargetUser_printable}, {=Template:Purpose};
      • в поле Описание задания введите текст:
        Необходимо оформить согласованные подотчетные деньги
        
        Сотрудник: {=Template:TargetUser_printable}
        Сумма: {=Template:Summ}
        Цель: {=Template:Purpose}
        
        Описание:
        {=Template:Purpose_text}
      • в поле Должны ознакомится выберите значение Любой сотрудник;
      • в поле Устанавливать текст статуса выберите значение Нет;
      • в поле Текст кнопки в задании введите значение Подотчетные деньги оформлены;
      • в поле Период утверждения значение оставьте незаполненным (т.е. БП будет дожидаться ознакомления бесконечно долго).
    • Установите текущий статус БП в значение Деньги даны в подотчет (действие Установить текст статуса).
    • Нажмите на кнопку Применить редактора БП. Теперь в случае возникновения каких-либо проблем нам не придется начинать конструировать БП с самого начала.

    Далее, согласно алгоритму нашего БП, необходимо запросить отчет у подотчетного лица.

    • Используйте действие Запрос дополнительной информации (раздел Задания).
    • Откройте параметры действия и заполните необходимые поля:
      • в поле Заголовок запишите значение Отчет подотчетного лица;
      • в поле Заполняют сотрудники выберите с помощью кнопки подотчетное лицо из входящих параметров БП ({=Template:TargetUser});
      • в поле Название задания введите строку Отчет по подотчетным деньгам, {=Template:Purpose};
      • в поле Описание задания введите текст:
        Необходимо отчитаться по подотчетным деньгам
        Сумма: {=Template:Summ}
        Цель: {=Template:Purpose}
        Описание:
        {=Template:Purpose_text}.
      • Затем с помощью ссылки Добавить поле.. необходимо добавить поле, в которое подотчетное лицо введет отчет об использовании денег.

    • Сохраните внесенные изменения.

    Следующим шагом сохраним отчет подотчетного лица в документе.

    • Воспользуйтесь действием Изменение документа.
    • В окне настройки параметров действия выберите в выпадающем списке поле Текст для просмотра и в качестве значения укажите строку {=Variable:report}. Значение в фигурных скобках — это ссылка на переменную БП, которая устанавливается действием Отчет подотчетного лица.
    • Сохраните внесенные изменения.
    • Установите текущий статус БП в значение Отчет (действие Установить текст статуса).

    Далее обеспечим возможность бухгалтерии ознакомиться с отчетом подотчетного лица.

    • Добавьте действие Ознакомление с документом.
    • Откройте свойства действия Ознакомление с документом и заполните необходимые поля:
      • в поле Заголовок запишем значение Оформление в бухгалтерии;
      • в поле Ознакомить пользователей выберем с помощью кнопки пользователя или группу пользователей, которые являются бухгалтерами (например, группы Администраторы и Бухгалтерия);
      • в поле Название задания введем строку Отчет подотчетного лица {=Template:TargetUser_printable}, {=Template:Purpose};
      • в поле Описание задания введем текст:
        "Отчет по подотчетным деньгам
        
        Сотрудник: {=Template:TargetUser_printable}
        Сумма: {=Template:Summ}
        Цель: {=Template:Purpose}
        
        Описание:
        {=Template:Purpose_text}
        
        Отчет:
        {=Document:DETAIL_TEXT}";
      • в поле Должны ознакомиться выберем значение Любой сотрудник;
      • в поле Устанавливать текст статуса выберем значение Нет;
      • в поле Текст кнопки в задании введем значение Оформлено;
      • в поле Период утверждения значение оставим незаполненным.
    • Установите текущий статус БП в значение Завершено.

    Получили готовый шаблон БП

    Проверка работы

    При создании элемента бизнес-процесса нам нужно будет настроить его параметры.

    Обратите внимание, что параметр Подотчетное лицо не показывается. Параметр с кодом TargetUser устанавливается автоматически в значение, равное коду текущего пользователя.

    После заполнения параметров и отправки формы будет запущен новый экземпляр БП (документ).

    Примечание: Если по этому новому экземпляру БП для сотрудника, создавшего БП, сразу есть задание (т.е. он является одним из тех, кто осуществляет согласование на первом этапе), то он будет автоматически переправлен на страницу этого задания.

    Далее экземпляр БП будет выполняться в соответствии с созданным БП:

    • будут выставляться задания указанным пользователям;
    • меняться статусы согласования подотчетных денег.

    Конечным состоянием нашего экземпляра БП, которого он достигнет после выполнения определенного числа шагов, будет либо статус Отклонено (в случае отклонения заявки на одном из этапов согласования), либо статус Завершено (в случае одобрения заявки на обоих этапах согласования).

    В случае изменения БП это изменение будет воздействовать только на вновь созданные экземпляры БП.

    Пример динамического назначения прав на документ

    Рассмотрим пример динамического изменения прав на документ по мере выполнения бизнес-процесса на базе списков (Сервисы > Списки).

      О правах

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

    Особенности назначения прав в системе

    Если для документа используется [dw]упрощенная[/dw][di]Простой режим настройки прав доступа к инфоблоку — это режим, когда опция Расширенное управление правами отключена, а в секции Доступ для групп пользователей перечислены все имеющиеся у вас в системе группы пользователей.
    Подробнее…[/di] (старая) версия прав, то они устанавливаются жестко извне (настройки доступа к инфоблокам/спискам/и т.д.). Единственный вариант, позволяющий устанавливать права прямо из бизнес-процесса — это установка для документа права бизнес-процессы извне (права на сам документ). В этом случае с помощью закладки Доступ или действия Установка прав можно менять права по ходу выполнения процесса.

    Если используются [dw]расширенные права[/dw][di]Расширенный режим позволяет настроить права доступа не только целиком ко всему инфоблоку, но и гибко задать права на отдельные его разделы и элементы.
    Подробнее…[/di] доступа, то из бизнес-процесса можно только добавлять новые права на документ, которые будут оставаться у документа даже после выполнения процесса. Переопределить права, которые были установлены извне, внутри бизнес-процесса нельзя.

      Пример БП

    Создадим простой пример бизнес-процесса:

    • По умолчанию, укажем в настройках списка для определенной группы пользователей, в которую входит необходимый нам сотрудник, право на [dw]Добавление[/dw][di]Это право подразумевает, что пользователь из этой группы может создать новый элемент списка,
      но не может просматривать или редактировать его. Поэтому сразу после создания такого
      элемента, он даже не будет отображаться в общем списке.

      [/di];

    • Создадим простой [dw]последовательный шаблон[/dw][di]Последовательный бизнес-процесс — действия выполняются одно за другим от точки входа до точки выхода.
      Подробнее…[/di] бизнес-процесса (в списке выбираем Действия > Настроить бизнес-процессы), который будет запускаться при создании элемента списка.
      • Добавим действие [dw]Утверждение документа[/dw][di]Действие позволяет произвести утверждение документа, для которого запущен бизнес-процесс.
        Подробнее…[/di]. В поле Утверждают сотрудники укажем нашего [dw]пользователя[/dw][di]В данном случае это будет Автор, т.к. процесс все равно рассчитан на определенного пользователя,
        который и должен создавать элемент списка)

        [/di]. Это действие носит демонстрационный характер и позволит [dw]управлять сценарием[/dw][di]Утверждение документа, в нашем случае, позволит реализовать изменение сценария назначения прав, в зависимости от того, будет ли утвержден или отклонен документ.[/di] выполнения бизнес-процесса.

      • В ветку положительного утверждения документа добавим действие [dw]Установка прав[/dw][di]Действие позволяет устанавливать права на доступ к документу.
        Подробнее…[/di]. Отметим в нем опцию Перезаписать и укажем нужного пользователя для операции [dw]Право на операцию «Чтение» имеют[/dw][di][/di].

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

      • Добавим еще одно действие Утверждение документа. Назначение и настройки будут полностью аналогичны первому.
      • В ветку положительного утверждения документа добавим действие Установка прав. Отметим опцию Перезаписать и укажем нужного пользователя для операции [dw]Право на операцию «Полный доступ» имеют[/dw][di][/di].

        Таким образом, пользователь теперь имеет право на изменение созданного им, и ранее доступного только на чтение, элемента списка.

    В результате получится такая схема:

      Работа БП

    Как работает наш бизнес процесс

    Требуемый пользователь создает элемент списка, который не будет для него сразу отображаться:

    После будет создано первое задание бизнес-процесса по утверждению документа:

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

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

    Примечание: Если в первый раз отклонить утверждение, то пользователь не будет обладать правом на чтение и не сможет увидеть в списке созданный им элемент. Запрос на утверждение придет во второй раз. Если утверждение выполнено, то пользователь сразу сможет читать и изменять документ, так как он будет обладать правом полный доступ.

    Использование пользователя в бизнес-процессе

    Выбираем пользователя

    Рассмотрим пример на основе списков (Сервисы > Списки):

    • При создании нового элемента списка мы указываем пользователя в соответствующем поле. Этот пользователь будет использован в бизнес-процессе.
    • После запуска бизнес-процесса пользователь из этого поля будет передан в переменную. Затем от его имени будет отправлено [dw]уведомление автору[/dw][di]Нажмите на рисунок, чтобы увеличить[/di].

    Для этого:

    • Создадим в списке новое поле [dw]Пользователи[/dw][di][/di] типа привязка к сотруднику. Поле множественное не отмечаем;
    • Создадим простой [dw]последовательный шаблон[/dw][di]Последовательный бизнес-процесс — действия выполняются одно за другим от точки входа до точки выхода.
      Подробнее…[/di] бизнес-процесса, который будет запускаться при создании элемента списка.

    В результате получится такой простой шаблон:

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

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

    Рассмотрим простой пример, когда на утверждение документа отводится определенное время. Если документ не утвержден за указанное время (например, 10 минут с момента создания), то после выполнения задания пользователю будет выслано соответствующее уведомление.

    Важно! Бизнес процесс выполняется на [dw]хитах[/dw][di] Под термином хит понимается одна загрузка страницы. Переход по ссылке на сайте и загрузка страницы приводит к генерации хита. Перезагрузка страницы с помощью F5 или Ctrl+F5 генерирует хит. Обращение к несуществующей странице (404 ошибка) также генерирует хит.
    Подробнее…[/di], поэтому для точности выполнения процесса по времени на портале обязательно должны быть хиты.

    Пример посмотрим на базе списков (Сервисы > Списки) для одного единственного пользователя:

    • Создадим простой [dw]последовательный шаблон[/dw][di]Последовательный бизнес-процесс — действия выполняются одно за другим от точки входа до точки выхода.
      Подробнее…[/di] бизнес-процесса (в списке выбираем Действия > Настроить бизнес-процессы), который будет запускаться при создании элемента списка;
    • В Параметрах шаблона создадим первую [dw]переменную[/dw][di]Переменные используются для временного хранения данных, необходимых для выполняемого процесса. Значения переменных хранятся до тех пор, пока выполняется бизнес-процесс. После его завершения они все стираются.
      Подробнее…[/di] с названием Окно утверждения (идентификатор укажем date) типа число. В поле Значение по умолчанию укажем [dw]количество минут[/dw][di][/di] (в нашем случае 10) на утверждение документа;
    • Там же создадим вторую переменную [dw]Вычисленная дата[/dw][di][/di] (название идентификатора c_date) типа Дата/Время. В эту переменную будет сохранена крайняя дата/время, относительно даты создания документа. После этого срока считается, что утверждение документа выполнено не вовремя;
    • Добавим первое действие [dw]Изменение переменных[/dw][di]Действие позволяет изменить значения переменных, заданных в настройках шаблона.
      Подробнее…[/di], в котором для переменной Вычисленная дата произведем расчет крайней даты/времени по [dw]формуле[/dw][di]Подробнее про функцию dateadd, выбор других интервалов времени (час, день, год) и вычисление значений выражений можно посмотреть в уроке
      Вычисление значений выражений в параметрах действий[/di] :
      =dateadd({=Document:DATE_CREATE}, {=Variable:date_printable} & "minutes")
    • Следующим добавим действие [dw]Утверждение документа[/dw][di]Действие позволяет произвести утверждение документа, для которого запущен бизнес-процесс.
      Подробнее…[/di]. В поле Утверждают сотрудники укажем [dw]Автор[/dw][di]В нашем простом примере автор-создатель элемента списка и будет утверждать документ.[/di];
    • После утверждения документа добавим конструкцию [dw]Условие[/dw][di]Конструкция позволяет направить бизнес-процесс по разным сценариям в зависимости от заданных условий.
      Подробнее…[/di]:
      • Левую ветку условия мы настроим так, чтобы значение переменной Вычисленная дата было больше чем {=System:Now};
      • Подробнее про {=System:Now}

      • Правую ветку условия мы настроим так, чтобы в поле Тип условия было указано значение [dw]Истина[/dw][di][/di], т.е. ветка условий будет выполняться [dw]всегда[/dw][di]В нашем случае это используется для того, чтобы процесс продолжил свое выполнение дальше, если условие левой ветки не выполнится.[/di];
      • После условия в правой ветке идет действие Уведомление пользователя. Оно будет оповещать Автора о том, что он не уложился с утверждением документа в срок.

      Ветки условия выполняются слева направо, поэтому в первую очередь будет проверено, что утверждение уложилось в указанные временные рамки, в остальных же случаях (Истина) утверждение будет считаться не уложившимся.

    В результате получится такая схема шаблона:

    Документация по теме:

    • Форма «Вставка значения»
    • Вычисление значений выражений в параметрах действий

    Установка времени клиента в документе CRM

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

      О примере

    Задача: Имеется шаблон документа CRM. В документе, создаваемом по этому шаблону, требуется указание даты и времени создания документа с учетом местного часового пояса (отличается от времени на сервере).

    Посмотрим простой пример, как указать местное время. Использовать будем действие [dw]Создание документа CRM[/dw][di]Действие создаёт документ CRM.

    Подробнее…[/di] в бизнес-процессах Сделок и значение {=System:NowLocal} (текущая дата со временем клиента с учётом часового пояса).

    Темы, которые затрагиваются в примере (без знания этих тем пример может быть непонятен):

    • Битрикс24: Документы CRM и Шаблоны документов;
    • Битрикс24: работа со сделками в CRM.

    Примечание: На время также влияют настройки [dw]главного модуля[/dw][di]Форма Настройки модуля служит для управления глобальными настройками как сайта в целом, так и каждого модуля в отдельности.

    Подробнее в пользовательской документации.[/di] (Настройки > Настройки продукта > Настройки модулей > Главный модуль, закладка Настройки, секция Часовые пояса).

      Создание шаблона БП

    1. Для примера создадим специальный [dw]тестовый шаблон[/dw][di][/di] документа, в котором укажем одну строку с текстом и полем, куда будет подставляться время в определенном формате:
      Время создания документа: {DocumentCreateTime~d.m.Y H:i} (где d.m.Y H:i — форматирование даты).

    2. Перейдем к созданию шаблона последовательного бизнес-процесса для Сделок (CRM > Настройки > Роботы и бизнес-процессы > Бизнес-процессы, шаблоны для Сделок). Создадим переменную типа Дата/время;

    3. Добавим три действия в шаблон:

      • Изменение переменных — укажем в форме Вставка значения, что значение переменной равно локальному времени через [dw]список[/dw][di]Нажмите на рисунок, чтобы увеличить[/di] или [dw]вручную[/dw][di][/di] {=System:NowLocal};

        Примечание: в этом действии впоследствии удобно модифицировать переменную. К примеру, прибавить или убавить время / дни.

      • Создание документа CRM — выберем наш тестовый шаблон документа и в конце формы настроек добавим поле DocumentCreateTime. В качестве значения укажем переменную;

      • Сообщение соц. сети — в этом примере используем только в качестве способа вывода полного значения даты / времени для информации. Позже сверим его с отформатированным значением в созданном документе.

    4. Шаблон БП готов. Сохраним его и перейдем к проверке. Для этого откроем любую сделку и запустим на выполнение бизнес-процесс.

      Результаты

    В результате выполнения бизнес-процесса создастся документ CRM для сделки и появится уведомление. В уведомлении мы увидим полное значение даты / времени по местному времени:

    В созданном документе CRM это же значение в отформатированном варианте:

    Пример использования бизнес-процессов и списков

    В данном уроке будет рассмотрен пример создания сервиса сбора и размещения заявок на закупку согласно ТЗ на корпоративном портале.

    Техническое задание

    Постановка технического задания

    ТЗ по размещению заявок на закупку на корпоративном портале.

    1. Общие требования к функционалу:
      1. Требуется создать область для размещения, обработки и хранения заявок на закупку. Заявка на закупку представляет собой карточку, состоящую из набора именованных полей определенного типа. Заявка на закупку также может содержать неограниченное количество файлов (а может и не содержать ни одного).
      2. Любой пользователь (входящий в определенную группу доступа) может создать заявку на закупку. Данный пользователь в дальнейшем рассматривается как автор заявки.
      3. В дальнейшем, никакой программной обработки заявок не производится.
    2. Требования к работе с данными:
      1. Заявка состоит из следующих полей (символом ‘*’ отмечены поля, обязательные к заполнению):
        1. Тип закупки* (выбор из списка: «менее 100.000 руб», «100.000 руб и более»)
        2. Предмет закупки* (строка)
        3. Стоимость, руб (целое число)
        4. Обоснование* (многострочное поле)
        5. Выбранный поставщик* (строка)
        6. Потенциальные поставщики* (многострочное поле)
        7. Статус закупки* (выбор из списка: «на согласовании», «одобрена», «отклонена»).
        8. Инициатор* (автор заявки)
          Желательно, чтобы это поле заполнялось автоматически при вводе заявки.
        9. Непосредственный руководитель* (выбор из списка пользователей)
          Желательно, чтобы это поле заполнялось автоматически при вводе заявки.
        10. Бюджетный контролер* (выбор из списка пользователей)
          Желательно, чтобы выбор производился из ограниченного списка пользователей
        11. Юрист* (выбор из списка пользователей)
          Желательно, чтобы выбор производился из ограниченного списка пользователей
        12. Главный бухгалтер* (выбор из списка пользователей)
          Желательно, чтобы это поле заполнялось автоматически при вводе заявки.
        13. Финансовый директор* (выбор из списка пользователей)
          Желательно, чтобы это поле заполнялось автоматически при вводе заявки.
      2. Пользователи должны иметь возможность редактировать свои (и, в отдельных случаях, чужие) заявки. При этом в системе должны сохраняться: дата и время создания, дата и время изменения, автор и автор последнего изменения.
      3. Любой пользователь (п 1.2) должен иметь доступ к списку заявок, автором которых он является. Доступ к списку заявок, созданных другими пользователями, должен быть предоставлен только пользователям – членам определенной группы (как на чтение, так и на редактирование). Допускается разделение доступа на уровне интерфейса
      4. Область просмотра заявок должна представлять собой таблицу. Колонки таблицы соответствуют полям заявки.
        1. В рамках области просмотра должны быть представлены следующие поля (в указанном порядке)
          • Дата создания
          • Тип закупки
          • Предмет закупки
          • Стоимость, руб
          • Инициатор
          • Выбранный поставщик
        2. В таблице должна быть представлена группировка/сортировка по статусу закупки.
        3. Интерфейс должен предоставлять фильтрацию по значению полей заявок (как минимум: выбор значения фильтра из списка возможных значений), по любому полю, если его тип отличен от «многострочный текст».
        4. Дополнительные требования (желательно). Пользователь с правами конфигуратора системы должен иметь возможность (не прибегая к средствами разработки PHP):
          • Создавать другие представления данных, подходящие под описание п. 2.4, с произвольным набором полей, сортировок, группировок, фильтров.
          • Проводить массовые операции с заявками (например – удаление всех заявок, отвечающих критериям определенного фильтра).
          • Создавать новые типы закупки и настраивать доступность полей в зависимости от типа.
          • Редактировать состав полей заявки.
    3. Прочие требования:
      1. Необходимо предусмотреть функционал оповещений – пользователи, входящие в определенную группу, должны получать оповещения о внесении любых изменений в какую-либо заявку. Оповещение должно содержать значения всех полей заявки.
      2. В качестве групп пользователей, упомянутых в данных требованиях, должна быть возможность использовать ранее созданные группы портала (которые используются для предоставления доступа к другим ресурсам).

    Подготовка списка и его настройка

    Подготавливаем и настраиваем список

    Согласно условиям ТЗ наиболее подходящим под нашу задачу будет функционал [dw]Универсальные списки[/dw][di]Универсальные списки — инструмент для удобного хранения и работы с любой структурированной информацией.
    Подробнее в курсе Администратор сервиса Битрикс24 (коробочная версия)[/di].

    Подготовка списка и его настройка

    В нашем примере мы будем работать со списками продукта «Битрикс24 в коробке» (Сервисы > Списки).

    Нажмите на рисунок, чтобы увеличить

    • Создадим новый список с [dw]поддержкой бизнес-процессов[/dw][di][/di] и произведем настройку подписей. Разделы мы использовать не будем, поэтому оставляем их как есть.

    • Добавим поля согласно ТЗ: во вкладке Действия выбираем [dw]Настроить поля[/dw][di][/di]. В открывшемся окне — . Не забудем отметить нужные поля, как обязательные к заполнению.

    Примеры настройки поля типа список

    В обязательных полях, которые будут заполняться автоматически, установим в поле Значение по умолчанию текст-пояснение:

    Примечание: Такими полями будут Инициатор, Непосредственный руководитель, Главный бухгалтер, Финансовый директор.

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

    По ТЗ не требуется выбор пользователей системы, поэтому укажем требуемых сотрудников текстом с использованием поля типа Cписок:

    Примечание: Такими полями будут Бюджетный контролер, Юрист.

    Результат создания нами полей, согласно ТЗ, мы увидим в виде [dw]списка[/dw][di][/di].

    Теперь форма создания [dw]новой заявки[/dw][di][/di] будет иметь вид:

    Настройка внешнего вида и доступа для списка

    Настраиваем список

    Теперь настроим внешний вид отображения области просмотра заявок в соответствии с техническим заданием, а также установим права доступа к списку.

    Настройка внешнего вида списка и фильтра

    Настройка прав доступа к списку

    Перейдем опять к настройке списка на закладку Доступ и укажем права доступа [dw]следующим образом:[/dw][di][/di]

    • Bitrix24: Все сотрудники отдела с подотделамиДобавление (только сотрудники требуемой группы смогут добавлять заявки);
    • АвторИзменение (право на просмотр/изменение своих заявок будет у автора, разные авторы смогут видеть и редактировать только свои заявки);
    • Ответственный сотрудникИзменение (читать и изменять любые заявки сможет сотрудник, ответственный за сервис).

    Создание бизнес-процессов

    Для работы с заявками мы создадим [dw]2 шаблона[/dw][di][/di] последовательных бизнес-процессов (Бизнес-процессы > Процессы в ленте, кнопка Создать новый). Один будет запускаться при создании заявки, а второй — при ее изменении.

      БП для создания заявки на закупку

    Произведем настройку параметров шаблона:

    Перейдем к непосредственному созданию шаблона бизнес-процесса:

    • В основную область конструктора бизнес-процессов добавим действие [dw]Выбор сотрудника[/dw][di]Действие позволяет в автоматическом режиме выбрать сотрудника для дальнейшего использования его в процессе.

      Подробнее…[/di] для вычисления начальника для автора, чтоб в будущем записать его имя в заявку автоматически.

    • Добавим [dw]действие[/dw][di]Команда — действие, выполнение которого зависит от пользователей. Для них будет создан соответствующий элемент управления.
      Подробнее…[/di] Изменение документа, которое будет [dw]записывать[/dw][di]После выполнения этого действия в заявку будут автоматически внесены требуемые пользователи и статус, не зависимо от того, что было указано при ее заполнении.[/di] нужные поля в карточке заявки. Заполним [dw]форму[/dw][di][/di].
      • Статус закупки — указываем на согласовании. Это поможет избежать ошибки, если сотрудник при заполнении заявки укажет иной статус.
      • Инициатор — с помощью формы Вставка значения в секции Пользователи выберем Автор.
      • Непосредственный руководитель — с помощью формы Вставка значения в секции Дополнительные результаты выберем результат [dw]Выбранный сотрудник[/dw][di] [/di] действия Выбор начальника.
      • Для полей Главный бухгалтер и Финансовый директор с помощью формы Вставка значения укажем соответствующие им переменные.
    • Добавим действие [dw]Сообщение соц.сети[/dw][di]Действие, которое позволяет отправить уведомление о событии указанному пользователю/группе
      пользователей через модуль социальной сети.

      Подробнее…[/di], которое будет отправлять уведомление сотруднику, ответственному за сервис заявок о том, что создана новая заявка. Также в сообщении будут указаны значения всех полей заявки.

    В итоге получим такую схему шаблона бизнес-процесса:

      БП для изменения заявки на закупку

    Сначала настроим параметры шаблона:

    Теперь перейдем к созданию шаблона бизнес-процесса:

    • В основную область конструктора бизнес-процессов добавим действие Сообщение соц.сети, которое отправит уведомление сотруднику, ответственному за заявки, о том, что заявка изменена. Также в сообщении будут указаны новые значения всех полей заявки;

    • Добавим конструкцию [dw]Условие[/dw][di]Конструкция Условие позволяет направить бизнес-процесс по разным сценариям в зависимости от заданных условий.
      Подробнее…[/di] и создадим 3 ветки условия: Одобрена, На согласовании, Отклонена. Это позволит отправлять автору разные сообщения о статусе его заявки;
    • Настроим условие [dw]Одобрена[/dw][di][/di]. Для этого в поле Поле документа укажем, что условие будет выполняться, если статус закупки будет равен одобрена;
    • Аналогичным образом настроим условия для остальных вариантов статуса закупки;
    • Добавим действие Сообщение соц.сети в ветки условий Одобрена и Отклонена. Тем самом мы будем оповещать автора о том, что заявка на закупку после ее изменения перешла в эти статусы.

    • Настроим действие Сообщение соц.сети для ветки условия Одобрена:

    • Аналогично настроим действие и для ветки условия Отклонена, изменив лишь часть текста сообщения.

    В итоге наша схема шаблона бизнес-процесса выглядит так:

    Пример бизнес-процесса со статусами по созданию счета для клиента в CRM

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

    Техническое задание

    Постановка технического задания

    Рассмотрим [dw]пример[/dw][di]В примере подразумевается, что составитель бизнес-процесса знаком с CRM и бизнес-процессами со статусами.[/di] бизнес-процесса со статусами по созданию счета для клиента в CRM согласно ТЗ.

    ТЗ по созданию счета для клиента на корпоративном портале:

    1. Менеджер по продажам начинает бизнес-процесс и заполняет поля:

      • Название сделки,
      • Менеджер по продажам,
      • Менеджер по закупкам,
      • Клиент (название),
      • Сумма сделки,
      • Адрес доставки.
    2. Менеджер по закупкам продолжает процесс и заполняет поля:

      • Поставщик (название),
      • Поставщик (контактное лицо),
      • Сумма закупки,
      • Срок поставки от поставщика,
      • Вес отправления,
      • Объем отправления,
      • Адрес отгрузки,
      • Счет от поставщика, опционально (номер и вложение),
      • Договор от поставщика, опционально (номер и вложение).
    3. Менеджер по продажам изучает ответ от менеджера по закупкам.

      Выставление срока поставки для клиента. Сверяются сроки поставки, если срок поставки до клиента равен или > срок поставки до поставщика +5 дней, процесс продолжается, иначе открывается поле комментирования сроков поставки, комментарии обязателен. Заполняются следующие поля:

      • Срок поставки до клиента.
    4. Юрист изучает договор вложенный менеджером по закупке (в случае его наличия) и создает договор для клиента. Заполняются следующие поля:

      • Договор для клиента (номер и вложение),
      • Договор от поставщика, опционально (номер и вложение).
    5. Процесс переходит менеджеру по продажам, согласование договора. Заполняются следующие поля:

      • Договор для клиента (номер и вложение).
    6. Процесс переходит менеджеру по закупкам, согласование договора. Заполняются следующие поля:

      • Договор для клиента (номер и вложение).
    7. Процесс переходит в бухгалтерию — создание и прикрепление счета для клиента. Заполняются следующие поля:

      • Счет для клиента (номер и вложение).
    8. Процесс переходит помощнику руководителя, который должен иметь возможность получить для печати всех документов сделки.

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

      • Счет для клиента (номер и вложение),
      • Договор для клиента (номер и вложение).

    Шаблон для ознакомления: Скачать

    Настройки CRM

    Сначала выполним настройки в самой CRM.

      Пользовательские поля

    Создание и настройка пользовательских полей

    В качестве основы будем использовать такую сущность CRM, как Сделка. Поэтому первым делом мы создадим и настроим [dw]пользовательские поля[/dw][di]Пользовательские поля — параметры элементов CRM, создаваемые сотрудниками.
    Подробнее…[/di] для карточки сделки согласно ТЗ (CRM > Настройки > Настройки форм и отчетов > Пользовательские поля > Сделка > Список полей).

    Настроенные пользовательские поля CRM

    В форме будет всего 2 обязательных поля: Название и Адрес доставки. Остальные поля буду заполнены автоматически, а также при выполнении заданий разными участниками процесса.

      Настройка прав доступа

    Укажем, кто будет иметь доступ к бизнес-процессам (менеджеры, юрист, бухгалтер и остальные, согласно ТЗ) на странице Права доступа (CRM > Настройки > Права > Права доступа)

    В нашем примере используем группу Моя компания: Сотрудники. Это позволит выбирать любого сотрудника при создании нового шаблона бизнес-процесса.

    Внимание! В описании и шаблоне-примере для всех сотрудников в процессе задан по умолчанию сотрудник с идентификатором 1. Это позволит сразу ознакомиться со всем процессом, не создавая и не настраивая других пользователей.

      Настройка формы создания сделки

    Настройка формы создания сделки

    Перейдем к форме создания новой сделки (CRM > Сделки) и произведем ее настройку согласно ТЗ.

    Результат настройки формы

    Создание бизнес-процесса

    Создадим новый шаблон бизнес-процесса со статусами для сделки (CRM > Настройки > Роботы и бизнес-процессы > Бизнес-процессы) и настроим его параметры.

      Начальные настройки

    • Укажем в параметрах шаблона, что процесс будет автоматически запускаться при добавлении новой сделки.
    • Создадим новые [dw]переменные[/dw][di]Эти переменные будут использоваться для автоматического внесения требуемых сотрудников в карточку сделки, а так же позволят заменять сразу по всему бизнес-процессу отсутствующих сотрудников, например, ушедшего в отпуск юриста.[/di] типа [dw]Привязка к пользователю[/dw][di][/di]:
      • Менеджер по продажам (*),
      • Менеджер по закупкам (*),
      • Юрист (*),
      • Бухгалтер (*),
      • Логист (*),
      • Помощник руководителя (*).

      Для всех по умолчанию укажем требуемых сотрудников (в нашем случае это пользователь с идентификатором 1).

    • Создадим переменную [dw]Адрес портала (*)[/dw][di]Эта переменная в дальнейшем будет использоваться для формирования ссылок.[/di] типа Строка и укажем для нее значение по умолчанию, равное [dw]адресу портала[/dw][di]Например: http://myportal.com.[/di].

    В результате получим список переменных. Остальные переменные будут созданы [dw]по мере необходимости[/dw][di]Это будут переменные, в которых будут храниться значения полей действия Запрос дополнительной информации. Названия этих переменных пронумерованы, согласно этапу, на котором в них заносятся значения. Кроме этого будет использоваться переменная Флаг «Поля Пусты», про которую будет написано ниже.[/di].

      Статусы шаблона

    Начальный статус

    Подпроцесс первого статуса начинается с Блока действий, который используется для группировки однотипных действий:

    • проверки, указаны ли требуемые сотрудники в форме Сделка,
    • автоматической записи пользователей в пустые поля из переменных Менеджер по продажам (*), и.т.д.

    Таким образом он позволяет [dw]автоматизировать[/dw][di]Например, если Юрист в сделке тот же, что и всегда, то менеджеру не нужно будет заполнять это поле в форме сделки. Оно будет заполнено автоматически из бизнес-процесса. Если же Юрист должен отличаться от заданного по умолчанию, то менеджер вручную заполняет соответствующее поле, и тогда автоматической записи из переменной происходить не будет.[/di] заполнение формы

    Этап 1 — Менеджер по продажам

    Этап проходит по алгоритму:

    1. Проверяется заполнение требуемых от менеджера по продажам полей:
      • Если поле окажется пустым, то значение специальной переменной Флаг «Поля пусты» [dw]будет изменено[/dw][di]в Параметрах шаблона по умолчанию значение этой переменной задается как Нет[/di] на Да. Переходим к п. 2 алгоритма.
      • Если поля окажутся заполнены, то значение переменной Флаг «Поля пусты» будет сброшено на Нет и процесс перейдет на следующий этап.
    2. Сначала значение переменной Флаг «Поля пусты» будет сброшено на Нет, а затем Менеджеру по продажам будет выставлено задание, в котором от него потребуется заполнить эти поля. После чего будет произведен переход на начало этапа (п. 1).

    Этап 2 — Менеджер по закупкам

    На этом этапе менеджеру будет выставляться задание по заполнению требуемых полей (согласно ТЗ). Для этого используется действие Запрос дополнительной информации и дополнительные поля (переменные) в этом действии. Значения этих переменных будут сохранены в поля Сделки.

    Менеджер по продажам будет уведомлен через модуль Веб-Мессенджер о том, что поля заполнены. В сообщении будут указаны значения этих полей, ссылки на Поставщика и приложенные файлы.

    Рассмотрим эти ссылки поподробнее

    Этап 3 — Менеджер по продажам

    Действия аналогичны действиям предыдущего этапа, с той разницей, что задается другой сотрудник и поля для заполнения.

    Этап 3а — Комментарий относительно сроков доставки

    На этом этапе сверяются сроки поставки. Если срок поставки до клиента равен или больше срока поставки до поставщика +5 дней, то процесс продолжается, иначе менеджеру по продажам выставляется задание (Ознакомление с документом), в котором он должен будет оставить комментарий по поводу сроков поставки. После чего его комментарий будет записан в сделку.

    Проверка осуществляется следующим образом

    Этап 4 — Этап 8

    Действия аналогичны действиям 3-го этапа, с той разницей, что задается другой сотрудник и поля для заполнения.

    Добавление информации в инфоблок из бизнес-процесса

    Как добавить информацию из Бизнес-процесса

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

    После заполнения полей списка Название, Строка и Файл (несколько файлов) и последующего сохранения, необходимо создать новый элемент в нужном инфоблоке. В пользовательские свойства этого элемента вносятся значения, указанных выше, полей списка. Название этого элемента будет соответствовать названию создаваемого элемента списка.

    • Для начала создадим в списке дополнительные поля:

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

      Для поля Идентификатор инфоблока зададим значение по умолчанию , чтоб каждый раз не заполнять его при создании нового элемента списка. В примере это будет инфоблок с идентификатором =1. Это поле создано лишь [dw]для наглядности[/dw][di]Идентификатор инфоблока можно также прописать прямо в коде (см. ниже) или переменной бизнес-процесса.[/di].

    • Перейдем к инфоблоку. На странице настроек инфоблока, закладка [dw]Свойства[/dw][di][/di] (Контент > Инфоблоки > Типы инфоблоков > требуемый_инфоблок), создадим новые пользовательские свойства, в которые у нас и будут записываться значения из полей списка.

    Перейдем к самому бизнес-процессу. Создадим шаблон последовательного бизнес-процесса.

    • Создадим [dw]2 переменные[/dw][di][/di], которые будут использоваться в отладочных целях:
      • ELEMENT_ID — переменная бизнес процесса, в которую будет записан ИД созданного элемента инфоблока в случае удачи,
      • ERROR — переменная бизнес процесса, в которую будет записан текст ошибки в случае неудачи создания элемента инфоблока.
    • Возьмем код из примера АПИ-вызова CIBlockElement::Add

      и модифицируем его:

      <?
      CModule::IncludeModule("iblock"); //подключаем модуль инфоблоков
      
      $el = new CIBlockElement;
      
      $PROP = array();
      $PROP[IB_CUSTOM_PROPERTY] = {=Document:PROPERTY_117};
      // задаем для свойства инфоблока "IB_CUSTOM_PROPERTY" типа "строка" значение из поля документа "PROPERTY_117"  
      
      $files = explode(', ',"{=Document:PROPERTY_118}");
      foreach($files as $key=>$value)
       {
        $PROP[IB_FILE_PROPERTY]['n'.$key]=array('VALUE'=> CFile::MakeFileArray($value), 'DESCRIPTION' => '');
       }  
      // задаем для свойства инфоблока "IB_FILE_PROPERTY" типа "файл" (множественное) значение из поля документа "PROPERTY_118"	
      	
      $arLoadProductArray = Array(
        "IBLOCK_ID" = >{=Document:PROPERTY_119},	
      // задаем  Идентификатор инфоблока, в котором будет создан элемент, из поля документа "PROPERTY_119" типа "строка" 	
        "NAME" => {=Document:NAME},
      // задаем Название создаваемого элемента инфоблока из поля документа "Название"	
       "PROPERTY_VALUES"	=> $PROP,
      );
      
      $ELEMENT_ID = $el->Add($arLoadProductArray);
      
      if($ELEMENT_ID > 0)
       $this->SetVariable('ELEMENT_ID', $ELEMENT_ID);
      // задаем для переменной бизнес-процесса "ELEMENT_ID" значение, содержащее номер созданного элемента инфоблока, в случае, если он будет создан	
      else
       $this->SetVariable('ERROR', $el->LAST_ERROR);
      // задаем для переменной бизнес-процесса "ERROR" значение, содержащее текст ошибки, в случае, если  элемент инфоблока не будет создан	
      ?>
      

      Этот код будет, с помощью АПИ-методов, создавать новый элемент инфоблока, в котором пользовательские свойства IB_CUSTOM_PROPERTY, IB_FILE_PROPERTY, а также название элемента инфоблока будут содержать значения пользовательских полей PROPERTY_117, PROPERTY_118, PROPERTY_119 и значение поля название элемента списка.

      После чего добавим в шаблон действие PHP-код, в котором укажем наш измененный код.

    • Добавим в шаблон действие Запись в отчет, в котором укажем следующий текст:
      {=Variable:ELEMENT_ID_printable}, {=Variable:ERROR_printable}

      Этим самым мы запишем в отчет по выполнению бизнес-процесса значение отладочных переменных для анализа в случае ошибок.

    Документация по теме:

    • Действие «PHP код»
    • АПИ-метод «CIBlockElement::Add»
    • Произвольный PHP код в бизнес-процессе

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

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

    Пример изменения процесса Выдача наличных

    Модифицируем стандартный бизнес-процесс Выдача наличных.

    Вопрос с форума — Здравствуйте) Недавно начали работать в Битрикс, и есть нужда в БП. Но не получается самому все сделать) Нужно усложнить стандартный БП на выдачу наличных таким образом, чтобы была возможность при создании БП указать категорию финансирования из выпадающего списка. Каждой категорией будет заведовать отдельный человек и соответственно утверждать или отклонять заявку. В то же время одной из категорий ведует Руководитель компании, таким образом при оформлении заявки на него приходит запрос на утверждение, если заявка подана на другую категорию- Руководитель должен лишь ознакомиться с заявкой).

      Создание нового поля

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

    Теперь при вызове бизнес-процесса нужно будет сразу указать назначение денег.

      Редактирование шаблона

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

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

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

    Таким образом, когда при запуске процесса будет указано некоторое значение поля, будет сразу выбрана соответствующая ветка условия. В каждой ветке добавим действие Изменение переменных, в которой будет присваиваться значение переменной Утверждающий. Для ветки Премия сотруднику изменим значение переменной Выбран начальник на Да, потому что ей будет заведовать сам руководитель компании.

    После того, как по платежу будет принято какое-то решение, нужно проверить, кто является утверждающим сотрудником. Осуществим это, используя Условие, зависящее от значения переменной Выбран начальник. Если утверждающий пользователь не является руководителем компании, то нам необходимо его ознакомить с деталями платежа, используя действие Ознакомление с документом.

    Подробнее ознакомиться с измененным шаблоном можно здесь.

    Пример изменения процесса Заявление на отпуск

    Модифицируем стандартный бизнес-процесс Заявление на отпуск.

    Сообщение от пользователя — Здравствуйте. Надеюсь, мое сообщение не останется без внимания. Только недавно изучаю бизнес-процессы, не могу понять. Есть стандартный процесс заявления на отпуск. У нас в компании 2 раза в год проводятся важные мероприятия, во время которых оговорено, что в отпуск никто не уходит. Можно как-то автоматизировать чтобы процесс был недоступен в это время или заявка на отпуск автоматически отклонялась, а то постоянно кто-то забывает? И можно ли как-то в стандартный процесс добавить категорию отпуска – для бухгалтерии это важно. Спасибо

      Создание нового поля

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

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

      Создание констант

    Для того, чтобы автоматически отклонять заявление об отпуске, сначала необходимо задать периоды, в течение которых отпуск взять нельзя. Создадим константы, в которых мы будем хранить даты начала и концов этих периодов.

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

      Редактирование шаблона

    Внесем корректировки в шаблон бизнес-процесса. Добавим в начало цикл проверки введенных пользователем дат.

    Проверку дат осуществим с помощью действия Условие. Для ветки условий Нет, настроим зависимость даты отпуска от запрещенных для отпуска периодов. Т.к. выбранные для отпуска даты записываются в поля, то будем использовать тип условия Поле документа. Рассматривать будем следующие варианты:

    • Дата начала отпуска попадает в один из запрещенных периодов.
    • Дата завершения отпуска попадает в один из запрещенных периодов.
    • Сам запрещенный период целиком попадает в даты отпуска.

    Примечание: даты начала и завершения в периоды не объединяются, поэтому каждую из дат нужно отдельно сравнивать с другой. Для объединения условий необходимо использовать логические операторы И/ИЛИ.

    Добавим уведомление пользователя о том, что он выбрал некорректные даты для отпуска. Пользователю будет также предложено выбрать другие даты для своего отпуска. Используем для этого действие Запрос доп.информации (с отклонением). Если пользователь введет новые даты и сохранит их, то новые даты мы запишем в поле документа и цикл опять будет их проверять. Если пользователь не захочет по какой-либо причине вводить даты и отклонит ввод информации, то мы удалим его заявление на отпуск и прервем выполнение процесса.

    Для ветки Да укажем условие выполнения Истина. Таким образом, она выполнится в том случае, если процесс не пойдет по первой ветке. В этой ветке мы настроим выход из цикла. Зададим переменную, которая будет указывать, правильно ли введены данные.

    Созданный цикл будет работать пока у данной переменной будет значение Нет. Если пользователь введет правильные даты, то изменим значение переменной на Да, чтобы выйти из цикла. Если пользователь ввел подходящие для отпуска даты, то бизнес-процесс заявления на отпуск продолжит свое обычное выполнение.

      Скачать созданный шаблон бизнес-процесса можно здесь.

    Пример изменения процесса Исходящие документы

    Модифицируем стандартный бизнес-процесс Исходящие документы.

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

      Создание нового поля

    Чтобы выполнить данную задачу отредактируем типовой бизнес-процесс Исходящие документы. Для начала, добавим поле со статусом документа. Пользователю не нужно будет заполнять это поле — оно будет изменяться в ходе исполнения процесса. Установим значение по умолчанию Не согласовано:

      Редактирование шаблона

    Отредактируем шаблон бизнес-процесса. Для того, чтобы автоматизировать процесс проверки документа, будем использовать цикл. Установим, что он должен выполняться, пока созданное нами поле документа не изменит свое значение.

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

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

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

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

    В ветке Отказано добавим уведомление автору, что его документу отказано в публикации. Также изменим статус документа.

       Подробнее ознакомиться с созданным шаблоном можно здесь.

    Шаблон бизнес-процесса (для ознакомления)

    Создание задачи с приоритетом с помощью PHP-кода

    Используем PHP-код

    Задание: необходимо создать задачу с помощью действия PHP-код, при этом приоритет задачи зависит от выбранного значения переменной бизнес-процесса.

    Выбирать приоритет задачи будем через действие Запрос дополнительной информации. Приоритет задачи может принимать значения 0, 1, 2, соответствующий низкому, среднему и высокому приоритету (см. CTasks::Add). Пользователю нужно будет выбрать значение переменной типа Список. Очевидно, ему будет непонятно, что подразумевается под цифрами. Поэтому для списка варианты мы обозначим текстом, а значения каждого из вариантов укажем в квадратных скобках.

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

    Теперь когда действие PHP код будет создавать задачу, то приоритет задачи будет зависеть от выбранного пользователем варианта. Добавим следующий код в действие:

    {
    $root = $this->GetRootActivity();
    $priority_var= $root->GetVariable('prior');
    
    $arFields = Array("TITLE" => "Рriority task",
            "DESCRIPTION" => "Task description",
            "RESPONSIBLE_ID" => 2,
            "CREATED_BY" => 1,
            "PRIORITY" => $priority_var
             );
    
        $obTask = new CTasks;
        $obTask->Add($arFields);
    }
    

    Пример бизнес-процесса для подачи заявки на отпуск

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

      Краткий алгоритм работы

    После того как сотрудник заполнит данные заявки, она автоматически направляется на утверждение его начальнику.

    Если начальником является директор компании, то заявка утверждается или отклоняется им. Если же начальником не является директор компании, то сначала заявка будет утверждаться непосредственным начальником сотрудника, а затем и директором компании.

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

    После утверждения/отклонения заявки для соответствующей переменной устанавливается/не устанавливается нужное значение, на основе которого потом будут произведены действия по оповещению требуемых сотрудников, установке соответствующих статусов для заявки и записи в график отсутствия.

    Примечание: Процесс подразумевает, что в компании используется структура с несколькими уровнями начальства и одним главным директором.

    Шаблон для ознакомления: Скачать

      Настройка списка

    Необходимо создать следующие поля списка:

    • Номер — типа Счетчик;
    • С — типа Дата/Время (обязательное);
    • По — типа Дата/Время (обязательное);
    • Тип отпуска — типа Список (обязательное), со значениями: Очередной, За свой счет, Учебный;
    • Доп.инф. — типа Название (обязательное). Данное поле создано потому, что тип Название обязательный и удалить его невозможно.

      Значение по умолчанию: нет.

      Используемые переменные

    • Автор (applicant) типа Пользователь — используется для указания автора заявки на отпуск;

      Значение по умолчанию: Автор.

    • Начальник (deptchief) типа Пользователь — используется для хранения начальника, который будет выбран для автора в ходе выполнения бизнес-процесса;
    • Директор (ceo) типа Пользователь — используется для указания директора компании;

      Значение по умолчанию: указывается_соответствующий_сотрудник_компании.

    • Бухгалтер (accountant) типа Пользователь — используется для указания бухгалтера компании;

      Значение по умолчанию: указывается_соответствующий_сотрудник_компании.

    • Утверждено? (approved) типа Да/Нет — используется в качестве флага, отображающего статус заявки. На его основе производится выбор дальних действий над заявкой после ее утверждения;

      Значение по умолчанию: Нет.

    • Кем отклонено (rejectedby) типа Пользователь — используется для хранения пользователя, отклонившего заявку на отпуск;
    • Ссылка (link) типа Строка — используется формирования ссылки для перехода к просмотру заявки на отпуск. Эта ссылка будет использоваться в тексте оповещения сотрудников, участвующих в процессе.

      Значение по умолчанию: http://адрес_портала/company/personal/bizproc/.

      Настройка шаблона

    • Необходимо проставить свои поля (взамен тех, что будут после импорта шаблона) во всех действиях шаблона (через форму Вставка значения);

      Также замену полей необходимо произвести и в тексте сообщений:

    • Необходимо задать для переменных Директор, Бухгалтер и Ссылка свои Значения по умолчанию.

      Общая схема работы бизнес-процесса

    • Первым делом идет действие по выбору начальника для автора.

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

    • Следующее действие (Роли) производит запись в переменные следующих пользователей:
      • Автор — сотрудник, который создал заявку на отпуск. Указывается с помощью выражения {=Document:CREATED_BY};
      • Начальник — сотрудник, который был выбран предыдущим действием (выбор начальника). Указывается с помощью формы Вставка значения (Дополнительные результаты — Выбор начальника — Выбранный начальник).

    • Далее следует действие по установке прав. В нем для основных сотрудников разрешается доступ на чтение к заявке на отпуск.

    • Следующим идет условие (Выбранный начальник?), по которому, в зависимости от того, какой именно начальник был выбран (действие выбор начальника), будут выполняться различные ветви последовательности действий.
      • Выполнение первой ветки условия происходит, если значение переменной Начальник равно значению переменной Директор.

        Далее Бухгалтеру и Директору будут отправлены уведомления, после чего заявка будет отправлена на рассмотрение Директору.

        В случае одобрения заявки значение переменной Утверждено? будет установлено на да.

        В противном случае в качестве значения переменной Кем отклонено будет установлен сотрудник, отклонивший заявку — Директор.

      • Если условие 1-й ветки не будет выполнено, то тогда будет произведен переход к проверке условия 2-й ветки. Ее выполнение происходит, если значение переменной Начальник равно сотруднику, который был выбран действием выбор начальника.

        Таким образом, происходит проверка, что переменная Начальник не пуста и не равна Директору.

        Далее Начальнику будут отправлены уведомления, после чего заявка будет отправлена ему на рассмотрение.

        В случае отклонения в качестве значения переменной Кем отклонено будет установлен сотрудник, отклонивший заявку — Начальник.

        В случае одобрения заявки будет выполнено последующее ее согласование с директором, аналогично 1-й ветки условия.

      • 3-я ветка условия будет выполняться в последнюю очередь, при условии, что переменная Начальник будет пуста.

        В этом случае Бухгалтеру и Директору будут отправлены уведомления, после чего заявка будет отправлена на рассмотрение Директору.

    • Следующей конструкцией будет опять условие.

      В этот раз выбор ветки с действиями будет производиться в зависимости от значения переменной Утверждено?, которое по умолчанию равно нет, но может быть изменено на да в ходе выполнения предыдущего условия.

      • В случае если значение переменной Утверждено? равно да, то тогда Бухгалтеру, Начальнику и Автору будут отправлены сообщения, оповещающие о том, что заявка на отпуск была одобрена.

        Затем заявка будет опубликована в списке заявок со статусом «одобрена».

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

      • В случае если значение переменной Утверждено? равно нет, то тогда Начальнику и Автору будут отправлены сообщения, оповещающие о том, что заявка на отпуск была отклонена.

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

    Пример бизнес-процесса для обслуживания заявок клиентов

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

      Алгоритм работы

    Клиент оставляет на сайте заявку, которая появляется на портале в виде нового лида.

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

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

    По повторному звонку принимается решение о дальнейшем обслуживании лида:

    • Если клиент готов сделать заказ, то создается новая сделка, в которую заносятся данные из лида.
    • Если клиент еще не принял решения о продолжении сотрудничества, то ОП должен договориться о дате следующего звонка.
    • Если клиент отказывается заключать сделку, то ОП должен выяснить почему. Возможны следующие причины отказа:
      • Сделка физически невозможна — ОП указывает причину. Процесс заканчивается.
      • Клиент хочет закупаться у поставщиков — ОП уведомляет сотрудника-оптовика о том, что тому нужно связаться с клиентом и договориться о поставках. Сам оптовик теперь становится ответственным. Важным является то, что сотрудник-оптовик после звонка должен сразу выяснить: будет клиент осуществлять закупку или нет.
      • Клиента не устраивает цена — ОП уведомляет главу отдела продаж об этом. Глава отдела продаж принимает решение о том, какие скидки и бонусы можно предоставить клиенту. В зависимости от этого отсылается один из пяти содержащих скидки прайс-листов, назначается дата нового звонка. Если не один из прайсов не подошел клиенту, то с ним должен связаться сотрудник-оптовик.
      • Клиент не идет на контакт — необъяснимая невозможность договориться (личная несовместимость, конфликтная ситуация) или связаться с клиентом. В данном случае ОП уведомляет назначающего сотрудника о том, что нужно сменить ответственного.
      • Другое — причина указывается в комментарии.

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

      Ответственный

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

    Ему нужно выбрать ОП, а также установить условия для задачи, которая будет для него поставлена.

      Уточнение заявки

    ОП звонит клиенту и уточняет данные, необходимые для закупки.

    Примечание:

    1 — содержит подсказки для ОП при звонке клиенту

    2 — единственное обязательное поле — без него выполнение бизнес-процесса не продолжается

    Поля формы заполняются уточненными у клиента данными и записываются в лид после нажатия кнопки Сохранить.

    Создание напоминания пользователю

      Повторный звонок клиенту

    После повторного звонка клиенту ОП должен определить степень готовности клиента к заключении сделки. Клиент либо:

    1. Готов сразу и сделка заключается
    2. Не готов, но ему требуется еще время на принятие решения
    3. Клиент не хочет заключать сделку и мы должны либо предоставить ему улучшенные условия сделки, либо указать почему он не хочет ее заключать

    Отработку этой стадии бизнес-процесса можно посмотреть в следующем видео.

    Последовательность действий и их параметров достаточно понятны из шаблона, поэтому подробно описывать их мы не будем. Однако стоит коснуться некоторых важных деталей:

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

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

      Это необходимо делать для того, чтобы ответственный сотрудник всегда был один и данные о нем хранились в одной единственной переменной, которая будет указываться в параметрах действий бизнес-процесса.

      В нашем примере используется переменная UserResp, описание которой можно найти в параметрах шаблона.

      И она используется в очень многих действиях нашего бизнес-процесса, где нужно указать конкретного пользователя.

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

      Сотрудник-оптовик

      Обычный сотрудник

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

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

    Примеры использования бизнес-процессов совместно с другим функционалом системы (ссылки)

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

    • Использование бизнес-процессов в разделе KPI для отдела организации курса Внедрение корпоративного портала.
    • Сценарий для работы службы техподдержки из курса Администратор сервиса Битрикс24 (коробочная версия).

      Клиенты заполняют форму на сайте, в которой указывают свои данные и выбирают причину обращения. Данная информация, путем настроенной интеграции, передается в CRM в виде лида, к которому автоматически привязывается задача под ответственность соответствующего задаче специалиста.

    • Автоматизация исполнения проекта из курса Администратор сервиса Битрикс24 (коробочная версия).

      Использование бизнес-процессов для работы над проектом после закрытия сделки.

    • Сценарий автоматизации контроля оказания услуг из курса Администратор сервиса Битрикс24 (коробочная версия).

    Бизнес-процессы для разработчика

    В этой главе рассмотрим работу с бизнес-процессами с точки зрения разработчика.

    Общая информация для разработчиков

    Цитатник веб-разработчиков.

    Максим Месилов: Не нужно стесняться задавать вопросы которые вертятся на языке в момент проектирования.

    Теория для разработчиков

    Бизнес-процесс — это процесс обработки документа, для которого задана одна точка входа и несколько точек выхода и последовательность действий (шагов, этапов, функций), совершаемых в заданном порядке и в определенных условиях.

    Модуль Бизнес-процессы:

    • предназначен для организации как последовательной обработки элементов инфоблоков в виде отдельного последовательного процесса, так и для создания статусных схем сложных процессов с неопределенным периодом действия.
    • это инструмент, с помощью которого другие части продукта (модули, компоненты и т.п.) могут предоставлять пользователям возможность определять, выполнять и управлять бизнес-процессами (рабочими потоками). Он дает возможность визуально программировать произвольную функциональность, а так же запускать и управлять подобными программами. Здесь под словом «произвольная» понимается возможность создания пользовательских действий, которые расширяют стандартную функциональность.
    • предусматривает универсальный механизм программирования бизнес-процессов, доступный не программисту. Такой универсальный механизм реализован за счет визуального программирования по технологии drag&drop (тащи-и-бросай), понятной и известной любому пользователю компьютера. Шаблон бизнес процессов создается в особом визуальном конструкторе.

    Важно! Для работы модуля система должна удовлетворять минимальным системным требованиям. Перед его установкой проверьте соответствие вашей установки этому требованию.

    Каждый экземпляр бизнес-процесса (далее – БП) представляет собой программу. Входящие параметры БП являются параметрами, с которыми запускается программа. Переменные БП являются переменными программы.

    Соответственно время жизни параметров и переменных БП ограниченно временем жизни самого БП. Чтобы переменные, параметры или любые другие значения БП были доступны после завершения БП и/или вне БП, необходимо сохранить их куда-либо в постоянную память. Наиболее удобно сохранять их в документ БП.

    Экземпляр бизнес-процесса одновременно может работать только в одной копии. Если была попытка запустить вторую копию до завершения работы первой (например, запуск процесса от имени 2-х разных пользователей), то возникает ошибка: Бизнес-процесс заблокирован другим процессом. Как правило к этому приводит ошибка и некорректное завершение другого БП.

    Каждый экземпляр БП работает над документом. Документы физически могут представлять собой различные сущности и определять различный функционал работы. Например, компонент Бизнес-процесс, пример которого находится в меню Сервисы «1С-Битрикс: Корпоративный портал», в качестве документа использует в конечном итоге элементы инфоблока.

    БП с помощью действий предоставляет возможность манипулировать документом, над которым он работает. Например, изменить документ или опубликовать его.

    Внимание! Внедрение бизнес-процессов требует особой квалификации специалистов. Эти специалисты должны понимать предметную суть бизнес-процессов в компании и уметь выражать эту суть логическими схемами.

    При автоматизации бизнес-процессов не надо бросаться кодировать пока не будет нарисована схема бизнес-процесса и не будет понимания как эта схема будет реализовываться.

    Перед изучением принципов программирования Бизнес-процессов настоятельно рекомендуется познакомится с общими принципами их работы.

    Рекомендации по разработке

    Рассмотрим типовые ошибки разработчиков и возможности, о которых часто забывают.

      Запуск

    Варианты запуска бизнес-процессов:

    • Ручной — инициируется вручную пользователем из интерфейса;
    • Автоматический — запускается сам при создании/изменении документа, также при работе роботов и триггеров CRM;
    • Запуск через Rest — метод bizproc.workflow.start, либо посредством создания/изменения документа аналогично автоматическому запуску;
    • Возобновление — работа БП после паузы, либо запуск после какого-то события.

    Общий момент для [dw]всех вариантов[/dw][di]Кроме роботов и триггеров на текущий момент. Сейчас они запускаются системой, но такой сценарий планируется изменить.[/di] запуска БП: всегда есть пользователь, который запустил бизнес-процесс и он всегда доступен внутри этого БП.

      PHP в бизнес-процессах

    Отметим основные ошибки тех, кто активно занимается кастомизацией на коробочных версиях:

    Хорошо Плохо Почему плохо
    $this->GetVariable('Foo'); {=Variable:Foo} Не рекомендуется использовать выражение БП при построении кода PHP, т.к. его невозможно правильно заэкранировать. Например, есть пользователь добавит в переменную текст с кавычкой, то на выходе получим ошибка парсинга PHP, что приведет к фатальной остановке выполнения хита и БП зависнет. Поэтому лучше использовать стандартный API.
    Не ориентироваться на контекст Использовать $USER, $GLOBALS и т.д. Использование глобальных переменных не рекомендуется.
    Учитывать права доступа $USER->Authorize(); Не рекомендуется повышать права доступа путем авторизации под другим пользователем. Например: вы решили для выполнения определенного действия авторизовать пользователя под ID администратора. Если БП остановится по какой-то причине, то у пользователя останутся права администратора.
    Фильтровать данные извне "SELECT FROM b_user WHERE ID = {=Variable:UserID}" Использования запроса к БД без фильтрации данных позволяет злоумышленнику осуществить атаку на сайт с помощью SQL инъекции.

    Также рекомендуется максимально использовать стандартные функции.

      Вебинар о бизнес-процессах

    Подробнее смотрите в вебинаре Роботы и бизнес-процессы. RPA с точки зрения разработчика. Техноволна 1 от 06 апреля 2020.

    Шаблон бизнес-процесса

    О шаблоне

    Шаблон бизнес-процесса – это схема (программа), в которой задана одна точка входа, последовательность действий (шагов, этапов, функций), совершаемых в заданном порядке и направленных на достижение некоторой цели, а так же одна или несколько точек выхода, определяющих завершение выполнения.

    Шаблон создается в специальном модуле Дизайнер бизнес-процессов с помощью визуального конструктора. Конструктор позволяет перетаскивать действия из панели инструментов на Основную рабочую область конструктора, создавая шаблон бизнес-процесса визуальным образом. Шаблон создается в виде блок-схемы, которая наглядно отображает логику работы бизнес-процесса.

    В дистрибутив заложен ряд встроенных действий (англ. activities), которые могут быть использованы для выполнения работ общего назначения. Таких действий — несколько десятков. Есть действия, допускающие использование собственного скрипта или php-кода. Кроме того, при необходимости есть возможность создавать собственные действия и подключать их к бизнес-процессу.

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

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

    Пример простого массива, представляющего шаблон бизнес-процесса:

    array(
      array(
        "Type" => "SequentialWorkflowActivity",
        "Name" => "SequentialWorkflowActivity1",
        "Properties" => array(),
        "Children" => array(
          array(
            "Type" => "SetFieldActivity",
            "Name" => "SetFieldActivity1",
            "Properties" => array("Field" => "XML_ID", "Value" => "В рассмотрении"),
          ),
          array(
            "Type" => "IfElseActivity",
            "Name" => "IfElseActivity1",
            "Properties" => array(),
            "Children" => array(
              array(
                "Type" => "IfElseBranchActivity",
                "Name" => "IfElseBranchActivity1",
                "Properties" => array("FieldCondition" => array("CREATED_BY", "=", 1)),
                "Children" => array(
                  array(
                    "Type" => "SetFieldActivity",
                    "Name" => "SetFieldActivity2",
                    "Properties" => array("Field" => "XML_ID", "Value" => "Принят"),
                  ),
                ),
              ),
              array(
                "Type" => "IfElseBranchActivity",
                "Name" => "IfElseBranchActivity2",
                "Properties" => array(),
                "Children" => array(
                  array(
                    "Type" => "ApproveActivity",
                    "Name" => "ApproveActivity1",
                    "Properties" => array(
                      "Users" => array(1),
                      "ApproveType" => "all",
                      "OverdueDate" => null,
                      "Name" => "Проверьте запись",
                      "Description" => "",
                      "Parameters" => null,
                    ),
                    "Children" => array(
                      array(
                        "Type" => "SetFieldActivity",
                        "Name" => "SetFieldActivity3",
                        "Properties" => array("Field" => "XML_ID", "Value" => "Принят"),
                      ),
                      array(
                        "Type" => "SetFieldActivity",
                        "Name" => "SetFieldActivity4",
                        "Properties" => array("Field" => "XML_ID", "Value" => "Отклонен"),
                      ),
                    ),
                  ),
                ),
              ),
            ),
          ),
        ),
      ),
    )
    

    Бизнес-процесс

    О бизнес-процессе

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

    После завершения бизнес-процесс перестает существовать. Но его статус сохраняется и доступен для использования.

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

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

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

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

    Бизнес-процесс может не выполняться постоянно. Например, если в бизнес-процессе встречается действие CBPDelayActivity (реализует ожидание, откладывая выполнение на определенный срок), то бизнес-процесс входит в состояние ожидания, сохраняется в базе данных и удаляется из памяти. По истечении заданного времени бизнес-процесс считывается из базы данных, восстанавливается в памяти и продолжает выполняться с места остановки.

    Совет

    Чтобы для отладки увидеть все внутренности, например, чтобы понять — какими переменными можно оперировать, можно вставить в интересующее место в схеме php код:

    echo "<pre>", print_r( $_REQUEST ), "</pre>";
    echo "-----<br />";
    echo "<pre>", print_r( $this ), "</pre>";
    exit;

    Затем запустить бизнес процесс на выполнение. Например, создать новый элемент в инфоблоке или отредактировать. И спокойно сидеть разбираться.

    Действия

    Все, что происходит в бизнес-процессе — это действия. В главе рассмотрим несколько примеров созданий собственных действий.

    Действия

    Бизнес-процесс — это действия

    Все, что происходит в бизнес-процессе — это действия. Сам бизнес-процесс представляет собой составное действие, которое позволяет определять внутри себя дочерние действия. Каждое действие в рамках бизнес-процесса должно иметь уникальное имя.

    Действие — это класс, который наследуется от абстрактного класса CBPActivity или его потомков. Название класса должно начинаться с подстроки «CBP» и может состоять из латинских букв и цифр.

    Пример:

    <?
    if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
    
    class CBPMyActivity1
    	extends CBPActivity
    {
    	. . .
    }
    ?>
    >

    Непосредственно от класса CBPActivity наследуются действия, которые не могут содержать внутри себя другие действия. Этот класс определяет набор базовых методов, которые необходимы любому действию. Некоторые методы, определенные в классе CBPActivity могут или должны быть переопределены в классе-наследнике.

    В дистрибутиве по умолчанию есть несколько десятков действий (Activity) для создания бизнес-процессов. Тем не менее, иногда возникает потребность в создании собственного действия.

    Основные стандартные действия

    Перечислим основные стандартные действия

    Действие Описание
    CBPActivity Абстрактный базовый класс всех действий.
    CBPCompositeActivity Абстрактный базовый класс составных действий, т.е. действий, которые могут содержать в себе дочерние действия.
    CBPCodeActivity Запускает на выполнение произвольный PHP-код.
    CBPSetVariableActivity Устанавливает значения переменных бизнес-процесса.
    CBPDelayActivity Реализует ожидание, откладывая выполнение на определенный срок.
    CBPHandleExternalEventActivity Реализует действие, которое ожидает внешнее событие. Бизнес-процесс останавливается до получения данного внешнего события.
    CBPEventDrivenActivity Служит контейнером для действий, выполнение которых происходит по событию.
    CBPIfElseActivity Реализует функционал условия.
    CBPIfElseBranchActivity Реализует функционал ветки условия.
    CBPWhileActivity Реализует функционал цикла.
    CBPListenActivity Реализует ожидание одного из нескольких возможных событий. Когда одно из событий происходит, остальные перестают ожидать событий и отменяются.
    CBPParallelActivity Параллельно запускает набор дочерних действий.
    CBPSequenceActivity Последовательно запускает набор дочерних действий.
    CBPSequentialWorkflowActivity Представляет собой бизнес-процесс, который выполняет действия последовательно (последовательный бизнес-процесс).
    CBPSetStateActivity Устанавливает статус в бизнес-процессе со статусами.
    CBPStateActivity Представляет собой статус в бизнес-процессе со статусами.
    CBPStateMachineWorkflowActivity Представляет собой бизнес-процесс со статусами.

    Любое действие наследуется от базового класса действий или одного из его наследников.

    Свойства действий

    О свойствах действий

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

    Свойства действия описываются в конструкторе класса действия определением массива в члене класса arProperties:

    public function __construct($name)
    {
    	parent::__construct($name);
    	$this->arProperties = array("Title" => "", "MyProperty" => "");
    }
    

    Ключами в массиве определения свойств являются названия свойств, а значениями – значения по умолчанию.

    При выполнении действия свойства доступны как члены класса:

    $this->MyProperty

    Входные параметры (свойства) бизнес-процесса доступны как свойства корневого действия бизнес-процесса. Любое действие бизнес-процесса может обратиться к входным параметрам бизнес-процесса.

    Например, если бизнес-процесс был запущен с помощью кода:

    // Код шаблона бизнес-процесса
    $workflowTemplateId = 12;
    
    // Бизнес-процесс запускается для документа - элемента инфоблока с кодом 358
    $documentId  = array("iblock", "CIBlockDocument", 358);
    
    // Входные параметры бизнес-процесса
    $arParameters = array("MyProperty" => "Красный");
    
    $runtime = CBPRuntime::GetRuntime();
    $wi = $runtime->CreateWorkflow($workflowTemplateId, $documentId, $arParameters);
    $wi->Start();
    

    то в любом действии этого бизнес-процесса значение параметра можно будет получить с помощью кода:

    $rootActivity = $this->GetRootActivity();
    if ($rootActivity->IsPropertyExists("MyProperty"))
    	$val = $rootActivity->MyProperty;
    //  $val == "Красный"
    

    Свойства действий описываются разработчиком при написании кода действия. Входящие параметры бизнес-процесса (они же свойства корневого действия бизнес-процесса) описываются пользователем при создании шаблона бизнес-процесса.

    Значениями свойств могут быть как константы, так и ссылки на свойства других действий бизнес-процесса при условии, что эти действия выполнились раньше.

    Чтобы в момент выполнения бизнес-процесса значением свойства одного действия являлось значение свойства выполненного выше другого действия, необходимо при создании шаблона бизнес-процесса в качестве значения свойства первого действия задать массив вида:

    array("название действия, на свойство которого ссылаются", "название свойства")

    В случае простых типов данных свойств в качестве значения свойства первого действия можно задать строку вида:

    "{=название_действия, название_свойства}"

    Чтобы сослаться на входной параметр (свойство) бизнес-процесса, которое доступно как свойство корневого действия бизнес-процесса, следует в качестве названия действия использовать слово Template:

    array("Template", "название свойства")
    "{=Template, название_свойства}"

    Вообще в качестве названия действия можно использовать слова:

    • Document – для обращения к произвольному полю документа, над которым запущен бизнес-процесс;
    • Template – для обращения к входному параметру (свойству) бизнес-процесса (корневого действия);
    • Variable – для обращения к переменной бизнес-процесса;
    • User – для получения кода текущего пользователя (в качестве названия свойства должно быть указано « ID «);
    • System – обращение к системным переменным, в настоящее время доступно только свойство Now – текущая дата в формате сайта;
    • любое другое имя – обращение к свойству действия с этим именем.

    Например, если во время разработки в качестве значения свойства установить строку:

    "Документ [url={=Template:PathTemplate}]{=Document:NAME}[/url] был одобрен"

    и при этом рабочий поток запустится с входящим параметром PathTemplate равным file.php над документом с названием План счетов, то при выполнении действия значением свойства будет строка:

    "Документ [url=file.php]План счетов[/url] был одобрен"

    Составные действия

    Объединение действий в одно

    Составные действия наследуются от абстрактного класса CBPCompositeActivity, который, в свою очередь, наследуется от класса CBPActivity. Класс CBPCompositeActivity обеспечивает поддержку возможности включать внутрь действия дочерние действия. Например, составным действием является стандартное действие CBPParallelActivity (параллельное выполнение), которое содержит в себе дочерние действия, соответствующие веткам параллельного выполнения.

    Класс CBPCompositeActivity содержит член arActivities, с помощью которого можно обращаться к дочерним действиям.

    Например, при запуске действия необходимо запустить первое дочернее действие и дождаться его завершения. Для этого можно использовать следующий код:

    class CBPMyActivity
    	extends CBPCompositeActivity    // наследуем, так как составное действие
    	implements IBPEventActivity	// обработка события завершения дочернего //действия
    {
    	// Исполняемый метод действия
    	public function Execute()
    	{
    		// Возьмем первое дочернее действие
    		$activity = $this->arActivities[0];
    		// Подпишемся на событие изменения статуса дочернего действия
     		//  (завершение)
    		$activity->AddStatusChangeHandler(self::ClosedEvent, $this);
    		// Отправим дочернее действие исполняющей среде на выполнение
    		$this->workflow->ExecuteActivity($activity);
    		// Вернем указание исполняющей среде, что действие еще выполняется
    		return CBPActivityExecutionStatus::Executing;
    	}
    
    	// Обработчик события изменения статуса интерфейса IBPEventActivity
    	// Параметром передается действие, изменившее статус
    	protected function OnEvent(CBPActivity $sender)
    	{
    		// Отпишемся от события изменения статуса дочернего действия
     		// (завершения)
    		$sender->RemoveStatusChangeHandler(self::ClosedEvent, $this);
    		// Дочернее действие завершено, выполняем другой необходимый нам код
    		// Например завершаем действие
    		$this->workflow->CloseActivity($this);
    	}
    }
    
    

    Создание собственных действий

    Рассмотрим общий алгоритм создания собственного действия и примеры.

    Общий алгоритм

    Общий алгоритм создания действия

    Пользовательские действия создаются в папке /bitrix/activities/custom относительно корня сайта. Каждое действие располагается в отдельной папке. Название папки действия должно совпадать с именем класса действия, но без первых символов «CBP». Кроме того имя папки должно быть записано строчными буквами (в нижнем регистре).

    В папке действия должен располагаться файл класса действия. Название файла класса действия должно совпадать с названием папки действия и иметь расширение php. Кроме того в папке действия могут располагаться другие необходимые действию файлы. Например, файл с описанием действия, файлы с локализацией действия, изображения, файлы с ресурсами и т.п.

    Файл с описанием действия располагается в папке действия и имеет имя .description.php. В этом файле содержится описание действия, которое необходимо для корректной работы системы. В файле описания действия должен содержаться код типа:

    <?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
    
    $arActivityDescription = array(
    	"NAME" => GetMessage("MYACTIVITY_DESCR_NAME"),
    	"DESCRIPTION" => GetMessage("MYACTIVITY_DESCR_DESCR"),
    	"TYPE" => "activity",
    	"CLASS" => "MyActivity",
    	"JSCLASS" => "BizProcActivity",
    	"CATEGORY" => array(
    		"ID" => "other",
    	),
    );
    ?>
    

    C версии 17.0.3 модуля Бизнес-процессы появилась возможность при создании своего действия передавать результат его работы в другие действия во время выполнения бизнес-процесса.
    Для этого нужно в файле описания действия .description.php записать массив вида :

    <?
    'ADDITIONAL_RESULT' => array('EntityFields')
    ?>
    

    Значения вложенного массива — это ключ, по которому можно получить данные из свойств шаблона.
    Когда созданное действие отрабатывает, оно записывает данные в свойства шаблона, а затем в других действиях эти данные можно вставить с помощью формы Вставки значения , из раздела Дополнительные результаты.

    Здесь определен тип действия в элементе TYPE, который имеет два возможных значения: activity для действий и condition для условий. Кроме того, задаются название и описание действия, Java-скриптовый класс для отрисовки в визуальном редакторе, категория и т.п.

    В подпапке /lang папки действия располагаются файлы с локализацией фраз действия на различные языки.

    Файл с классом действия имеет вид типа:

    <?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
    
    class CBPMyActivity
    	extends CBPActivity
    {
    	public function __construct($name)
    	{
    		parent::__construct($name);
    		// Определим свойство действия MyText
    		// Оно может быть задано в визуальном редакторе при 
     		// помещении действия в шаблон бизнес-процесса
    		$this->arProperties = array("Title" => "", "MyText" => "");
    	}
    
    	// Исполняющийся метод действия
    	public function Execute()
    	{
    		// Суть действия – запись значения свойства в файл
    		if (strlen($this->MyText) > 0)
    		{
    			$f = fopen($_SERVER["DOCUMENT_ROOT"]."/dump.txt", "a");
    			fwrite($f, $this->MyText);
    			fclose($f);
    		}
    
    		// Возвратим исполняющей системе указание, что действие завершено
    		return CBPActivityExecutionStatus::Closed;
    	}
    
    	// Статический метод возвращает HTML-код диалога настройки 
    // свойств действия в визуальном редакторе. Если действие не имеет 
    // свойств, то этот метод не нужен
    	public static function GetPropertiesDialog($documentType, $activityName,
     		$arWorkflowTemplate,$arWorkflowParameters, $arWorkflowVariables,
     		$arCurrentValues = null, $formName = "")
    	{
    		$runtime = CBPRuntime::GetRuntime();
    
    		if (!is_array($arWorkflowParameters))
    			$arWorkflowParameters = array();
    		if (!is_array($arWorkflowVariables))
    			$arWorkflowVariables = array();
    
    		// Если диалог открывается первый раз, то подгружаем значение 
     	// свойства, которое было сохранено в шаблоне бизнес-процесса 
    		if (!is_array($arCurrentValues))
    		{
    			$arCurrentValues = array("my_text" => ""); 
    
    			$arCurrentActivity= &CBPWorkflowTemplateLoader::FindActivityByName(
     				$arWorkflowTemplate,
     				$activityName
     		);
    			if (is_array($arCurrentActivity["Properties"]))
    				$arCurrentValues["my_text "] =
     $arCurrentActivity["Properties"]["MyText"];
    		}
    
    		// Код, формирующий диалог, расположен в отдельном файле 
    		// properties_dialog.php в папке действия.
    		// Возвращаем этот код.
    		return $runtime->ExecuteResourceFile(
    			__FILE__,
    			"properties_dialog.php",
    			array(
    				"arCurrentValues" => $arCurrentValues,
    				"formName" => $formName,
    			)
    		);
    	}
    
    	// Статический метод получает введенные в диалоге настройки свойств 
    // значения и сохраняет их в шаблоне бизнес-процесса. Если действие не 
    // имеет свойств, то этот метод не нужен.
    	public static function GetPropertiesDialogValues($documentType, $activityName, 
    		&$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables,
     	 	$arCurrentValues, &$arErrors)
    	{
    		$arErrors = array();
    
    		$runtime = CBPRuntime::GetRuntime();
    
    		if (strlen($arCurrentValues["my_text "]) <= 0)
    		{
    			$arErrors[] = array(
    				"code" => "emptyCode",
    				"message" => GetMessage("MYACTIVITY_EMPTY_TEXT"),
    			);
    			return false;
    		}
    
    		$arProperties = array("MyText" => $arCurrentValues["my_text "]);
    
    		$arCurrentActivity = &CBPWorkflowTemplateLoader::FindActivityByName(
     			$arWorkflowTemplate,
     			$activityName
     		);
    		$arCurrentActivity["Properties"] = $arProperties;
    
    		return true;
    	}
    }
    ?>
    

    Код в файле properties_dialog.php, формирующий диалог настройки свойств действия в визуальном редакторе, может выглядеть примерно так:

    <?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
    ?>
    <tr>
    	<td align="right" width="40%"><span style="color:#FF0000;">*</span> :</td>
    	<td width="60%">
    		<textarea name="my_text" id="id_my_text " rows="5" cols="40"><?= htmlspecialchars($arCurrentValues["my_text"]) ?></textarea>
    		<input type="button" value="..." onclick="BPAShowSelector('id_my_text', 'string');">
    	</td>
    </tr>
    

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

    Пример создания действия Запись в лог

    Создадим действие, которое будет писать указанные в действии данные в лог бизнес-процесса или текстовый файл. Действие назовем Запись в лог. Название активити в структуре — write2logactivity.

      Структура файлов

    Создайте структуру файлов будущего Activity. Папка с Activity должна быть расположена в /bitrix/activities/custom/. Название папки с действием должно совпадать с именем файла, в котором находится класс с Activity, в данном случае папка должна называться /write2logactivity.

    Структура в общем виде подобна структуре компонентов:

    • .description.php – описание будущего действия;
    • properties_dialog.php – форма настроек действия;
    • write2logactivity.php – код действия;
    • icon.gif – иконка, которая будет отображать действие в общем списке действий дизайнера БП;
    • /lang/ – содержит папки с языковыми сообщениями. Папки должны называться в соответствии с идентификаторами языков. Например, ru, en. В каждой папке содержатся файлы с фразами, одноименные соответствующим файлам действия из основной папки:
      • /ru/
        • .description.php – языковые сообщения описывающие действие (например, название действия);
        • properties_dialog.php – языковые сообщения для формы настроек действия;
        • write2logactivity.php – языковые сообщения, выводимые кодом действия (например, вывод ошибок).

     Файлы активити, описанного в этом уроке, можно скачать в архиве: write2logactivity.zip.

      Описание действия

    Задайте описание будущего действия в файле .description.php:

    <?
    if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
    
    $arActivityDescription = array(
        "NAME" => GetMessage("BPDDA_DESCR_NAME"),
        "DESCRIPTION" => GetMessage("BPDDA_DESCR_DESCR"),
        "TYPE" => "activity",  // Тип - действие
        "CLASS" => "Write2LogActivity", // Класс с Activity
        "JSCLASS" => "BizProcActivity",  // Стандартная JS библиотека, которая будет рисовать Activity 
        "CATEGORY" => array(
            "ID" => "other", // Activity будет располагаться в категории "Прочее"
        ),
    );
    ?>
    

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

      Форма настроек действия

    Запрограммируйте форму настроек действия и логику её работы в файле properties_dialog.php:

    <?
    if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
    
    ?>
    <script>
    var b_log_counter = -1;
    function AddCondition(field, val)
    {
    
    	var addrowTable = document.getElementById('bwfvc_addrow_table1');
    
    	b_log_counter++;
    	var newRow = addrowTable.insertRow(-1);
    
    	newRow.id = "delete_row_log_" + b_log_counter;
    
    	var newCell = newRow.insertCell(-1);
    	var newSelect = document.createElement("input");
            newSelect.type = 'text';
             newCell.align="left";
            newSelect.size = '40';
    	newSelect.setAttribute('b_log_counter', b_log_counter);
    
    	newSelect.id = "id_var_name_" + b_log_counter;
    	newSelect.name = "fields[var_value_" + b_log_counter + "]";
    	var i = -1;
    	var i1 = -1;
    
    	newSelect.value = BWFVCUnHtmlSpecialChars(field);
    	newCell.appendChild(newSelect);
    
    	var newCell = newRow.insertCell(-1);
    	newCell.innerHTML = "=";
    
    	var newCell = newRow.insertCell(-1);
    	newCell.id = "id_row_value_" + b_log_counter;
            newCell.align="right";
         	newCell.innerHTML = '<input size="30" type="text" id="id_var_value_' + b_log_counter + '" name="values[var_value_' + b_log_counter + ']" value="' + val + '">';
    
            var newCell = newRow.insertCell(-1);
            newCell.id = "id_dialog_" + b_log_counter;
    
            newCell.innerHTML = '<input type="button" value="..." onclick="BPAShowSelector('id_var_value_'+b_log_counter+'', 'string');">';
    
            var newCell = newRow.insertCell(-1);
    	newCell.align="right";
    	newCell.innerHTML = '<a href="#" onclick="BWFVCDeleteCondition(' + b_log_counter + '); return false;">Удалить поле</a>';
            
            
    }
    
    function BWFVCUnHtmlSpecialChars(string, quote)
    {
    	string = string.toString();
    
    	if (quote)
    		string = string.replace(/'/g, "'");
    
    	string = string.replace(/"/g, """);
    	string = string.replace(/>/g, ">");
    	string = string.replace(/</g, "<");
    	string = string.replace(/&/g, '&');
    
    	return string;
    }
    function BWFVCDeleteCondition(ind)
    {
    	var addrowTable = document.getElementById('bwfvc_addrow_table1');
    
    	var cnt = addrowTable.rows.length;
    	for (i = 0; i < cnt; i++)
    	{
    		if (addrowTable.rows[i].id != 'delete_row_log_' + ind)
    			continue;
    
    		addrowTable.deleteRow(i);
    
    		break;
    	}
           // if (addrowTable.rows.length <= 0)
            //    addrowTable.style.display = 'none';
    }
    function Write2File()
    {
        var f_table = document.getElementById('write2filetable');
        if (f_table.rows.length <= 0)
        {
            var newRow = f_table.insertRow(-1);
            var newCell = newRow.insertCell(-1);
            //newCell.align="right";
            //newCell.style.padding.left = '100px';
         	newCell.innerHTML = '<input size="40" type="text" id="path2file" name="path2file" value="<?= ($arCurrentValues["path2file"])? $arCurrentValues["path2file"]: "/bitrix/test.log"?>">';
        }
        else
            f_table.deleteRow("-1");
    }
    </script>
    
    <tr id="write_file_form" style="display:line">
    	<td colspan="2">
                <input type="checkbox" id="write2file" name="write2file" onchange="Write2File();"><?= GetMessage("WRITE_2_LOG");?>
    		<table width="100%" border="0" cellpadding="2" cellspacing="2" id="write2filetable">
    		</table>
    	</td>
    </tr>
    
    <tr id="pd_list" style="display:line">
    	<td colspan="2">
    		<table width="100%" border="0" cellpadding="2" cellspacing="2" id="bwfvc_addrow_table1">
    		</table>
    		<a href="#" onclick="AddCondition('', ''); return false;"><?= GetMessage("ADD_CONDITION");?></a>
    	</td>
    </tr>
    <script>
    <?
    
    foreach ($arCurrentValues["MapFields"] as $fieldKey => $documentFieldValue)
    {
    	?>
    	AddCondition('<?= CUtil::JSEscape($fieldKey) ?>', '<?= CUtil::JSEscape($documentFieldValue) ?>');
    	<?
    }
    if (count($arCurrentValues) <= 0)
    {
    	?>AddCondition("", "");<?
    }
    ?>
    var check = '<?= $arCurrentValues["write2file"];?>';
    if (check == "Y")
    {
        document.getElementById("write2file").checked = "checked";
        Write2File();
    }
    </script>

    В результате при открытии формы настроек действия получим:

    Если опция Писать в файл отключена — данные запишутся в лог бизнес-процесса. При включении опции появится дополнительное поле для указания пути к файлу. В этот файл и запишутся логи. По умолчанию это /bitrix/test.log.

    Далее в форме указываются поля для записи в лог. В левом поле вручную вносится название записи, а в правой — значение, для которого доступна подстановка через форму Вставка значения. Кнопка Добавить поле добавляет новую строку, а Удалить поле — удаляет строку.

      Основной код

    Задайте код работы действия в файле write2logactivity.php.

    <?
    if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
    
    class CBPWrite2LogActivity
    	extends CBPActivity
    {
    	public function __construct($name)
    	{
    		parent::__construct($name);
    		$this->arProperties = array(
    			"Title" => "",
    			"MapFields" => null,
    			"write2file" => null,
    			"path2file"=> null
    		);
    	}
    
    	public function Execute()
    	{
                if (is_array($this->arProperties["MapFields"]) && count($this->arProperties["MapFields"]))
                {
                    $printVal = $this->__get("MapFields");
                    $bFirst = true;
    
                    foreach($printVal as $key => $val)
                    {
                        if ($this->arProperties["write2file"] == "Y")
                        {
                            
                            $f = fopen ($_SERVER["DOCUMENT_ROOT"].$this->arProperties["path2file"], "a+");
                            if ($bFirst)
                                 fwrite ($f, print_r ("nnn===========================================================n",true));
                            fwrite ($f, print_r ($key." = ".$val."n",true));
                            fclose($f);
                            $bFirst = false;
                        }
                        else
                            $this->WriteToTrackingService($key." = ".$val);
                    }
                }
                return CBPActivityExecutionStatus::Closed;
    	}
    
    	public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = null, $formName = "")
    	{
                $runtime = CBPRuntime::GetRuntime();
                
                if (!is_array($arCurrentValues))
                {
                    $arCurrentValues = array();
                    
                    $arCurrentActivity = &CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName);
               
                    if (is_array($arCurrentActivity["Properties"]) 
                            && array_key_exists("MapFields", $arCurrentActivity["Properties"])
                            && is_array($arCurrentActivity["Properties"]["MapFields"]))
                    {
                        foreach ($arCurrentActivity["Properties"]["MapFields"] as $k => $v)
                        {
                            $arCurrentValues["MapFields"][$k] = $v;
                        }
                        $arCurrentValues["write2file"] = $arCurrentActivity["Properties"]["write2file"];
                        $arCurrentValues["path2file"] = $arCurrentActivity["Properties"]["path2file"];
                    }
                }
    
                $runtime = CBPRuntime::GetRuntime();
                return $runtime->ExecuteResourceFile(
                        __FILE__,
                        "properties_dialog.php",
                        array(
                            "arCurrentValues" => $arCurrentValues,
                            "formName" => $formName,
                            )
                        );
    	}
    
    	public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
    	{
                $runtime = CBPRuntime::GetRuntime();
                $arProperties = array("MapFields" => array());
    
                if (is_array($arCurrentValues) && count($arCurrentValues)>0)
                {
                    if  (is_array($arCurrentValues["fields"]) && count($arCurrentValues["fields"]) > 0
                        && is_array($arCurrentValues["values"]) && count($arCurrentValues["values"]) > 0)
                    {
                        foreach($arCurrentValues["fields"] as $key => $value)
                            if (strlen($value) > 0 && strlen($arCurrentValues["values"][$key]) > 0)
                                 $arProperties["MapFields"][$value] = $arCurrentValues["values"][$key];
                    }
                    $arProperties ["write2file"] = $arCurrentValues["write2file"] == "Y" ? "Y" : "N";
                    $arProperties ["path2file"] = $arCurrentValues["path2file"];
                }
    
                $arCurrentActivity = &CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName);
                $arCurrentActivity["Properties"] = $arProperties;
    
                return true;
    	}
            public static function ValidateProperties($arTestProperties = array(), CBPWorkflowTemplateUser $user = null)
    	{
    		$arErrors = array();
                    $path = "";
                    if ($arTestProperties["path2file"])
                    {
                        $path = $_SERVER["DOCUMENT_ROOT"].$arTestProperties["path2file"];
                        if (!file_exists($path) && !is_writable(GetDirPath($path)))
                            $arErrors[] = array("code" => "DirNotWritable", "parameter" => "path2file", "message" => GetMessage("DIR_NOT_WRITABLE"));
                        if (file_exists($path) && !!is_writable(GetDirPath($path)))
                            $arErrors[] = array("code" => "FileNotWritable", "parameter" => "path2file", "message" => GetMessage("FILE_NOT_WRITABLE"));
                    }
    
    		return array_merge($arErrors, parent::ValidateProperties($arTestProperties, $user));
    	}
    }
    

     Разъясним чуть подробнее отдельные части этого кода, на которые надо обратить внимание разработчикам.

    • Зададим заголовок класса и конструктор. В конструкторе определяются параметры действия:
      class CBPWrite2LogActivity
          extends CBPActivity
      {
          public function __construct($name)
          {
              parent::__construct($name);
              $this->arProperties = array(
                  "Title" => "",
                  "MapFields" => null,
                  "write2file" => null,
                  "path2file"=> null
              );
          }
    • Выводим диалог настройки параметров действия. Если параметры уже были заданы, то они инициализируются:
      public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = null, $formName = "")
      {
            $runtime = CBPRuntime::GetRuntime();
            
            if (!is_array($arCurrentValues))
            {
                $arCurrentValues = array();
                
                $arCurrentActivity = &CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName);
      ...............................
                       }
      
         $runtime = CBPRuntime::GetRuntime();
         return $runtime->ExecuteResourceFile(
               __FILE__,
               "properties_dialog.php",
               array(
                  "arCurrentValues" => $arCurrentValues, 
                  "formName" => $formName,
               )
          );
      }
    • Сохранение настроек, сделанных в диалоге настройки действия:
      public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
          {
            $runtime = CBPRuntime::GetRuntime();
            $arProperties = array("MapFields" => array());
      //Получили массив значений $arCurrentValues
                  if (is_array($arCurrentValues) && count($arCurrentValues)>0)
                  {
           ........................
                      $arProperties ["write2file"] = $arCurrentValues["write2file"] == "Y" ? "Y" : "N";
                      $arProperties ["path2file"] = $arCurrentValues["path2file"];
                  }
      //Получаем переменные текущего действия по ссылке и заменяем их
                  $arCurrentActivity = &CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName);
                  $arCurrentActivity["Properties"] = $arProperties;
      
                  return true;
      }
    • Проверка параметров действия:
      public static function ValidateProperties($arTestProperties = array(), CBPWorkflowTemplateUser $user = null)
          {
              $arErrors = array();
                $path = "";
                if ($arTestProperties["path2file"])
                {
                 $path = $_SERVER["DOCUMENT_ROOT"].$arTestProperties["path2file"];
                 if (!file_exists($path) && !is_writable(GetDirPath($path)))
                  $arErrors[] = array("code" => "DirNotWritable", "parameter" => "path2file", "message" => GetMessage("DIR_NOT_WRITABLE"));
                 if (file_exists($path) && !!is_writable(GetDirPath($path)))
                  $arErrors[] = array("code" => "FileNotWritable", "parameter" => "path2file", "message" => GetMessage("FILE_NOT_WRITABLE"));
                }
      
              return array_merge($arErrors, parent::ValidateProperties($arTestProperties, $user));
          }

      Языковые сообщения

    Осталось прописать языковые сообщения, которые отобразятся в публичной части. Переходим в папку /lang/ru и заполняем файлы:

    • Файл .description.php:
      <?
      $MESS ['BPDDA_DESCR_DESCR'] = "Запись в лог";
      $MESS ['BPDDA_DESCR_NAME'] = "Запись в лог";
      ?>
      
    • Файл properties_dialog.php:
      <?
      $MESS ['WRITE_2_LOG'] = "Писать в файл";
      $MESS ['ADD_CONDITION'] = "Добавить поле";
      ?>
      
    • Файл write2logactivity.php:
      <?
      $MESS ['DIR_NOT_WRITABLE'] = "Папка, в которую сохраняется файл, не доступна для записи";
      $MESS ['FILE_NOT_WRITABLE'] = "Файл недоступен для записи";
      ?>
      

      Результаты

    Заполненная форма действия может выглядеть так:

    При включенной опции Писать в файл, лог будет записан в указанный файл. Если указанный файл не существует — он будет создан. Пример записанного лога в файле:

    При отключенной опции Писать файл, вывод мы получим в логе бизнес-процесса:

    Пример создания действия Создать задачу

    Создаём своё действие

    Действие для создания задачи 2.0 (task2activity) создано по алгоритму, описанному выше. Поэтому просто приведем структуру действия и коды файлов. Функционал полностью повторяет стандартное действие для создания задачи.

    Структура файлов Activity

    • /task2activity/
      • /lang/
        • /en/
        • /ru/
          • .description.php
          • properties_dialog.php
          • task2activity.php
      • icon.gif
      • .description.php
      • properties_dialog.php
      • task2activity.php

    Код файлов

    task2activity.description.php

    <?
    if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
    
    $arActivityDescription = array(
    	"NAME" => GetMessage("BPTA2_DESCR_NAME"),
    	"DESCRIPTION" => GetMessage("BPTA2_DESCR_DESCR"),
    	"TYPE" => "activity",
    	"CLASS" => "Task2Activity",
    	"JSCLASS" => "BizProcActivity",
    	"CATEGORY" => array(
    		"ID" => "interaction",
    	),
    );
    ?>

    task2activityproperties_dialog.php

    <?
    if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
    ?>
    
    <tr>
    	<td align="right" width="40%"><span style="color:#FF0000;">* <?= GetMessage("BPTA1A_TASKNAME") ?>:</td>
    	<td width="60%">
    		<input type="text" name="task_name" id="id_task_name" value="<?= htmlspecialchars($arCurrentValues["task_name"]) ?>" size="50">
    		<input type="button" value="..." onclick="BPAShowSelector('id_task_name', 'string');">
    	</td>
    </tr>
    <tr>
    	<td align="right" width="40%"><span style="color:#FF0000;">*</span> <?= GetMessage("BPTA1A_TASKCREATEDBY") ?>:</td>
    	<td width="60%">
    		<input type="text" name="task_created_by" id="id_task_created_by" value="<?= htmlspecialchars($arCurrentValues["task_created_by"]) ?>" size="50">
    		<input type="button" value="..." onclick="BPAShowSelector('id_task_created_by', 'user');">
    	</td>
    </tr>
    <tr>
    	<td align="right" width="40%"><span style="color:#FF0000;">*</span> <?= GetMessage("BPTA1A_TASKASSIGNEDTO") ?>:</td>
    	<td width="60%">
    		<input type="text" name="task_assigned_to" id="id_task_assigned_to" value="<?= htmlspecialchars($arCurrentValues["task_assigned_to"]) ?>" size="50">
    		<input type="button" value="..." onclick="BPAShowSelector('id_task_assigned_to', 'user');">
    	</td>
    </tr>
    <tr>
    	<td align="right" width="40%"><?= GetMessage("BPTA1A_TASKACTIVEFROM") ?>:</td>
    	<td width="60%">
    		<span style="white-space:nowrap;"><input type="text" name="task_active_from" id="id_task_active_from" size="30" value="<?= htmlspecialchars($arCurrentValues["task_active_from"]) ?>"><?= CAdminCalendar::Calendar("task_active_from", "", "", true) ?></span>
    		<input type="button" value="..." onclick="BPAShowSelector('id_task_active_from', 'datetime');">
    	</td>
    </tr>
    <tr>
    	<td align="right" width="40%"><?= GetMessage("BPTA1A_TASKACTIVETO") ?>:</td>
    	<td width="60%">
    		<span style="white-space:nowrap;"><input type="text" name="task_active_to" id="id_task_active_to" size="30" value="<?= htmlspecialchars($arCurrentValues["task_active_to"]) ?>"><?= CAdminCalendar::Calendar("task_active_to", "", "", true) ?></span>
    		<input type="button" value="..." onclick="BPAShowSelector('id_task_active_to', 'datetime');">
    	</td>
    </tr>
    
    <tr>
    	<td align="right" width="40%"><?= GetMessage("BPTA1A_TASKDETAILTEXT") ?>:</td>
    	<td width="60%">
    		<textarea name="task_detail_text" id="id_task_detail_text" rows="7" cols="40"><?= htmlspecialchars($arCurrentValues["task_detail_text"]) ?></textarea>
    		<input type="button" value="..." onclick="BPAShowSelector('id_task_detail_text', 'string');">
    	</td>
    </tr>
    <tr>
    	<td align="right" width="40%"><?= GetMessage("BPTA1A_TASKPRIORITY") ?>:</td>
    	<td width="60%">
    		<select name="task_priority">
    			<?
    			foreach ($arTaskPriority as $key => $value)
    			{
    				?><option value="<?= $key ?>"<?= $arCurrentValues["task_priority"] == $key ? " selected" : "" ?>><?= $value ?></option><?
    			}
    			?>
    		</select>
    	</td>
    </tr>
    <tr>
    	<td align="right" width="40%"> <?= GetMessage("BPTA1A_TASKGROUPID") ?>:</td>
    	<td width="60%">
    		<select name="task_group_id" id="id_task_group_id">
    			<?
    			foreach ($arGroups as $key => $value)
    			{
    				?><option value="<?= $key ?>"<?= $arCurrentValues["task_group_id"] == $key ? " selected" : "" ?>><?= $value ?></option><?
    			}
    			?>
    		</select>
    	</td>
    </tr>
    <tr>
    	<td align="right" width="40%"><?= GetMessage("BPTA1A_CHANGE_DEADLINE") ?>:</td>
    	<td width="60%">
    		<input type="checkbox" name="task_change_deadline" id="id_task_change_deadline" <?= ($arCurrentValues["task_change_deadline"] == "Y")? "checked":""?>>
    	</td>
    </tr>
    <tr>
    	<td align="right" width="40%"><?= GetMessage("BPTA1A_CHECK_RESULT") ?>:</td>
    	<td width="60%">
                <input type="checkbox" name="task_check_result" id="id_task_check_result" <?= ($arCurrentValues["task_check_result"] == "Y")? "checked":""?>>
    	</td>
    </tr>
    <tr>
    	<td align="right" width="40%"><?= GetMessage("BPTA1A_ADD_TO_REPORT") ?>:</td>
    	<td width="60%">
    		<input type="checkbox" name="task_report" id="id_task_report" <?= ($arCurrentValues["task_report"] == "Y")? "checked":""?>>
    	</td>
    </tr>
    <tr>
    	<td align="right" width="40%"><?= GetMessage("BPTA1A_TASKTRACKERS") ?>:</td>
    	<td width="60%">
    		<input type="text" name="task_trackers" id="id_task_trackers" value="<?= htmlspecialchars($arCurrentValues["task_trackers"]) ?>" size="50">
    		<input type="button" value="..." onclick="BPAShowSelector('id_task_trackers', 'user');">
    	</td>
    </tr>

    task2activitytask2activity.php

    <?
    if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
    
    class CBPTask2Activity
    	extends CBPActivity
    {
    	public function __construct($name)
    	{
    		parent::__construct($name);
    		$this->arProperties = array(
    			"Title" => "", //название действия
    			"TaskGroupId" => "", //личная или группа
    			"TaskOwnerId" => "", //
    			"TaskCreatedBy" => "", //автор
    			"TaskActiveFrom" => "", //от
    			"TaskActiveTo" => "", //до
    			"TaskName" => "", //название задачи
    			"TaskDetailText" => "", //описание
    			"TaskPriority" => "", //приоритет
    			"TaskAssignedTo" => "", //ответственный
    			"TaskTrackers" => "", //следящие
    			"TaskCheckResult" => "", //
    			"TaskReport" => "", //
    			"TaskChangeDeadline" => "",
    		);
    	}
    
    	private function __GetUsers($arUsersDraft)
    	{
                
    		$arUsers = array();
    
    		$rootActivity = $this->GetRootActivity();
    		$documentId = $rootActivity->GetDocumentId();
    
    		$documentService = $this->workflow->GetService("DocumentService");
    
    		$arUsersDraft = (is_array($arUsersDraft) ? $arUsersDraft : array($arUsersDraft));
    		$l = strlen("user_");
    		foreach ($arUsersDraft as $user)
    		{
    			if (substr($user, 0, $l) == "user_")
    			{
    				$user = intval(substr($user, $l));
    				if ($user > 0)
    					$arUsers[] = $user;
    			}
    			else
    			{
    				$arDSUsers = $documentService->GetUsersFromUserGroup($user, $documentId);
    				foreach ($arDSUsers as $v)
    				{
    					$user = intval($v);
    					if ($user > 0)
    						$arUsers[] = $user;
    				}
    			}
    		}
    
    		return $arUsers;
    	}
    
    	public function Execute()
    	{
    
    		if (!CModule::IncludeModule("tasks"))
    			return CBPActivityExecutionStatus::Closed;
                  
    		$arTaskCreatedBy = $this->__GetUsers($this->TaskCreatedBy);
    		$arTaskAssignedTo = $this->__GetUsers($this->TaskAssignedTo);
    
    		if (count($arTaskCreatedBy) <= 0 || count($arTaskAssignedTo) <= 0)
    			return CBPActivityExecutionStatus::Closed;
    
    		$arTaskTrackers = $this->__GetUsers($this->TaskTrackers);
    
                    $bFirst = true;
                    $ACCOMPLICES = array();
                    foreach($arTaskAssignedTo as $respUser)
                    {
                        if ($bFirst)
                        {
                            $RESPONSIBLE_ID = $respUser;
                            $bFirst = false;
                        }
                        else
                            $ACCOMPLICES[] = $respUser;
                    }
    
    		$arFields = array(
    			"MODIFIED_BY" => $arTaskCreatedBy[0],
    			"CREATED_BY" => $arTaskCreatedBy[0],
                            "SITE_ID" => SITE_ID,
                            "STATUS" => "1",
    			"DATE_CREATE" => date($GLOBALS["DB"]->DateFormatToPHP(FORMAT_DATETIME)),
    			"START_DATE_PLAN" => $this->TaskActiveFrom,
    			"END_DATE_PLAN" => $this->TaskActiveTo,
                            "DEADLINE" => $this->TaskActiveTo,
    			"TITLE" => $this->TaskName,
    			"DESCRIPTION" => $this->TaskDetailText,
    			"PRIORITY" => $this->TaskPriority,
    			"RESPONSIBLE_ID" => $RESPONSIBLE_ID,
    			"AUDITORS" => $arTaskTrackers,
                            "ADD_IN_REPORT" => $this->TaskReport,
                            "TASK_CONTROL" => $this->TaskCheckResult,
                            "ALLOW_CHANGE_DEADLINE" => $this->TaskChangeDeadline,
    		);
                    if ($this->TaskGroupId && $this->TaskGroupId !== 0)
                          $arFields["GROUP_ID"] = $this->TaskGroupId;
    
                    if (count ($ACCOMPLICES) > 0)
                        $arFields["ACCOMPLICES"] = $ACCOMPLICES;
    
                    $task = new CTasks;
                    $result = $task->Add($arFields);
    
                    if ($result)
                        $this->WriteToTrackingService(str_replace("#VAL#", $result, GetMessage("BPSA_TRACK_OK")));
    
                    $arErrors = $task->GetErrors();
                    if (count($arErrors) > 0)
                        $this->WriteToTrackingService(GetMessage("BPSA_TRACK_ERROR"));
                    
    		return CBPActivityExecutionStatus::Closed;
    	}
    
    	public static function ValidateProperties($arTestProperties = array(), CBPWorkflowTemplateUser $user = null)
    	{
    		$arErrors = array();
    
    		if (!array_key_exists("TaskAssignedTo", $arTestProperties) || count($arTestProperties["TaskAssignedTo"]) <= 0)
    			$arErrors[] = array("code" => "NotExist", "parameter" => "TaskAssignedTo", "message" => GetMessage("BPSNMA_EMPTY_TASKASSIGNEDTO"));
    		if (!array_key_exists("TaskName", $arTestProperties) || count($arTestProperties["TaskName"]) <= 0)
    			$arErrors[] = array("code" => "NotExist", "parameter" => "TaskName", "message" => GetMessage("BPSNMA_EMPTY_TASKNAME"));
    
    		return array_merge($arErrors, parent::ValidateProperties($arTestProperties, $user));
    	}
    
    	public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = null, $formName = "")
    	{
    		$runtime = CBPRuntime::GetRuntime();
    
    		if (!CModule::IncludeModule("socialnetwork"))
    			return;
    
    		$arMap = array(
    			"TaskGroupId" => "task_group_id",
    			"TaskOwnerId" => "task_owner_id",
    			"TaskCreatedBy" => "task_created_by",
    			"TaskActiveFrom" => "task_active_from",
    			"TaskActiveTo" => "task_active_to",
    			"TaskName" => "task_name",
    			"TaskDetailText" => "task_detail_text",
    			"TaskPriority" => "task_priority",
    			"TaskAssignedTo" => "task_assigned_to",
    			"TaskTrackers" => "task_trackers",
                            "TaskCheckResult" => "task_check_result",
                            "TaskReport" => "task_report",
                            "TaskChangeDeadline" => "task_change_deadline",
    		);
    
    		if (!is_array($arWorkflowParameters))
    			$arWorkflowParameters = array();
    		if (!is_array($arWorkflowVariables))
    			$arWorkflowVariables = array();
    
    		if (!is_array($arCurrentValues))
    		{
    			$arCurrentActivity = &CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName);
    			if (is_array($arCurrentActivity["Properties"]))
    			{
    				foreach ($arMap as $k => $v)
    				{
    					if (array_key_exists($k, $arCurrentActivity["Properties"]))
    					{
    						if ($k == "TaskCreatedBy" || $k == "TaskAssignedTo" || $k == "TaskTrackers")
    							$arCurrentValues[$arMap[$k]] = CBPHelper::UsersArrayToString($arCurrentActivity["Properties"][$k], $arWorkflowTemplate, $documentType);
                                                    else
    							$arCurrentValues[$arMap[$k]] = $arCurrentActivity["Properties"][$k];
    					}
                                            elseif ($k == "TaskPriority")
                                            {
                                                $arCurrentValues[$arMap[$k]] = "1";
                                            }
    					else
    					{
                                                $arCurrentValues[$arMap[$k]] = "";
    					}
    				}
    			}
    			else
    			{
    				foreach ($arMap as $k => $v)
    					$arCurrentValues[$arMap[$k]] = "";
    			}
    
    		}
    
    
                    $arGroups = array(GetMessage("TASK_EMPTY_GROUP"));
    		$db = CSocNetGroup::GetList(array("NAME" => "ASC"), array("ACTIVE" => "Y"), false, false, array("ID", "NAME"));
    		while ($ar = $db->GetNext())
    			$arGroups[$ar["ID"]] = "[".$ar["ID"]."]".$ar["NAME"];
    
    		$arTaskPriority = array(0, 1, 2);
    		foreach($arTaskPriority as $k => $v)
    			$arTaskPriority[$v] = GetMessage("TASK_PRIORITY_".$v);
    
    		return $runtime->ExecuteResourceFile(
    			__FILE__,
    			"properties_dialog.php",
    			array(
    				"arCurrentValues" => $arCurrentValues,
    				"formName" => $formName,
    				"arGroups" => $arGroups,
    				"arTaskPriority" => $arTaskPriority,
    			)
    		);
    	}
    
    	public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
    	{
    		$arErrors = array();
    
    		$runtime = CBPRuntime::GetRuntime();
    
    		$arMap = array(
    			"task_group_id" => "TaskGroupId",
    			"task_owner_id" => "TaskOwnerId",
    			"task_created_by" => "TaskCreatedBy",
    			"task_active_from" => "TaskActiveFrom",
    			"task_active_to" => "TaskActiveTo",
    			"task_name" => "TaskName",
    			"task_detail_text" => "TaskDetailText",
    			"task_priority" => "TaskPriority",
    			"task_assigned_to" => "TaskAssignedTo",
    			"task_trackers" => "TaskTrackers",
    			"task_forum_id" => "TaskForumId",
                            "task_check_result" => "TaskCheckResult",
                            "task_report" => "TaskReport",
                            "task_change_deadline" => "TaskChangeDeadline",
    		);
    
    		$arProperties = array();
    		foreach ($arMap as $key => $value)
    		{
    			if ($key == "task_created_by" || $key == "task_assigned_to" || $key == "task_trackers")
    				continue;
    			$arProperties[$value] = $arCurrentValues[$key];
    		}
    
    		$arProperties["TaskCreatedBy"] = CBPHelper::UsersStringToArray($arCurrentValues["task_created_by"], $documentType, $arErrors);
    		if (count($arErrors) > 0)
    			return false;
    
    		$arProperties["TaskAssignedTo"] = CBPHelper::UsersStringToArray($arCurrentValues["task_assigned_to"], $documentType, $arErrors);
    		if (count($arErrors) > 0)
    			return false;
    
    		$arProperties["TaskTrackers"] = CBPHelper::UsersStringToArray($arCurrentValues["task_trackers"], $documentType, $arErrors);
    		if (count($arErrors) > 0)
    			return false;
    
    		$arErrors = self::ValidateProperties($arProperties, new CBPWorkflowTemplateUser(CBPWorkflowTemplateUser::CurrentUser));
    		if (count($arErrors) > 0)
    			return false;
    
    		$arCurrentActivity = &CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName);
    		$arCurrentActivity["Properties"] = $arProperties;
    
    		return true;
    	}
    }
    ?>

    task2activitylangru.description.php

    <?
    $MESS ['BPTA2_DESCR_DESCR'] = "Добавление задачи 2.0";
    $MESS ['BPTA2_DESCR_NAME'] = "Задача 2.0";
    ?>

    task2activitylangruproperties_dialog.php

    <?
    $MESS ['BPTA1A_TASKGROUPID'] = "Группа соц. сети";
    $MESS ['BPTA1A_TASKCREATEDBY'] = "Задача создается от имени";
    $MESS ['BPTA1A_TASKASSIGNEDTO'] = "Ответственный";
    $MESS ['BPTA1A_TASKACTIVEFROM'] = "Начало";
    $MESS ['BPTA1A_TASKACTIVETO'] = "Окончание";
    $MESS ['BPTA1A_TASKNAME'] = "Название задачи";
    $MESS ['BPTA1A_TASKDETAILTEXT'] = "Описание задачи";
    $MESS ['BPTA1A_TASKTRACKERS'] = "Следящие";
    $MESS ['BPTA1A_TASKPRIORITY'] = "Важность";
    $MESS ['BPTA1A_TASKFORUM'] = "Форум для комментариев";
    $MESS ['BPTA1A_ADD_TO_REPORT'] = "Проконтролировать результат выполнения";
    $MESS ['BPTA1A_CHECK_RESULT'] = "Включить задачу в отчет по эффективности";
    $MESS ['BPTA1A_CHANGE_DEADLINE'] = "Разрешить ответственному менять сроки";
    ?>

    task2activitylangrutask2activity.php

    <?
    $MESS ['BPSNMA_EMPTY_TASKASSIGNEDTO'] = "Свойство 'Ответственный' не указано.";
    $MESS ['BPSNMA_EMPTY_TASKNAME'] = "Свойство 'Название задачи' не указано.";
    $MESS ['TASK_PRIORITY_0'] = "Низкая";
    $MESS ['TASK_PRIORITY_1'] = "Средняя";
    $MESS ['TASK_PRIORITY_2'] = "Высокая";
    $MESS ['TASK_EMPTY_GROUP'] = "Персональная задача";
    $MESS ['BPSA_TRACK_OK'] = "Создана задача с ID ##VAL#";
    $MESS ['BPSA_TRACK_ERROR'] = "При создании задачи произошла ошибка.";
    ?>

    Выполнение «задания» бизнес-процесса, используя API

    Выполняем задание с помощью API

    Некоторые действия могут приостанавливать выполнение бизнес-процесса и ожидать реакции от пользователя.

    Для таких действий существует возможность выполнять задания вместо пользователя через АПИ, для этого необходимо отправить внешнее событие рабочему потоку следующим образом:

    CBPDocument::SendExternalEvent($workflowId, $activityName, $arEventParameters);

    где:

    • $workflowId — идентификатор экземпляра бизнес-процесса;
    • $activityName — название действия, ожидающего внешнего события;
    • $arEventParameters — массив параметров, необходимых для конкретного действия.

      Примечание: Для разных действий параметры различаются.

      Подробнее про принимаемые параметры конкретного действия можно посмотреть в его исходном коде, метод CBPWorkflow::OnExternalEvent.

    Пример для действия «Утверждение документа»:

    CBPDocument::SendExternalEvent("5046fe0fbf1888.64722245","Approve1" ,array("USER_ID"=>1,"APPROVE"=>true));

    где:

    • "5046fe0fbf1888.64722245" — идентификатор экземпляра бизнес-процесса;
    • "Approve1" — название действия согласования;
    • "USER_ID"=>1 — идентификатор согласующего пользователя;
    • "APPROVE"=>true — результат согласования (в случае отклонения — false).

    Использование REST в бизнес-процессах

    В главе рассмотрено использование REST в бизнес-процессах. Описание методов находится в документации.

    REST в бизнес-процессах

    Используем REST

    Чтобы приложение Битрикс24 могло зарегистрировать действие в дизайнере бизнес-процессов, при загрузке нужно указать ему разрешение на работу с ними.

    В это разрешение входят следующие методы:

    • bizproc.activity.add
    • bizproc.activity.delete
    • bizproc.activity.list
    • bizproc.activity.log
    • bizproc.event.send

    Приложение при помощи метода bizproc.activity.add регистрирует свое действие бизнес-процесса, которое будет отображаться во вкладке дизайнера Действия приложений. При этом для действия необходимо задать:

    • названия и описания для разных языков,
    • список входных и выходных параметров действия,
    • ссылка на обработчик,
    • применимость к различным типам документов,
    • дополнительные параметры типа флага, предполагается ли ожидание завершения, или типа авторизации.
    var params = {
       'CODE': 'md5',
       'HANDLER': 'http://sigurd.office.bitrix.ru/bp/ping.php',
       'AUTH_USER_ID': 1,
       'USE_SUBSCRIPTION': 'Y',
       'NAME': {
          'ru': 'MD5 генератор',
          'en': 'MD5 generator'
       },
       'DESCRIPTION': {
          'ru': 'Действие возвращает MD5 хеш от входящего параметра',
          'en': 'Activity returns MD5 hash of input parameter'
       },
       'PROPERTIES': {
          'inputString': {
             'Name': {
                'ru': 'Входящая строка',
                'en': 'Input string'
             },
             'Description': {
                'ru': 'Введите строку, которую вы хотите хешировать',
                'en': 'Input string for hashing'
             },
             'Type': 'string',
             'Required': 'Y',
             'Multiple': 'N',
             'Default': '{=Document:NAME}',
          }
       },
       'RETURN_PROPERTIES': {
          'outputString': {
             'Name': {
                'ru': 'MD5',
                'en': 'MD5'
             },
             'Type': 'string',
             'Multiple': 'N',
             'Default': null
          }
       }
    };
    
    BX24.callMethod(
       'bizproc.activity.add',
       params,
       function(result)
       {
          if(result.error())
             alert("Error: " + result.error());
          else
             alert("Успешно: " + result.data());
       }
    );

    Результат:

    Когда исполняющийся бизнес-процесс, содержащий данное действие, доходит до зарегистрированного приложением действия, то совершается вызов ссылки, указанной в параметре HANDLER. В POST-данных передаются идентификатор бизнес-процесса и идентификатор действия бизнес-процесса, входные параметры действия, а также, параметры REST-авторизации. Все происходит аналогично вызовам обработчиков событий.

    Пример входных данных:

    array(
      'workflow_id' => '55c1dc1c3f0d75.78875596',
      'event_token' => '55c1dc1c3f0d75.78875596|A51601_82584_96831_81132|hsyUws1j4XiwqPqN45eH66CcQtEvpUIP.47dd5d888e8e549d2c984713e12a4268e6e87d0208ca1f093ba1075e77f92e90'
      'code' => 'md5',
      'properties' => array(
        'inputString' => 'Тестовый текст: Тест событий для поста в ЖЛ',
      ),
      'auth' => array(
        'access_token' => '2irn0939uscuk7xxacc8tgn7vyjs4xn3',
        'expires_in' => '3600',
        'scope' => 'bizproc,user',
        'user_id' => '1',
        'status' => 'L',
        'member_id' => 'd41d8cd98f00b204e9800998ecf8427e',
        'domain' => 'b24.sigurd.bx',
      ),
      'ts' => '1442580723',
    )
    

    Затем бизнес-процесс либо продолжается, либо останавливается и ждет ответа от приложения. Это зависит от настроек действия.

    Приложение должно сообщить бизнес-процессу результат своей работы и дать сигнал, что можно продолжать бизнес-процесс дальше. Делается это при помощи метода bizproc.event.send, которому передаются значения выходных параметров, заданных в описании действия, а также, информация для записи в лог бизнес-процесса. Пока приложение не сообщило ответ на свое действие, оно может записывать информацию в лог процесса при помощи метода bizproc.activity.log.

    В следующем примере содержится код простейшего обработчика, возвращающего бизнес-процессу md5 от полученной строки:

    <?php
    file_put_contents(dirname(__FILE__)."/db/log.log", date('c').": ".var_export($_REQUEST, 1)."n", FILE_APPEND);
    
    if(is_array($_REQUEST["auth"]) && isset($_REQUEST["auth"]["access_token"]))
    {
       $portal = $_REQUEST["auth"]["domain"];
    
       $requestValue = $_REQUEST["properties"]["inputString"];
       $responseValue = md5($requestValue);
    
       $c = curl_init("http://" . $portal . "/rest/bizproc.event.send.json");
    
       $params = array(
          "auth" => $_REQUEST["auth"]["access_token"],
          "event_token" => $_REQUEST["event_token"],
          "log_message" => "Got '".$requestValue."' string!",
          "return_values" => array(
             "outputString" => $responseValue,
          )
       );
    
       curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
       curl_setopt($c, CURLOPT_HEADER, true);
       curl_setopt($c, CURLINFO_HEADER_OUT, true);
       curl_setopt($c, CURLOPT_VERBOSE, true);
       curl_setopt($c, CURLOPT_POST, true);
       curl_setopt($c, CURLOPT_POSTFIELDS, http_build_query($params));
    
       $response = curl_exec($c);
    
       file_put_contents(dirname(__FILE__)."/db/log.log", "response: ".$response."n", FILE_APPEND);
    }

    В самом процессе это выглядит следующим образом:

    Внимание! При удалении и при обновлении приложения все действия, связанные с приложением, удаляются!

    Пример использования REST в процессах

    Стандартное действие Задача не позволяет нам работать с чек-листами. Однако, используя rest-методы работы с задачами, это сделать можно. К тому же в данном примере работа будет вестись не через задания бизнес-процессов, а саму задачу, что так же нельзя реализовать, используя штатное действие.

    Задание: Необходимо поставить задачу юристу организации проверить данные контрагента. Задача должна содержать чек-лист со списком проверяемых данных. Если юрист утверждает какие-либо данные, то он вычеркивает этот пункт чек-листа. В противном случае — пункт остается незакрытым. После завершения задачи принимается решение относительно одобрения данного контрагента.

      Использование rest-методов

    С помощью метода task.item.add задача будет создаваться. Чек-лист для задачи будет создан методом task.checklistitem.add. Этот чек-лист юристу и нужно будет выполнить.

    if (!empty($_REQUEST['workflow_id']))
    {
    	if (empty($_REQUEST['auth']))
    		die;
    
    	$taskId = (int) callB24Method($_REQUEST['auth'], 'task.item.add', array(
    		'TASKDATA' => array(
    			'TITLE' => $_REQUEST['properties']['taskName'],
    			'DESCRIPTION' => $_REQUEST['properties']['taskDescription'],
    			'CREATED_BY' => str_replace('user_', '', $_REQUEST['properties']['taskCreator']),
    			'RESPONSIBLE_ID' => str_replace('user_', '', $_REQUEST['properties']['taskUser'])
    		)
    	));
    
    	$ar = array();
    	foreach ($_REQUEST['properties']['checkList'] as $i => $checklist)
    	{
    		$ar[] = 'task.checklistitem.add?'.http_build_query(array(
    			'TASKID' => $taskId,
    			'FIELDS' => array(
    				'TITLE' => $checklist,
    				'IS_COMPLETE' => 'N',
    				'SORT_INDEX' => 10*($i+1)
    			)
    		));
    	}
    	callB24Method($_REQUEST['auth'], 'batch', array('cmd' => $ar));
    
    	$PDO->exec('INSERT INTO bp_events (WORKFLOW_ID, TASK_ID, EVENT_DATA) VALUES('
    		.$PDO->quote($_REQUEST['workflow_id']).','.$taskId.' ,'.$PDO->quote(serialize($_REQUEST)).')');
    	die;
    } 
    

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

    BX24.callBind('OnTaskUpdate', '<?=ВР_APP_HANDLER?>');
    

    Задание будет выполнено, только если задача будет закрыта, поэтому другие изменения задачи будут игнорироваться. Как только задача будет закрыта, действие будет анализировать чек-лист. Если все пункты чек-листа выполнены, то принимается решение об одобрении контрагента. Если хотя бы один пункт не закрыт, то контрагент одобрен не будет.

    if (!empty($_REQUEST['data']['FIELDS_BEFORE']['ID']))
    {
    	if (empty($_REQUEST['auth']))
    		die;
    
    	$taskId = (int) $_REQUEST['data']['FIELDS_BEFORE']['ID'];
    
    	$workflowData = $PDO->query('SELECT * FROM bp_events WHERE TASK_ID = '.$taskId.' LIMIT 1')->fetch(PDO::FETCH_ASSOC);
    	if (!$workflowData)
    		die;
    
    	$taskData = callB24Method($_REQUEST['auth'], 'task.item.getdata', array(
    		'TASKID' => $taskId
    	));
    
    	if ($taskData['REAL_STATUS'] != 5)
    		die;
    
    	$checklistData = callB24Method($_REQUEST['auth'], 'task.checklistitem.getlist', array(
    		'TASKID' => $taskId
    	));
    
    	$checkStatus = 'Y';
    
    	foreach ($checklistData as $item)
    	{
    		if ($item['IS_COMPLETE'] == 'N')
    		{
    			$checkStatus = 'N';
    			break;
    		}
    	}
    
    	$workflowEvent = unserialize($workflowData['EVENT_DATA']);
    
    	callB24Method($_REQUEST['auth'], 'bizproc.event.send', array(
    		"EVENT_TOKEN" => $workflowEvent["event_token"],
    		"RETURN_VALUES" => array(
    			'checkStatus' => $checkStatus
    		),
    		'LOG_MESSAGE' => 'Проверка завершена. Результат: '.($checkStatus=='Y'? 'одобрено' : 'отклонено')
    	));
    
    	$PDO->query('DELETE FROM bp_events WHERE ID = '.$workflowData['ID']);
    	die;
    }
    

      Установка и применение

    Во время установки приложения обязательно установите разрешение приложению на работу с задачами, иначе оно работать не будет.

    После установки действие отобразится в дизайнере бизнес-процессов в разделе Действия приложений и его можно будет размещать в шаблонах.

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

    После того, как процесс будет запущен действие создаст задачу с заданным чек-листом.

    Когда юрист завершит выполнение задачи, в логе бизнес-процесса будет отображено решение относительно одобрения контрагента.

    Полностью ознакомиться с действием можно здесь.

    Произвольный PHP код в бизнес-процессе

    В некоторых случаях для успешного решения задачи в рамках бизнес-процессов можно обойтись без создания собственных действий. Для этого достаточно использовать собственный PHP код в рамках штатного действия PHP код.

    Примечание! Для облачной версии Битрикс24 возможно создание собственных действий через REST.

    Общие советы

    Советы по созданию кода

    Перед тем как рассмотреть примеры дадим несколько общих советов по созданию кода:

    • Код будет выполняться в своем пространстве, то есть нужно учитывать, что модули заранее не подключались. Поэтому нужно вызывать стандартное API Bitrix Framework:
      • Документация API
      • Документация API D7
    • Код указывается без открывающих и закрывающих тегов (<?, ?>).
    • Внимательно следите за типами переменных — приведение типа переменных организуйте в обязательном порядке (в некоторых примерах главы это пропущено для упрощения восприятия).

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

    В следующих уроках рассмотрим примеры использования кода в рамках действия PHP код. С подробным описанием действия и небольшими примерами можно ознакомиться в уроке PHP код.

    Как запустить из одного бизнес процесса другой?

    Запуск одного процесса из другого

    Среди стандартных действий бизнес-процессов нет специального действия, которое непосредственно запустило бы выполнение другого бизнес-процесса. Поэтому необходимо воспользоваться универсальным действием выполнения PHP кода и API модуля бизнес-процессов. Рассмотрим пример решения данной задачи на основе запуска бизнес-процесса Двухэтапное утверждение из стандартных шаблонов. Для этого необходимо:

    • В визуальном конструкторе добавить в шаблон запускающего бизнес-процесса действие PHP код (находится в разделе Прочее). Это действие позволяет выполнить произвольный PHP код.

      Внимание! Для использования данного действия вы должны быть наделены правами администратора.

    • Откройте диалог настроек параметров действия с помощью иконки и введите код:
      CBPDocument::StartWorkflow(
            6,
            array("bizproc","CIBlockDocument",{=Document:ID}),
            array("Voters"=>array("user_1")),
            $arErrors
      );

      Где:

      • Первый параметр — это ID запускаемого шаблона бизнес процесса. В нашем случае это 6, что соответствует Двухэтапному утверждению.

        Примечание: ID одних и тех же бизнес процессов могут отличаться для разных установок продукта. Всегда внимательно проверяйте данный параметр.

      • Второй параметр — это код документа, для которого создается бизнес-процесс. Он задается в виде массива, элементами которого являются соответственно название модуля, класс документа и код документа в модуле.

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

      • Третий параметр — это массив входных параметров запускаемого бизнес-процесса. Его состав зависит от бизнес-процесса. В нашем случае, это тот пользователь, которого необходимо ознакомить с документом. В примере, это администратор сайта.

        Примечание: если передается значение множественного параметра, то оно должно передаваться в виде массива.

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

    Пример вызова бизнес-процесса для CRM

    Вывод в лог

    Сделаем вывод любых сообщений в лог

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

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

    Есть два варианта решения: просто вывод в лог из действия PHP код или создание собственного действия Запись в лог. Рассмотрим оба варианта.

    PHP код

    Допустим, что при создании бизнес-процесса пользователь вводит текст какой-то заявки, который сохраняется в переменной Text.
    Чтобы вывести в лог значение этой переменной нужно просто в действии PHP код добавить вызов:

    $rootActivity = $this->GetRootActivity();
    $this->WriteToTrackingService($rootActivity->GetVariable("Text")); 
    
    Или же просто вывести тестовое сообщение:
    $this->WriteToTrackingService("Это тест"); 

    Создание действия

    Создайте недостающие папки относительно корня сайта:

    • bitrixactivitiescustom
    • bitrixactivitiescustomlogactivity
    • bitrixactivitiescustomlogactivitylangru

    В папке /logactivity/ создайте файлы:

    • logactivity.php
      <?
      if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
      
      class CBPLogActivity
         extends CBPActivity
      {
         public function __construct($name)
         {
            parent::__construct($name);
            $this->arProperties = array(
               "Title" => "",
            );
         }
      
         public function Execute()
         {
            $rootActivity = $this->GetRootActivity();
            $this->WriteToTrackingService($rootActivity->GetVariable("Text"));
      
            return CBPActivityExecutionStatus::Closed;
         }
      
      }
      ?>
    • .description.php
      <?
      if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
      
      $arActivityDescription = array(
         "NAME" => GetMessage("BPMA_DESCR_NAME"),
         "DESCRIPTION" => GetMessage("BPMA_DESCR_DESCR"),
         "TYPE" => "activity",
         "CLASS" => "LogActivity",
         "JSCLASS" => "BizProcActivity",
         "CATEGORY" => array(
            "ID" => "other",
         ),
      );
      ?>

    Создайте файл logactivitylangru.description.php:

    <?
    $MESS ['BPMA_DESCR_NAME'] = "Запись в лог";
    $MESS ['BPMA_DESCR_DESCR'] = "Запись сообщения в лог";
    ?>

    Теперь в дизайнере бизнес-процесов появилось новое действие Запись в лог в разделе Прочее и действие просто записывает в лог значение переменной Text.

    Вывод в лог. Переменные

    Рассмотрим примеры как вывести в лог некоторые переменные с помощью PHP-кода.

      Переменная типа Список

    Допустим, что используется переменная в бизнес-процессе DB типа Список следующего содержания:

    [База данных 1]DB1
    [База данных 2]DB2
    [База данных 3]DB3

    И необходимо вывести в лог значение этой переменной (при этом она может принимать множественные значения). Вывод нужно сделать перебором значений:

    $rootActivity = $this->GetRootActivity();
    $list = $rootActivity->GetVariable("DB");
    foreach ($list as $k => $v)
    {
       $str = $str." ".$v;
    }
    $this->WriteToTrackingService("Выбраны следующие БД: ".$str);

      Переменная типа Привязка к пользователю

    Допустим, что используется переменная Manager, которая имеет тип Привязка к пользователю и представляет собой строку типа user_145, где число – это ID пользователя. Выведем ее значение в виде фамилии и имени.

    $str = $rootActivity->GetVariable("Manager");
    $str = str_replace("user_", "", $str);
    $buf = CUser::GetByID(intval($str))->Fetch();
    $this->WriteToTrackingService(" Руководитель:".$buf['NAME']." [".$buf['ID']."]");

    Арифметические действия в бизнес-процессе

    Арифметические действия

    Необходимость сложить две переменные бизнес-процесса в ходе выполнения его контекста может быть востребована когда вы анализируете расходы/доходы. Например: как пересчитать стоимость работы программиста.

    Задайте параметры и переменные в шаблоне бизнес-процесса:

    • параметр бизнес-процесса: {=Template:integrator_USD} — стоимость работы программиста в долларах;
    • переменная бизнес процесса {=Variable:kurs_usd} — курс валюты для пересчета.

    В действии PHP код используйте следующий код:

    // получить текущий бизнес-процесс
    $rootActivity = $this->GetRootActivity(); 
    // получить значение переменной бизнес-процесса {=Variable:kurs_usd}
    $kursUSD = $rootActivity->GetVariable("kurs_usd"); 
    // получить значение параметра бизнес-процесса {=Template:integrator_USD}
    $integrator = $rootActivity->integrator_USD;
    // пересчет валюты
    $integrator = $integrator*$kursUSD;
    // установка значения параметра бизнес-процесса {=Template:integrator_USD}
    $rootActivity->integrator_USD = $integrator;
    // установка значения переменной бизнес-процесса {=Template:ttl}
    // Вы можете не только считать, но и делать что хотите с переменными и параметрами бизнес-процесса
    $rootActivity->SetVariable("ttl",
       'Минимально возможная цена:'.number_format($min_ttl,0,',',' ')." рубn".
       'Прибыль от минимальной цены:'.number_format($min_ttl_plus,0,',',' ')." рубn".
       'Налог:'.number_format($min_ttl*$nalog,0,',',' ')." рубnn".
       'Средняя цена:'.number_format($ttl,0,',',' ')." рубn".
       'Прибыль от средней цены:'.number_format($ttl_plus,0,',',' ')." рубn".
       'Налог:'.number_format($ttl*$nalog,0,',',' ')." рубn"
    );

    Примечание: Если в процессе используются константы, то алгоритм работы будет другой. Запись констант из бизнес-процесса не предусмотрена, поэтому и методов записи нет. Чтобы получить значения константы нужно использовать следующую строку кода:

    $rootActivity->GetConstant($fieldName);
    

    Вычисление ID начальника

    Определяем начальника

    Чтобы вычислить начальника автора документа с помощью действия PHP-код (т.е. без использования действия выбора пользователя), можно использовать приведенный ниже код.

    В этом коде переменная $num отвечает за уровень начальника (1 — непосредственный начальник, 2 — начальник начальника,…). ID начальника в формате БП (т.е. вида user_X) записывается в переменную с именем var5. Эта переменная должна быть создана в параметрах БП и должна иметь тип привязки к пользователю.

    $num = 1;
    $userId = substr("{=Document:CREATED_BY}", 5);
    $userId = intval($userId);
    if ($userId > 0)
    {
     CModule::IncludeModule("intranet");
     $dbUser = CUser::GetList(($by="id"), ($order="asc"), array("ID_EQUAL_EXACT"=>$userId), array("SELECT" => array("UF_*")));
     $arUser = $dbUser->GetNext();
     $i = 0;
     while ($i < $num)
     {
      $i++;
      $arManagers = CIntranetUtils::GetDepartmentManager($arUser["UF_DEPARTMENT"], $arUser["ID"], true);
      foreach ($arManagers as $key => $value)
      {
       $arUser = $value;
       break;
      }
     }
     $rootActivity = $this->GetRootActivity();
     $rootActivity->SetVariable("var5", "user_".$arUser["ID"]);
    }
    

    Примечание: в $arUser = $dbUser->GetNext(); можно использовать вместо метода GetNext метод Fetch. Будет работать быстрее.

    Работа с пользовательским полем сотрудника из БП

    Работа с пользовательскими полями

    Имеется пользовательское поле объекта USER типа данных «Привязка к сотруднику». Как вставить данные из поля внутрь бизнес процесса:

    $documentService = $this->workflow->getService('DocumentService');
    $document = $documentService->getDocument($this->getDocumentId());
    
    $userId = CBPHelper::ExtractUsers($document['CREATED_BY'], $this->getDocumentId(), true);
    
    
    $filter = ['ID' => $userId];
    $params['SELECT'] = ['UF_поле'];
    
    $listResult = CUser::GetList('id', 'asc', $filter, $params);
    
    if ($row = $listResult->fetch())
    {
        if (is_numeric($row['UF_поле']) && $row['UF_поле'] > 0)
        {
            $this->SetVariable('MyVar', 'user_' . $row['UF_поле']);
        }
    } 

    Получение списка пользователей

    Получаем список конкретных пользователей

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

    Основной сложностью является получение списка руководителей для последующей отправки им сообщения или постановки задач. Для того, чтобы это сделать можно воспользоваться несколькими штатными действиями, но это может значительно усложнить бизнес-процесс. С помощью действия PHP-код можно заменить целую группу действий одним. Рассмотрим, как это сделать.

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

    Перечислим все проекты в поле Варианты значений, обязательно указав их идентификаторы в квадратных скобках — их мы будем использовать в коде.

    Далее необходимо указать руководителя/руководителей проектов. Для этого создадим множественные переменные типа Пользователь, соответствующие каждому проекту, в которых будут указаны руководители. Число в идентификаторе переменной будет соответствовать идентификатору проекта, с котором она связана.

    Отдельную переменную заведем для списка руководителей, которым будут отправлены сообщения.

    Итоговый список переменных будет выглядеть следующим образом.

    Теперь остается поместить код в действие PHP-код.

    Как будет работать данное действие:

    1. В переменную $projects записывается список идентификаторов проектов, которые были выбраны при запуске БП (параметр Parameter1 бизнес-процесса).
    2. Затем в цикле для каждого выбранного проекта мы получаем значение переменной, соответствующей руководителю проекта.
    3. Все руководители записываются в переменную bbb.

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

    Автоматический запуск бизнес-процессов и роботов

    Автоматизация в CRM представлена бизнес-процессами (БП) и роботами. Обязанность инициировать запуск автоматизации возлагается на сам модуль CRM.

      Автозапуск бизнес-процессов

    Автоматический запуск выполняется при добавлении или изменении сущности. Любая бизнес-логика, создающая или изменяющая сущность, должна после создания/изменения сущности выполнить следующий код:

    $startParameters = []; //BP parameters
    
    CCrmBizProcHelper::AutoStartWorkflows(
        CCrmOwnerType::Deal, // CCrmOwnerType::Lead, ...
        $id,
        $isNew ? CCrmBizProcEventType::Create : CCrmBizProcEventType::Edit,
        $errors,
        $startParameters
    );
    

    где:

    • $startParameters – значения параметров автоматически запускаемых шаблонов БП (если настроены);
    • $id – идентификатор сущности;
    • $isNew – если сущность только что создана, передаем событие CCrmBizProcEventType::Create, в остальных случаях передаём CCrmBizProcEventType::Edit;
    • $errors – переменная будет содержать массив ошибок, если запуск БП прошел неудачно.

      Автозапуск роботов

    Алгоритм запуска роботов аналогичен алгоритму запуска бизнес-процессов, однако использует более современный API.

    После создания сущности и автозапуска бизнес-процесса необходимо выполнить следующий код:

    //Region automation
    $starter = new BitrixCrmAutomationStarter(CCrmOwnerType::Deal, $id);
    $starter->runOnAdd();
    //end region
    

    После изменения сущности и автозапуска бизнес-процесса нужно выполнить:

    //Region automation
    $starter = new BitrixCrmAutomationStarter(CCrmOwnerType::Deal, $id);
    $starter->runOnUpdate($currentFields, $previousFields);
    //end region
    

    где:

    • $currentFields – массив текущих значений полей сущности;
    • $previousFields – массив предыдущих значений полей сущности.

    Значения полей очень важны для запуска роботов, так как по ним определятся факт смены стадии и анализируются изменения полей (для триггеров Изменены поля и Изменен ответственный).

    При этом, если в сущности бизнес-логикой меняется только стадия, то допускается передать только массив текущих полей с новой стадией, а массив предыдущих полей оставить пустым. Но этим можно пользоваться в крайнем случае (если запрос предыдущих значений полей избыточен в Вашем контексте):

    //Region automation
    $starter = new BitrixCrmAutomationStarter(CCrmOwnerType::Deal, $id);
    $starter->runOnUpdate(['STAGE_ID' => 'NEXT'], []);
    //end region
    

    API запуска роботов поддерживает работу с контекстом. Можно указать пользователя, от которого будут запускаться роботы и интерфейс (сайт, мобильное приложение, REST, бизнес-процесс, импорт сущностей).

    На данный момент контекст не анализируется ядром БП и не влияет на запуск бизнес-процессов и роботов, но в будущем будет учитываться. Рекомендуем сразу проставлять пользователя и интерфейс, чтобы позже не дописывать код:

    $starter = new BitrixCrmAutomationStarter(CCrmOwnerType::Deal, $id);
    
    //Установка пользователя по ID
    $starter->setUserId(1);
    //Установка текущего пользователя
    $starter->setUserIdFromCurrent();
    
    //интерфейс сайта
    $starter->setContextToWeb(); // используется по умолчанию, если не установлен другой
    
    //интерфейс мобильного приложения
    $starter->setContextToMobile();
    
    //интерфейс REST приложения или Вебхука
    $starter->setContextToRest();
    
    //интерфейс БП (Роботы запускаются действиями БП)
    $starter->setContextToBizproc();
    
    //интерфейс импорта сущностей
    $starter->setContextToImport();
    
    //Запуск из другого модуля
    $starter->setContextModuleId('voximplant');
    

      Пример запуска всей автоматизации (БП+Роботы)

    Окончательный вариант запуска всей автоматизации (бизнес-процессы и роботы) с учетом ранее рассмотренных алгоритмов (реальный пример из компонента crm.deal.details):

    CCrmBizProcHelper::AutoStartWorkflows(
        CCrmOwnerType::Deal,
        $ID,
        $isNew ? CCrmBizProcEventType::Create : CCrmBizProcEventType::Edit,
        $arErrors,
        isset($_POST['bizproc_parameters']) ? $_POST['bizproc_parameters'] : null
    );
    
    $starter = new BitrixCrmAutomationStarter(CCrmOwnerType::Deal, $ID);
    $starter->setUserIdFromCurrent();
    
    if($isNew)
    {
        $starter->runOnAdd();
    }
    elseif(is_array($previousFields))
    {
        $starter->runOnUpdate($fields, $previousFields);
    }
    

    Проверьте себя

    Ответьте на несколько вопросов по теме Бизнес-процессы для разработчика, которые помогут вам самим оценить свои знания. Это не тест, это просто проверка того, как вы поняли тему. Удачи!

    Верно ли утверждение?

    Оцените верность утверждения: Верно или Неверно. А потом в спойлере проверьте ваш выбор.

    1 Экземпляр бизнес-процесса одновременно может работать только в одной копии.

    Верно

    Неверно

    2 Для бизнес-процесса не всегда существует пользователь, запустивший этот процесс.

    Верно

    Неверно

    3 Если необходимо повысить права доступа пользователю, то лучший способ это сделать — авторизация под другим пользователем с необходимыми правами.

    Верно

    Неверно

    4 Запущенный бизнес-процесс выполняется без связи с шаблоном. Это даёт возможность внести изменения в шаблон, которые не коснутся уже запущенных ранее бизнес-процессов.

    Верно

    Неверно

    5 После завершения бизнес-процесс перестаёт существовать. Но система сохраняет его статус.

    Верно

    Неверно

    6 Пользовательские действия создаются в папке действий: /bitrix/activities/bitrix/.

    Верно

    Неверно

    7 API позволяет выполнять задания действий вместо пользователя.

    Верно

    Неверно

    8 Для использования собственной логики в шаблонах бизнес-процессов не обойтись без создания собственных действий.

    Верно

    Неверно

    9 Автоматический запуск бизнес-процессов и роботов в CRM осуществляется модулем CRM, а не модулем Бизнес-процессы.

    Верно

    Неверно

    Эта статья может быть полезна тем, кто хочет научиться создавать бизнес-процессы (БП) на портале Битрикс24. В ней будет подробно и занудно описан каждый шаг при разработке бизнес-процесса в CRM на примере несложной автоматизации сделки.

    Этапы разработки бизнес-процесса

    1. Постановка задачи
    2. Создание шаблона БП
    3. Тестирование
    4. Сдача в эксплуатацию

    Постановка задачи и описание алгоритма

    В нашем случае задача выглядит так: «Необходимо назначить руководителя Наблюдателем сделки, если сумма сделки 100 000 руб. или больше».

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

    Для нашей задачи достаточно простого описания алгоритма:

    Если сумма сделки равна или больше 100 000 руб., то назначаем руководителя Наблюдателем этой сделки.

    Создание шаблона по шагам

    Шаблон бизнес-процесса – это инструмент Битрикс24, посредством которого можно реализовать ваш алгоритм.

    В Битрикс24 можно разрабатывать бизнес-процессы для разных объектов (лидов, компаний, элементов Списков…) и для каждого из них надо выбирать соответствующий шаблон. Мы будем создавать шаблон БП для сделок, поскольку наша задача касается автоматизации сделки.

    Перед началом работ убедитесь, что у вас достаточно прав. Для работы с бизнес-процессами в CRM вы должны быть или администратором портала, или иметь включенную опцию «Разрешить изменять настройки» в настройках роли в правах доступа CRM.

    Шаг 1. Добавляем шаблон БП для сделок

    Переходим в раздел CRM – Настройки – Настройки CRM.

    настройка crm

    Если вы не можете найти раздел «Настройки» среди пунктов меню, то поищите его под пунктом «Еще» (крайний правый), может быть он прячется там.

    Если и это не помогло, то обратитесь к администратору портала, может быть, у вас недостаточно прав для создания БП.

    В Настройках выбираем Роботы и бизнес-процессы – Бизнес-процессы.

    добавление БП

    Добавляем шаблон для сделок. По умолчанию добавляется шаблон для последовательного бизнес-процесса, что нам и требуется в данном случае (и вообще требуется в 99,99% случаев).

    добавление шаблона бизнес-процесса

    Шаг 2. Настройка шаблона

    В появившемся окне изменяем Название и добавляем Описание (это не обязательно, но хороший тон).

    Обратите внимание на настройки автоматического запуска – «Автоматически запускать».

    По умолчанию там указано «При добавлении». Убираем ее! Не стоит, чтобы при добавлении новых сделок запускался наш недоделанный бизнес-процесс (а недоделанным он будет всегда, пока не проведено тестирование).

    настройка шаблона

    В окне настроек шаблона мы видим несколько вкладок:

    • Основное (которую мы только что заполнили)
    • Параметры
    • Переменные
    • Константы

    Параметры служат для добавления информации при запуске процесса и для передачи данных между разными БП.

    Переменные нужны для временного хранения данных в ходе бизнес-процесса, и они очищаются после его завершения.

    Практическое применение параметров и переменных будет описано в следующих статьях.

    Константы нужны для хранения постоянной информации, которая не меняется в ходе БП.

    Именно их мы будем использовать в нашем примере для хранения значения 100 000 руб. (минимальной суммы, достойной внимания руководителя) и самого руководителя.

    Давайте добавим их на вкладку «Константы».

    добавление константы

    Для добавления суммы заполните поля:

    • Идентификатор – можно использовать только латинские символы, цифры и знак подчеркивания (не волнуйтесь, если вы ошибетесь, то система вам подскажет).
    • Название – здесь пишите, что и как вам угодно, но лучше, чтобы это было информативное название.
    • Описание – поле не обязательно заполнять, в данном примере и так все понятно, но давайте опишем для наглядности.
    • Тип – здесь выберите тип «Целое число»

    добавление константы шаблона

    При добавлении Руководителя заполните те же поля.

    Для Типа выберите «Привязка к пользователю».

    тип константы

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

    Для выбора пользователя нажмите кнопку для вставки значения (запомните ее вид, она будет часто использоваться во время работы над шаблоном):

    значение константы

    Выберите пользователя из списка (в данном примере выбран «Тестовый Cотрудник»). Если вы не видите в списке нужного вам пользователя, то поищите его в разделе «Категории пользователей».

    выбор пользователя

    Теперь вкладка «Константы» будет выглядеть так:

    список констант

    Не забудьте нажать кнопку «Сохранить» для сохранения параметров шаблона!

    Если вы немного утомились и хотите сделать перерыв, то давайте сохраним все что мы сделали с помощью кнопки «Применить»:

    сохранение изменений в бизнес-процессе

    Советую вам не забывать периодически нажимать на эту кнопку, чтобы не потерять промежуточные результаты своей работы.

    Шаг 3. Добавление блок-схемы

    Блок-схема формируется с помощью действий, сгруппированных по разделам.

    список активити

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

    Вспомним наш алгоритм: «Если сумма сделки равна или больше 100 000 руб., то назначаем руководителя Наблюдателем этой сделки.»

    Нам потребуется действие «Условие» из раздела «Конструкции».

    Раскроем раздел и перетащим «Условие» к серому треугольнику, как показано на скриншоте.

    перенос активити

    Есть еще один способ добавить действие.

    Кликнув на треугольник, вы получите список с разделами и здесь уже из раздела «Конструкции» выберите действие «Условие».

    добавление действия

    Перейдем к настройке Условия.

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

    Для изменения названия нажмите на шестеренку и введите свое название в поле «Заголовок».

    setting_if_1.png

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

    Настроим левую ветку.

    Назовем ее «ДА».

    Для «Типа условия» выберем «Поле документа», поскольку мы будем проверять поле сделки («документ» – это общее название элемента, на котором запускается БП).

    В появившемся поле документа выберем «Сумма».

    настройка условий в БП

    В качестве условия выберем «не меньше», поскольку «равна или больше» означает «не меньше».

    Для установки Значения нажмите кнопку для вставки значения:

    проверка суммы

    В окне «Вставка значения» раскройте «Константы» и выберите константу «Минимальная сумма».

    вставка значения

    Настройки левой ветки теперь выглядят так:

    добавление условия в БП

    Сохраните их.

    Таким образом мы добавили в блок-схему проверку условия:

    Если сумма сделки (то есть поле сделки «Сумма») равна или больше (то есть «не меньше») 100 000 руб. (значение нашей константы summa_min).

    Теперь перейдем к условию в правой ветке.

    Здесь достаточно ввести «НЕТ» в поле «Заголовок» и то, это надо только для наглядности нашего условия.

    отрицательное условие

    Сейчас, когда у нас готовы 2 ветки, давайте добавим в них действия для логирования.

    Это надо для того, чтобы потом по записям в Журнале бизнес-процесса мы могли проверить, как он работает.

    За добавление в лог отвечает действие «Запись в отчет» из раздела «Прочее».

    добавление лога бизнес-процесса

    Добавьте текст. В текст можно добавить поля, константы, переменные… В нашем примере в текст вставлены поле сделки «Сумма» и константа для минимальной суммы. Добавьте их с помощью кнопки для вставки значения, подобно тому, как мы это делали при добавлении условия в левой ветке.

    изменение настроек логирования

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

    копирование действия

    Отредактируйте текст в новом действии, изменив «ДА» на «НЕТ».

    логирование бп

    Вы можете написать свои тексты в этих действиях, главное, чтобы потом из записей Журнала вам было ясно, что происходит с вашим БП.

    Теперь в левую ветку добавим наблюдателя к сделке.

    Для этого выберем действие «Изменение наблюдателей» из раздела «CRM».

    добавление активити изменение наблюдателя

    Здесь оставьте действие «добавить» и нажмите на кнопку «…» для выбора наблюдателя.

    настройка активити изменение наблюдателя

    Поскольку наблюдатель у нас находится в константе «Руководитель», то ее и выберем.

    вставка значения

    Теперь действие выглядит так:

    настройка параметров действия

    Итак, наш шаблон готов. Не забудьте его сохранить!

    готовый шаблон бизнес-процесса

    Запуск и Тестирование

    Для тестирования создайте сделку c суммой больше 100 000 руб., например, 200 000 руб.

    Перейдите в карточку сделки и запустите БП вручную, выбрав его из списка.

    ручной запуск бизнес-процесса

    Теперь давайте посмотрим Журнал на вкладке «Бизнес-процессы».

    просмотр лога БП

    Из журнала видно, что БП пошел по левой ветке, как и ожидалось.

    отладка бизнес-процесса

    Также мы видим, что в карточке сделки «Тестовый сотрудник» установлен как наблюдатель.

    карточка сделки

    Также надо провести тесты, когда сумма сделки < 100 000 руб. и когда сумма сделки = 100 000 руб.

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

    Если все тесты прошли успешно, то можно переходить к последнему этапу.

    Сдача в эксплуатацию

    Перед запуском БП в работу нам надо сделать 2 вещи.

    Первое, это установить реального руководителя вместо Тестового сотрудника в константе «Руководитель».

    Для этого выберите наш шаблон в Списке шаблонов для сделок

    список шаблонов

    и измените значение константы «Руководитель» на реального пользователя.

    изменение константы

    И второе, это установить автозапуск процесса.

    Поскольку сумма сделки может быть указана и при добавлении сделки, и при ее изменении, то для автоматического запуска отмечаем 2 чекбокса «При добавлении» и «При изменении».

    автозапуск бизнес-процесса

    Теперь наш бизнес-процесс в работе!

    Автоматизация бизнес-процессов — это очень востребованная услуга, необходимая практически каждой компании.

    Мы подготовили подробный обучающий видеокурс по работе с бизнес-процессами.

    Посмотрите небольшой трейлер видеокурса :)

    В программе курса мы:

    • Расскажем, как подойти к анализу процессов внутри компании.
    • Поговорим о важных параметрах бизнес-процессах.
    • Наглядно покажем, как реализовать бизнес-процессы в Битрикс24.
    • Покажем примеры решения задач по автоматизации продаж с помощью роботов и бизнес-процессов.

    По итогу обучения вы научитесь работать с бизнес-процессами Битрикс24. Возможно, это станет новым направлением в вашей деятельности :)

    Модуль1. Подход к анализу процессов в компании

    В этом модуле мы разберемся что такое бизнес-процессы, какие параметры их определяют, как подойти к анализу процессов внутри компании.

    Модуль 2. Бизнес-процессы в Битрикс24

    Выясняем, что из себя представляют бизнес-процессы в Битрикс24 и как с ними работать.

    Модуль 3. Инструменты разработчика

    Посмотрим на бизнес-процессы в Битрикс24 с точки зрения разработчика. Есть несколько базовых элементов, разобравшись с которыми будет проще осваивать создание собственных бизнес-процессов.

    Модуль 4. Создание бизнес-процесса

    Переходим к самому созданию бизнес-процессов!

    Модуль 5. Параметры БП и работа с элементами списков

    Еще один сценарий запуска бизнес-процесса — это запуск с параметрами. Его можно применять не только для запуска пользователем, но и для запуска бизнес-процесса из бизнес-процесса.

    Кроме того, внутри бизнес-процесса можно работать с данными других «документов» — элементами списков, объектов CRM.

    Модуль 6. Создание бизнес-процесса со статусами

    В этом модуле научимся создавать бизнес-процессы «со статусами». Это особый вид бизнес-процессов для реализации сложных и запутанных сценариев.

    Модуль 7. Реализация бизнес-процессов в CRM

    Рассмотрим несколько кейсов автоматизации:

    • Обработка лидов и сделок
    • Задачи и события
    • Генерация и отправка документов
    • Автоматизация документооборота
    • Продажа и закупка товаров
    • Логистика заказов
    • Оценка качества обслуживания клиентов

    В каждом модуле курса — кнопка обратной связи, пишите нам ваше мнение по урокам.

    Спасибо, помогло!

    Спасибо :)


    Это не то, что я ищу


    Написано очень сложно и непонятно


    Есть устаревшая информация


    Слишком коротко, мне не хватает информации


    Мне не нравится, как это работает

    author__photo

    Содержание

    Бизнес-процесс – последовательность действий, направленных на получение ожидаемого результата. Эти шаги выполняют сотрудники компании с определенной целью – для заключения договора, выставления счета или отправки заказа покупателю. С помощью специальных продуктов или ПО многие бизнес-процессы можно автоматизировать.

    Пример такого продукта – CRM-система Битрикс24. Сервис помогает автоматизировать повседневные задачи вроде обработки лидов, выставления счетов, аналитики рекламных кампаний или постановки задач сотрудникам.

    Информацию о сделках можно переносить из CRM в систему сквозной аналитики, чтобы оценивать эффективность рекламных площадок и анализировать продажи. В Сквозной аналитике Calltouch доступны интеграции с такими CRM, как 1C:CRM, amoCRM, EnvyCRM, RetailCRM и другими, включая Битрикс24.

    caltouch-platform

    Сквозная аналитика Calltouch

    • Анализируйте воронку продаж от показов до денег в кассе
    • Автоматический сбор данных, удобные отчеты и бесплатные интеграции

    Узнать подробнее

    platform

    Рассказываем, как создать бизнес-процессы в Битрикс24, как ими управлять и как настраивать под задачи предприятия.

    Где находятся бизнес-процессы

    В системе Битрикс24 предусмотрены три вида процессов:

    • «Общие» – процессы, характерные для любых организаций независимо от вида их деятельности. Например, формирование счетов на оплату или отпускных листов. Чтобы попасть в раздел «Общие процессы», необходимо во вкладке «Компания» перейти в «Процессы».
    • «Мои процессы» – активности конкретного пользователя. Доступ к ним сотрудник получает через администратора CRM-системы (руководителя фирмы или ответственного лица). «Мои процессы» находятся во вкладке «Бизнес-процессы».
    • «CRM и бизнес-процессы». Попасть в раздел можно, используя путь «CRM» – «Настройки» – «Автоматизация» – «Бизнес-процессы». Быстро перейти к доступным бизнес-процессам компании можно через «Живую ленту». Право их создания, настройки или изменения есть только у администратора CRM.

    Где находятся бизнес-процессы

    Как создать бизнес-процесс

    Кликните по вкладке «Живая лента» – «Еще» – «Процессы» – «Создать новый процесс». В появившемся окне во вкладке «Настройки» задайте:

    • имя;
    • описание;
    • индекс важности (для удобства сортировки);
    • изображение (необязательно).

    В этом же окне во вкладке «Доступ» выберите ответственных лиц – введите имена сотрудников, которые увидят данную задачу в своих профилях. Во вкладке «Подписи» к каждому этапу процесса можно оставить примечания.

    После сохранения изменений новая задача появится в общем списке процессов. Теперь ее можно редактировать, настраивать, дублировать в «Живую ленту».

    Как настроить бизнес-процесс

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

    Сотрудник заполняет обязательные поля (они отмечены звездочкой – «*»), после нажимает «Отправить». Заявление на отпуск передается по цепочке от начальника отдела к генеральному директору, который подписывает документ. Сотрудник получает об этом уведомление.

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

    Как настроить бизнес-процесс

    Информация о запущенной задаче хранится в полях процесса. Для работы с ней в открытой задаче выбирают «Действия» – «Настроить поля». Если требуется создать новое поле с информацией о процессе, нажимают «Добавить поле». Администратор задает название, тип, значение, другую актуальную информацию. После клика на «Сохранить» новые поля присваиваются задаче (процессу).

    Как добавить условие

    Условием в Битрикс24 называется подзадача, которую необходимо выполнить для запуска или окончания бизнес-процесса. Пример – сдача сотрудником месячного отчета до оформления отпускного листа.

    Чтобы внедрить условие, используют действие «Задача» и нажимают на изображение шестеренки. Затем задаче задают имя, например, «Сдать отчет». Если поставить галочку напротив пункта «Остановить процесс на время выполнения задачи», сотруднику придется сначала подготовить отчет. Только после этого запустится основной процесс – оформление документов на отпуск.

    Сохраненная задача добавляется в «Живую ленту». Ее видит весь персонал, подключенный к Битрикс24, а ответственный сотрудник получает подзадачу «Сдать отчет». После ее выполнения он нажимает на кнопку «Завершить». В результате запустится (возобновится) основной бизнес-процесс «Оформление отпуска».

    Как удалить бизнес-процесс

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

    В подменю настроек необходимо нажать «Удалить процесс» и подтвердить действие. После этого бизнес-процесс с уже корректными данными создают повторно.

    Как интегрировать бизнес-процессы Битрикс24 с сервисами Calltouch

    Инструменты Calltouch освобождают время сотрудников фирмы от рутинных действий, например, обработки входящих звонков или аналитики маркетинговой кампании.

    Возможности сервиса

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

    • Сквозная аналитика. Система объединяет данные с CRM, рекламных площадок и других маркетинговых инструментов в наглядные отчеты. С помощью сервиса вы сможете оценить эффективность маркетинговых стратегий и учесть каждое входящее обращение – звонок, заявку, покупку в онлайн-режиме, добавление товара в корзину.
    • Коллтрекинг. Инструмент для определения рекламных источников, с которых поступают входящие звонки. Вы узнаете, какая реклама приносит звонки, а какая расходует бюджет впустую.
    • Предикт. Сервис речевой аналитики, который расшифровывает речь звонящего и тип обращения. Позволяет сэкономить время сотрудников на анализе телефонных переговоров.
    • Оптимизатор. Инструмент для автоматизации контекстной рекламы Яндекс.Директ и Google Ads. Освобождает от ручной настройки кампании по продвижению бизнеса. Достаточно указать стоимость целевого действия или суточный бюджет на группу кампаний, а Оптимизатор сам распределит ставки для достижения лучшего результата.
    • Антифрод. Выявляет и отсеивает сомнительные звонки, проверяя активность каждого номера. Инструмент полезен, когда необходимо вычислить конкурентов, которые звонят с целью снизить статистику продаж.

    Продукты Calltouch помогают управлять и контролировать расходы на маркетинг. Полный перечень сервисов представлен в разделе «Продукт» на главной странице.

    Оптимизируйте маркетинг и увеличивайте продажи вместе с Calltouch

    Узнать подробнее

    Настройка

    Подключите сервис на странице регистрации. Далее выберите и настройте интеграции для автоматизации бизнес-процессов вашей компании. Полезная информация об инструментах Calltouch есть в разделах «Справочный центр» и «Видеоматериалы».

    Коротко о главном

    • Даже небольшая компания в процессе деятельности сталкивается с необходимостью осуществления десятков бизнес-процессов, которые можно и нужно автоматизировать.
    • Битрикс24 – CRM-система, которая интегрируется с сервисами Calltouch и позволяет упростить и оптимизировать работу сотрудников и освободить их от выполнения многих рутинных задач.
    • Для создания, редактирования, удаления бизнес-процессов не требуется обучение – интерфейс Битрикс24 интуитивно понятен.

    Лучшие маркетинговые практики — каждый месяц в дайджесте Calltouch

    Подписывайтесь сейчас и получите 13 чек-листов маркетолога

    Нажимая на кнопку «Подписаться», вы даёте своё согласие на обработку персональных данных и получение рекламной информации о продуктах, услугах посредством звонков и рассылок по предоставленным каналам связи.

    У вас интересный материал?

    Опубликуйте статью в нашем блоге

    Опубликовать статью

    Отправьте статью себе на почту

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

    В статье рассказываем, как создать и настроить бизнес-процесс в «Битрикс24». Представляем наглядные инструкции с фото.

    Персональный менеджер техподдержки Битрикс24. Отвечаем за 15 минут максимум — даже в выходные!

    Оставьте заявку и получите консультацию в течение 5 минут.

    Что такое бизнес-процесс в «Битрикс24» и как его создать

    Бизнес-процесс в «Битрикс 24» — алгоритм для автоматизации типовых операций внутри компании. Например, чтобы подать заявление на отпуск, обычно нужно бегать по кабинетам: подписывать документ в бухгалтерии, отделе кадров. В «Битрикс24» эти задачи решаются с помощью пары кликов мышкой. В программе представлено 5 типовых бизнес-процессов:

    • счет на оплату;
    • заявление на отпуск;
    • исходящие документы;
    • заявление на командировку;
    • выдача наличных.

    Бизнес-процессы доступны в «Битрикс24» на тарифе «Профессиональный» и выше. Можно запустить типовые (из представленных в программе) или создать новые.

    Автоматизация работы с помощью бизнес-процессов в «Битрикс 24»

    Для каждого бизнес-процесса предусмотрена отдельная карточка. По ней можно определять, кто участвует в процессе, дату его запуска, какие операции в работе, а какие уже завершены и другие параметры. Программа учитывает все изменения.

    Например, в отделе кадров подписали заявление на отпуск, система это зафиксировала и перенаправила документ в бухгалтерию. Или сотрудник запрашивает выдачу наличных на покупку канцелярских принадлежностей. Бизнес-процесс требует утверждения руководителей — передается по цепочке от непосредственного начальника до генерального директора. При положительном ответе задание перенаправляется бухгалтеру или его заместителю. Тот выдает деньги, а сотрудник, отправивший запрос, получает задание представить отчет. Если бухгалтер его принимает, процесс завершается.

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

    Посмотрим, где это все можно найти в программе. В главном меню «Битрикс24» есть раздел «Бизнес-процессы». В нем — 4 вкладки:

    1. «Задания бизнес-процессов».
    2. «Мои процессы».
    3. «Процессы в ленте».
    4. «Все активные».

    Можно настраивать, просматривать текущие и завершенные бизнес-процессы.

    «Задания бизнес-процессов»

    В разделе отображается список бизнес-процессов, ожидающих действий пользователя (например, утвердить командировку, подписать заявление на отпуск).

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

    Руководитель может посмотреть бизнес-процессы своих сотрудников. Для этого нужно указать имя работника в поле фильтра.

    На время отпуска сотрудника руководитель может передать задачу его коллеге.

    Мы готовы помочь!

    Задайте свой вопрос специалисту в конце статьи. Отвечаем быстро и по существу. К комментариям

    «Мои процессы»

    Раздел предназначен для просмотра запущенных бизнес-процессов.

    Для запуска нового бизнес-процесса нужно нажать на кнопку «Запустить процесс».

    «Процессы в ленте»

    В этом разделе представлен список доступных для просмотра бизнес-процессов. При необходимости их можно редактировать.

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

    «Все активные»

    На странице отображается список запущенных, но незавершенных бизнес-процессов. Администратор видит их все, может удалять зависшие. Остальные сотрудники могут просмотреть список только тех процессов, которые запустили сами.

    Продлите лицензию Битрикс24 у нас и получите технический аудит в подарок!

    Оставьте заявку и получите консультацию в течение 5 минут.

    Создание бизнес-процесса в «Битрикс24» с нуля

    В «Битрикс24» есть визуальный конструктор для создания бизнес-процессов с нуля. Запустить их можно буквально в несколько кликов. Представляем инструкцию, как создать бизнес-процесс в «Битрикс24»:

    1. Перейдите в раздел «Бизнес-процессы».
    2. Нажмите на кнопку «Создать новый».

    Далее приступайте к настройке нового бизнес-процесса в «Битрикс 24». В открывшемся окне увидите 3 вкладки:

    1. Настройки. Укажите базовые параметры процесса: его наименование (например, подготовка к конференции), описание (готовим и утверждаем презентации), сортировку (чем меньше цифра, тем выше элемент в списке на ленте). Загрузите картинку, которая будет отображаться около бизнес-процесса в общем перечне.
    2. Подписи. Укажите названия этапов и разделов бизнес-процесса. Можете редактировать параметры на свое усмотрение.
    3. Доступ. Назначьте права для работы с создаваемым процессом: для группы лиц или отдельных пользователей.

    По завершении настройки бизнес-процесса нажмите «Сохранить» и «Применить».

    Вы можете удалить, скопировать процесс или настроить его поля. Для этого нажмите на кнопку «Действия» в правом верхнем углу и выберите нужную операцию.

    При копировании процесс дублируется в общем списке, но с припиской «Копия».

    Настройка полей бизнес-процессов в «Битрикс 24»

    Рассказываем, как настроить поля бизнес-процесса в «Битрикс 24». Отметим, что они хранят основные данные о нем. Сделайте следующее:

    1. Выберите нужный бизнес-процесс и нажмите «Действия» → «Настроить поля».
    2. Для создания нового нажмите «Добавить поля» в правом верхнем углу.
    3. Заполните его основные параметры, нажмите «Сохранить» и «Применить».

    Название — обязательный параметр каждого поля. Тип можно выбрать из предложенных вариантов в таблице:

    Строка Для внесения произвольной информации в виде текста, символов или чисел
    Список Для добавления перечня готовых значений
    Дата/Время Для ввода точной даты и/или времени. При заполнении поля будет доступен календарь
    Бронирование ресурсов Для бронирования услуги, времени или специалиста, который ее окажет. Подходит в том случае, когда компания занимается предоставлением услуг
    Адрес Google карты Для хранения адреса. При его вводе в строку на экране отображается карта с указанием этого места
    Ссылка Для хранения информации в виде ссылки на веб-ресурсы. Например, адрес сайта компании. Текст автоматически преобразуется в гиперссылку и перебрасывает на страницу в браузере
    Файл Для хранения документов и изображений. Отображается кнопка загрузки документа, а после добавления файла видны его название, расширение и размер
    Деньги Для внесения денежных показателей. Например, суммы взноса. Появляется опция для указания валюты
    Да/нет Для однозначного ответа: да или нет. Подходит для анкетирования
    Число Для хранения числовой информации
    Дополнительные поля — привязка Для связи с другими элементами и разделами. Например, с уже существующим контактом в CRM

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

    Сортировка определяет расположение поля в списке. Чем ниже значение, тем выше будет отображаться. При деактивации опций «Показывать в форме добавления» и «Показывать в форме редактирования» поле будет скрыто.

    При активации опций «Только для чтения (форма добавления)» и «Только для чтения (форма редактирования)», сотрудник, запускающий процесс, будет видеть значение поля, но не сможет его изменить. Это действие актуально, только если строка не скрыта.

    После завершения всех настроек бизнес-процессы готовы к работе. Их можно запускать сколько угодно раз с произвольным количеством действий и участников.

    Подключите максимальный тариф Битрикс24 «Профессиональный» бесплатно на 30 дней!

    Оставьте заявку и получите консультацию в течение 5 минут.

    Оцените, насколько полезна была информация в статье?

    Наш каталог продукции

    У нас Вы найдете широкий ассортимент товаров в сегментах
    кассового, торгового, весового, банковского и офисного оборудования.

    Посмотреть весь каталог

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

    Что представляют собой бизнес-процессы в CRM Битрикс24

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

    • оформление заявления на отгул;
    • оформление заявления на отпуск;
    • оформление заявления на командировку;
    • оформление заявления на больничный;
    • оформления заявления на увольнение.

    Рассмотрим подробнее на примере заявления на больничный, так как он достаточно сложный для того, чтобы показать возможности автоматизации этого бизнес-процесса в Битрикс24.

    Автоматизация бизнес-процесса «Заявление на больничный»

    Чтобы инициализировать процесс, сотруднику достаточно зайти на портал с ПК или мобильного приложения и запустить процедуру. Для этого ему потребуется выбрать подходящий для него вариант. Представим, что у нас будут такие варианты:

    • официально оформленный больничный;
    • отгул за свой счет: например, сотрудник не хочет обращаться в больницу, так как проблема индивидуальная и он знает, что уже завтра сможет работать;
    • фиктивный больничный: сотрудник заболел, но может выполнить запланированный объем работы удаленно.

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

    Решаемые задачи и цели

    Чаще всего, с помощью бизнес-процессов стараются стандартизировать и автоматизировать типовые действия сотрудников. Это позволяет избежать ошибок, связанных с человеческим фактором и повысить скорость их выполнения. Кроме этого, автоматизация таких задач позволяет значительно снизить расходы за счет сокращения штата — зачастую именно типовые задачи отнимают большую часть времени сотрудников.

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

    Как настроить бизнес-процессы

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

    Облачный портал Битрикс24 предлагает использование готовых бизнес-процессов только на самом старшем тарифе «Профессиональный». В него включены инструменты по созданию бизнес-процессов в разделах «Автоматизация продаж» и «Автоматизация бизнеса» — оплата счетов, отпуска, командировки, исходящие документы, деньги под отчет и произвольные процессы компании. Также на этом тарифе доступен «Дизайнер бизнес-процессов». С его помощью можно быстро создавать и редактировать шаблоны бизнес-процессов во встроенном визуально-графическом редакторе.

    Недавно в Битрикс24 появился и более простой и доступный инструмент для автоматизации бизнес-процессов — «Роботизация бизнеса (RPA)». В первую очередь он предназначен для автоматизации небольших процессов: простых отчетов и согласований. Инструмент представлен на всех тарифах, но количество доступных для создания процессов отличается:

    • «Бесплатный» — 1;
    • «Базовый» — 1;
    • «Стандартный» — 5;
    • «Профессиональный» — без ограничений.

    Еще одной возможностью задействовать в работе компании бизнес-процессы является Маркет — магазин приложений Битрикс24. В нем существует отдельный раздел «Бизнес-процессы», и в настоящее время там размещено свыше 100 приложений, направленных на решение самых разных задач.

    Создание бизнес-процесса в Битрикс24

    Разберем создание бизнес-процесса на примере доступного для всех тарифов инструмента «Роботизация бизнеса (RPA)». С его помощью можно создать простой бизнес-процесс, для этого нужно перейти на вкладку бокового меню «Роботизация бизнеса (RPA)» и нажать «Новый процесс».

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

    Откроется окно, в котором нужно указать параметры процесса и задать ему название. После этого следует указать поля, которые будет нужно заполнить сотруднику при активации процесса. Укажите, кто может вносить изменения в шаблон и выберите иконку процесса. Сохраните.

    Теперь процесс нужно настроить. Для начала необходимо настроить этапы (стадии), по которым проходит процесс: например, подготовка документации или утверждение. Для того чтобы добавить этап, нажмите плюс, а для удаления — крестик.

    На каждом этапе (стадии) нужно настроить задание — из него будет понятно, какое действие надо выполнить ответственному: например, согласование или получение вспомогательной информации. Всего существует 4 типа заданий:

    • утвердить или отклонить;
    • ознакомиться с информацией;
    • запросить информацию;
    • просто передвинуть.

    Нужно отметить подходящий тип задания.

    В открывшемся окне потребуется заполнить предлагаемые вкладки:

    1. Оновные — здесь нужно указать параметры задания, название, очередь сотрудников и следующую стадию выполнения.
    2. Поля, которые надо показать — поля, которые будет видеть сотрудник, выполняющий задачу.

    Дополнительно на этапах (стадиях) можно добавить роботов. Для этого нажмите специальную ссылку, размещенную в верхнем правом углу.

    Откроется окно с возможностью настроить роботов на нужных этапах бизнес-процесса. Например, отправить уведомление сотруднику с решением по его вопросу.

    Завершение

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

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

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

    Понравилась статья? Поделить с друзьями:
  • Программное обеспечение бизнес моделирования
  • Программное обеспечение для бизнес аналитики
  • Программное обеспечение ресторанного бизнеса
  • Программные продукты 1с для крупного бизнеса
  • Программы для ведения бизнеса салона красоты