Содержание

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

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

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

Научиться работать с продуктами компании «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С-Битрикс.

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

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

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

Используются в тексте в следующих случаях:

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

Всплывающие подсказки обозначаются пунктирным подчёркиванием: [dw]пример подсказки[/dw][di]В окне отображается подробное содержимое подсказки. Подсказка может состоять из текста и/или изображения.[/di].

Табы (вкладки)

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

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

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

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

Ознакомьтесь с простым примером как работает продукт.

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

Выделение абзаца фоном

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

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

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

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

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

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

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

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

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

Стиль Назначение Пример использования
Жирный шрифт Для выделения важных в смысловом значении слов, фраз, терминов, названий элементов интерфейса. В поле Идентификатор введите краткое название латинскими буквами.
Курсив и подчёркивание Для названий продуктов компании 1С-Битрикс, сторонних программ и платформ. Также для названий методов, событий, классов, пространств имён в D7, если нет их описания в API. После изучения теоретического курса будет полезным выполнить практические задания по работе с "1С-Битрикс: Управление сайтом".
Серый фонДля выделения путей в рамках файловой системы, атрибутов, HTML-тегов, параметров функций, переменных, значений полей и короткого кода. В Короткой ссылке рекомендуется использовать знак тильда: ~.
Синий курсив Для подсветки путей в продукте. Пути выглядят так же, как они оформлены в административном разделе системы. Создание опроса начинается со страницы Группы опросов (Сервисы > Опросы > Дополнительно > Группы опросов).
Синий шрифт Подсветка URL-адреса без создания собственно ссылки – псевдо УРЛ. Пример адреса страницы с контактами: https://mysite.ru/about/contacts/.

Где практиковаться и выполнять задания

Согласитесь, что для знакомства с продуктом «Битрикс24» в коробке и результативного обучения удобно иметь под рукой демонстрационную версию. Её можно подготовить с помощью виртуальной машины или специального скрипта BitrixSetup.

Виртуальная машина

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

Следуйте нашей инструкции и вы успешно установите локальную версию. Шаги несложные и сопровождаются наглядными иллюстрациями-всплывашками:

  1. Скачайте [dw]VMware Player[/dw][di]VMware Player – программный продукт, позволяющий запускать несколько операционных систем одновременно на одном компьютере.

    Помимо VMware Player, вы можете использовать VM VirtualBox для настройки виртуальной машины.[/di] и установите его. Эта программа нужна нам для запуска виртуальной машины с демонстрационным порталом. Установка её несложна, просто следуйте шагам мастера установки (для учебных целей укажите бесплатную версию для [dw]НЕкоммерческого использования[/dw][di][/di]).
  2. На странице со списком виртуальных машин скачайте [dw]дистрибутив[/dw][di][/di] нашей, уже настроенной, виртуальной машины BitrixVM.
  3. Загруженный архив [dw]распакуйте[/dw][di]Такие файлы Вы увидите в папке после распаковки архива:

    [/di] в любую, удобную вам, папку. (Например, в папку на диске С: С:\BitrixVM\).
  4. Запустите программу VMware Player и добавьте виртуальную машину BitrixVM, нажав [dw]Open a virtual machine[/dw][di][/di] и выбрав единственный доступный [dw]файл[/dw][di][/di] из папки, в которую был распакован архив.
  5. Запустите виртуальную машину с помощью кнопки [dw]Power on[/dw][di][/di]. По окончании загрузки операционной системы отобразится общая информация. Для вас важен IP-адрес, который присваивается автоматически и выводится в поле [dw]bitrix url[/dw][di][/di] (пример адреса: 192.168.1.36). Запомните его.
  6. В адресной строке вашего любимого браузера (Chrome, Firefox или любой другой) введите этот адрес. Откроется [dw]окно установки[/dw][di][/di]. Нажмите кнопку Установить.
  7. Выберите [dw]демонстрационную версию[/dw][di][/di] дистрибутива продукта «1С-Битрикс24». Для обучения на наших курсах в большинстве случаев вам подойдет «1С-Битрикс24» в редакции Корпоративный портал. Если по какой-либо причине вас интересует другая редакция, можете выбрать её.
  8. Начнется [dw]загрузка дистрибутива[/dw][di][/di]. Дождитесь её окончания и появится мастер установки решения.
  9. Следуйте шагам мастера. Тут нет ничего сложного, только настройки вашего «Битрикс24» (например, логин и пароль администратора, дизайн портала, название компании). Если нужно, то более подробное описание каждого шага мастера есть в уроке: Мастер настройки портала .
Видеоролик установки BitrixVM в VMware Player
Установка BitrixVM в программе VirtualBox

Установка завершена! Теперь у Вас есть 30 дней на использование демоверсии.

Что дальше?

Начинайте обучение работе с коробочной версией «Битрикс24». Не забудьте, что для работы с порталом в таком варианте вам всегда нужно сначала запускать VMware Player и виртуальную машину (п. 5 инструкции), и только потом открывать портал по его IP-адресу.

Возможные проблемы и их решение

Информацию об ошибках и способы их решения при установке демоверсии в BitrixVM смотрите в соответствующем уроке учебного курса Виртуальная машина BitrixVM.

  Скрипт BitrixSetup

Скрипт BitrixSetup позволяет устанавливать продукты компании «1С-Битрикс» на хостинг. У многих хостинг-провайдеров имеется бесплатный тестовый период, что удобно для обучения и практики.

В видео ниже продемонстрирован пример установки на хостинг демоверсии «1С-Битрикс: Управление сайтом». Чтобы установить пробную коробочную версию «Битрикс24», то следуйте видеоинструкции, но на этапе запуска мастера установки (тайминг на видео 5:12) выберите дистрибутив «1С-Битрикс24» и далее придерживайтесь указаний мастера.

Текстовое описание видео


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

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

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

Чтобы узнать, какая редакция 1С-Битрикс установлена у вас, достаточно перейти [ds]в административном разделе[/ds][di] Административный раздел – часть сайта, где производится
управление модулями системы, структурой сайта, его содержанием, посетителями и
другими составляющими сайта. Недоступен для просмотра обычным посетителям сайта.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Сравнение редакций «1С-Битрикс: Управление сайтом»

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

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

#PRODUCT_LICENSE_TABLE#

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

Подробнее...[/di] можно тут.



Глоссарий

Список основных терминов курса

В этом уроке мы собрали основные термины, которые встречаются в курсе. Также для многих терминов даются ссылки на соответствующие главы и уроки курса.

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




ТерминОписание
Бизнес-процесс (БП)Это процесс обработки документа, для которого задана одна точка входа, несколько точек выхода и последовательность действий (шагов, этапов, функций), совершаемых в заданном порядке и в определенных условиях. Другими словами «Бизнес-процесс» – последовательность действий, направленных на получение заданного результата.
Этот функционал помогает автоматизировать процессы компании и избавиться от выполнения рутинных действий. Достаточно один раз настроить бизнес-процесс и он будет регулярно выполнять заданный вами алгоритм.
Документ бизнес-процессаВ системе все бизнес-процессы работают с документами и их версиями. Таким документом может быть файл, элемент инфоблока, элемент CRM и так далее. Для каждого типа документа (из инфоблока, списков или др.) настраиваются свои шаблоны бизнес-процессов.
Последовательный бизнес-процессДействия выполняются одно за другим от точки входа до точки выхода. Другими словами, это набор шагов, которые следует выполнять по порядку до тех пор, пока они все не завершатся. Он похож на обычную блок-схему, описывающую алгоритм решения задачи.
Бизнес-процесс со статусамиБизнес-процесс, не имеющий начала и конца, в процессе работы которого происходит переход из одного состояния (статуса) в другое с разделением прав доступа.
Бизнес-процесс со статусами представляет собой набор состояний, переходов и действий. Одно из состояний обязательно обозначается как начальное состояние. Далее, по мере выполнения, процесс переходит из одного состояния в другое. Переходы выполняются на основе событий.
Типовые бизнес-процессыОбразцы часто используемых процессов, которые включены в состав продуктов «1C-Битрикс», содержащих модуль Бизнес-процессы.
Журнал выполнения бизнес-процесса (лог)При разработке и использовании уже готовых процессов бывает необходимо узнать подробности выполнения того или иного процесса / действия. Для этого в системе предусмотрен журнал выполнения бизнес-процессов (лог).
Задания бизнес-процессовВ процессе выполнения бизнес-процесса может понадобиться согласование какого-либо пользователя или дополнительная информация от него. Тогда пользователю приходит «Задание», которое он должен выполнить.
Бизнес-процессы организацииВ публичной части портала бизнес-процессы могут быть запущены не только для документов, списков или CRM, но и для любых внутренних процессов организации: оформления командировок, отпусков, утверждения счетов и т.п. По умолчанию в «Битрикс24» они находятся на отдельной странице по пути Автоматизация > Бизнес-процессы > Процессы в ленте новостей.
модуль Дизайнер бизнес-процессовМодуль входит в старшие редакции продуктов «1С-Битрикс». предназначен для проектирования, создания и изменения бизнес-процессов. Шаблон БП создается в особом визуальном конструкторе. Механизм проектирования бизнес-процессов реализован за счет визуального программирования по технологии drag&drop.
Визуальный конструкторИнструмент, входящий в состав модуля Дизайнер бизнес-процессов, который позволяет создавать и редактировать шаблоны бизнес-процессов.
Основная рабочая областьОбласть визуального конструктора, в которой размещаются действия / статусы и создаётся шаблон. Внешний вид может различаться для разных типов бизнес-процессов (последовательный или со статусами).
Панель действий конструктораОбласть визуального конструктора, которая содержит набор действий для конструирования шаблона. Находится в зоне справа и представляет собой список, разделённый на категории.
Глобальные переменныеВ системе возможно хранение значений, доступных во всех процессах. Глобальные переменные используются для хранения данных и могут быть изменены. Доступны сразу во всех шаблонах бизнес-процессов (c учётом настроек видимости).
Глобальные константыВ системе возможно хранение значений, доступных во всех процессах. Глобальные константы используются для хранения данных и имеют постоянное (неизменяемое) значение. Доступны сразу во всех шаблонах бизнес-процессов (c учётом настроек видимости).
Шаблон бизнес-процессаШаблон БП представляет собой последовательность шагов (действий) от начального к конечному, которые выполняются один за другим, и реализует нужный нам алгоритм для получения требуемого результата. Именно в шаблоне проектируется вся логика работы бизнес-процесса.
ПараметрыПараметры используются для явного указания каких-либо значений во время исполнения бизнес-процесса и задаются пользователем, запустившим бизнес-процесс. Значения параметров запрашиваются у пользователя непосредственно при запуске бизнес-процесса. И не могут быть изменены внутри бизнес-процесса, в отличие от переменных.
ПеременныеПеременные используются для временного хранения данных, необходимых для выполняемого процесса. Значения переменных хранятся до тех пор, пока выполняется бизнес-процесс. После его завершения они все стираются. В отличие от параметров бизнес-процесса, значения переменных могут быть изменены по ходу выполнения бизнес-процесса.
КонстантыКонстанты нужны для хранения информации, которая не должна меняться во время выполнения данного процесса. Они задаются в шаблоне БП и не могут быть изменены пользователем или бизнес-процессом.
Экспорт и импортШаблоны бизнес-процессов можно переносить с одного проекта на другой. Для этого есть инструменты экспорта и импорта.
форма Вставка значенияПри работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса есть возможность указывать как собственный текст (заданный вручную), так и использовать различные [dw]переменные значения[/dw][di]Поля документа и прочие данные, которые могут меняться и поэтому не задаются вручную[/di]. Для подстановки таких переменных значений используется специальная форма «Вставка значения».
Калькулятор выраженийВ модуле Бизнес-процессы есть полезный инструмент – Калькулятор выражений. С помощью операторов и функций калькулятора можно расширить стандартные возможности Бизнес-процессов, выполнять математические и логические операции, обрабатывать значения и данные.
ОператорыСпециальные символы и выражения для вычисления математических и логических выражений. Примерами таких операторов являются символ + для сложения или ^ для возведения в степень.
ФункцииКаждая функция в калькуляторе выражений выполняет определённую обработку данных. Например, форматирует дату, вычисляет минимум в последовательности чисел или округляет число.
МодификаторыПараметры, переменные шаблона или поля документа возможно модифицировать с помощью специальных слов – модификаторов, которые преобразуют данные. Например, вы можете преобразовать значение типа Дата в тип Строка или вывести дату в часовом поясе ответственного за сделку.
ДействиеПоследовательный бизнес-процесс строится из набора действий. В свою очередь каждое действие выполняет определенную функцию и имеет набор параметров. Действия размещены в панели действий визуального конструктора и добавляются в основную рабочую область с помощью перетаскивания.


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

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

  Описание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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

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

Информация в уроке актуальна только для продуктов «1С-Битрикс: управление сайтом» и коробочной версии «Битрикс24».

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

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

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

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

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

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



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

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


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

Шаг за шагом

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

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

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

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


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

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

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

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

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

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

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

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

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

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

Для каждого статуса могут быть настроены 4 действия. А для каждого действия доступно создание [dwi include_bp_sequential]последовательного[/dwi] подпроцесса.

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

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

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

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


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

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

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

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


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

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

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

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

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

  • Инфоблоки (административная часть сайта)
    • перейти на страницу редактирования инфоблока (Контент > Инфоблоки > Типы инфоблоков > [требуемый_инфоблок]);
    • включить поддержку бизнес-процессов, установив для опции Участвует в документообороте или бизнес-процессах значение [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] личной страницы.



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

Запускаем бизнес-процессы (БП) организации.

  Описание

Бизнес-процессы организации предназначены для автоматизации деятельности организации. По умолчанию создано и представлено [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][/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] настроек модуля Бизнес-процессы (Настройки > Настройки продукта > Настройки модулей > Бизнес-процессы. По истечении указанного периода логи автоматически удаляются.

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

Информация об административной части актуальна только для продуктов «1С-Битрикс: управление сайтом» и коробочной версии «Битрикс24».

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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


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

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

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

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

Внимание! Модуль Библиотека документов устарел. Оставлен в продукте для совместимости версий. Рекомендуется использовать модуль [ds]Диск[/ds][di]Достаточно часто возникает необходимость изменить что-то в работе модуля Диск. Рассмотрим такие часто встречающиеся задачи и их решения.

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

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

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

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

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

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

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

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

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

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

Примечание: Работа с бизнес-процессами документов рассмотрена в уроке Бизнес-процессы документов



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

Информация в уроке актуальна только для продуктов «1С-Битрикс: управление сайтом» и коробочной версии «Битрикс24».
Для настройки [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 CRM > Настройки > Роботы и бизнес-процессы > Бизнес-процессы:

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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


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

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

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

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

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

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

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


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

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

  • Вкладка Настройки содержит основные настройки БП:

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

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

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

Здесь доступны два меню для работы с процессом и инструмент фильтрации и поиска.

Через меню 1 добавляйте новые элементы процесса или разделы для группировки элементов. Добавить элемент – запускает экземпляр этого процесса. По сути это действие идентично вызову бизнес-процесса из вкладки «Мои процессы».

В меню настроек 2:

  • Настройки процесса – открывает форму редактирования процесса;
  • Настроить поля – открывает список полей процесса, где можно добавить новые поля или отредактировать существующие;
  • Настроить бизнес-процессы – переход к созданию/редактированию шаблонов бизнес-процесса с помощью Дизайнера;
  • Показать/скрыть разделы – включает отображение разделов в списке элементов или скрывает их;
  • SharePoint – об интеграции с MS Sharepoint рассказываем в статье на helpdesk.bitrix24.ru.

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

Второй способ

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

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

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

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

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

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



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

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

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

  Внешний вид

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

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

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

  • Параметры шаблона – позволяет задать/изменить [dwi include_bp_template]основные параметры[/dwi] и параметры запуска бизнес-процесса;
  • Глобальные переменные – переход к списку глобальных переменных;
  • Глобальные константы – переход к списку глобальных констант;
  • Список шаблонов – переход к списку шаблонов бизнес-процессов;
  • Создать шаблон <тип_бизнес-процесса> – позволяет перейти к созданию одного из типов бизнес-процессов;
  • [ds]Экспорт и Импорт[/ds][di]Процесс переноса шаблона с одного проекта на другой достаточно простой. Для этого необходимо воспользоваться кнопками на контекстной панели дизайнера бизнес-процессов.
    Подробнее...[/di] – экспорт текущего шаблона бизнес-процесса и импорт шаблона бизнес-процесса взамен текущего.

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

Внешний вид основной рабочей области зависит от типа БП: [dwi include_bp_sequential]последовательный бизнес процесс[/dwi] или [dwi include_bp_state_driven]бизнес-процесс со статусами[/dwi].

Создание и редактирование шаблона бизнес-процесса, т.е. добавление некоторых действий, осуществляется простым [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]. Доступны сразу во всех шаблонах бизнес-процессов (c учётом настроек видимости). В продукте с версии 21.500.0 модуля Бизнес-процессы.
Глобальные константы используются для хранения данных и имеют постоянное (неизменяемое) значение. Доступны сразу во всех шаблонах бизнес-процессов (c учётом настроек видимости).
Глобальные переменные и константы до версии дизайнера бизнес-процессов 21.400.0
Примечание: Глобальные константы и переменные также используются в роботах в CRM.

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

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

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

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

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

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

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

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

[/di].

  Удаление

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

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

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



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

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

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

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

1 Дизайнер бизнес-процессов позволяет построить бизнес-процесс в виде графической схемы.
Верно
Неверно
2 Для каждого экземпляра бизнес-процесса ведется лог.
Верно
Неверно
3 В визуальном конструкторе есть возможность экспорта созданного шаблона БП.
Верно
Неверно
4 Глобальные переменные и константы называются глобальными, т.к. доступны к использованию во всех действиях текущего шаблона бизнес-процесса.
Верно
Неверно
5 Есть возможность ограничить видимость глобальной переменной, так чтобы она была доступна только для процессов Диска.
Верно
Неверно


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

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

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

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

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

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

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

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

    Решение

  2. Перейдите в публичную часть портала. Откройте список шаблонов бизнес-процессов для Сделок (CRM). Создайте новый пустой шаблон последовательного бизнес-процесса.

    Решение

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

    Решение

Где выполнять задания?

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

Подробнее...[/di]. Демоверсия работает 30 дней.

Самый простой способ – это подготовить демоверсию с помощью виртуальной машины. Подробная информация об установке представлена в уроке Где практиковаться и выполнять задания.

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



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

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

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

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

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

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

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

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

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

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

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

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

Примечание: Созданные параметры, переменные и константы будут доступны для использования в шаблоне бизнес-процесса через форму [dwi include_bp_insert_value_form]Вставка значения[/dwi].

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

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

  Основное

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

  Параметры

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

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

[/di] в форме:

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

    Примечание: для некоторых типов данных значение по умолчанию можно указать с помощью кнопки [...], по нажатии которой открывается форма [dwi include_bp_insert_value_form]Вставка значения[/dwi].

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

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

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

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

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

 Переменные

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

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

Примечание: Также в шаблоне доступны к использованию [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] доступа, то из бизнес-процесса можно только добавлять новые права на документ, которые будут оставаться у документа даже после выполнения процесса. Переопределить права, которые были установлены извне, внутри бизнес-процесса нельзя.



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

Посмотрим видеоролик о создании шаблона [dwi include_bp_sequential]последовательного бизнес-процесса[/dwi]. Узнаем как использовать визуальный конструктор и настраивать параметры действий.

  Видеоурок

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

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

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

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

Заполните необходимые поля. Для упрощения процедуры заполнения полей служит кнопка , при нажатии которой открывается зависящая от типа поля форма [dwi include_bp_insert_value_form]Вставка значения[/dwi].

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

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

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

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


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

При проектировании шаблона [dwi include_bp_state_driven]бизнес-процесса со статусами[/dwi], после [dwi include_bp_template]настройки и сохранения его параметров[/dwi] осуществляется переход к конструированию непосредственно самого шаблона в 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 настройка дополнительных прав в статусе отсутствует.

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

С версии 23.200.0 добавлена возможность гибко настраивать права на статус. Теперь, аналогично действию [ds]Установка прав[/ds][di]Действие позволяет устанавливать права на доступ к документу.

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

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

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

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

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

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

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

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

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

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


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

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

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

Настройки


  • В форме Параметры шаблона на закладке Параметры создан параметр [dw]Ознакомить[/dw][di][/di] типа Пользователь.
  • В действии Почтовое сообщение созданный параметр указан в поле [dw]Получатель[/dw][di][/di] (с помощью формы [dwi include_bp_insert_value_form]Вставка значения[/dwi], группа Параметры шаблона).

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


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

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

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


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

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


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

    Подробнее...[/di]. В параметрах действия заполним [dw]все обязательные поля[/dw][di][/di]. Поле Описание задания пока оставим пустым, мы к нему вернемся позже;
  • Добавим действие [dwi include_bp_set_status]Установить статус[/dwi] в каждую ветку утверждения документа, после чего произведем их настройку для статусов [dw]Утвержден[/dw][di][/di] и [dw]Доработка[/dw][di][/di].

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

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

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


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

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

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

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

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

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

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

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

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

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



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

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

  Как перенести шаблон

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

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

Примечание: Перенос шаблона с одной установки на другую подразумевает наличие администраторских прав.

При нажатии на кнопку «Экспорт» скачивается файл формата bpt. Например: bp-5.bpt, где 5 это идентификатор шаблона бизнес-процесса. Этот файл вы затем можете импортировать на другой проект.

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

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

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

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

Совет. После импорта шаблона обязательно проверьте:
  • Получившийся список полей документа;
  • Упоминания этих полей в действиях шаблона, т.к. могли измениться идентификаторы.

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

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

Наиболее простой вариант - это изначально создать и настроить список, поля и шаблон бизнес-процесса:

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

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

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

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



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

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

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

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

1 Бизнес-процессы запускаются только вручную из карточки элемента, когда это необходимо.
Верно
Неверно
2 Значения параметров запрашиваются непосредственно при запуске бизнес-процесса у пользователя, который запустил этот бизнес-процесс.
Верно
Неверно
3 Значения параметров, указанных при запуске, могут быть изменены в процессе выполнения бизнес-процесса.
Верно
Неверно
4 Все значения переменных сохраняются в системе, как для незавершенных, так и для завершенных бизнес-процессов.
Верно
Неверно
5 Шаблон бизнес-процесса можно изменить в любой момент. Запущенные ранее бизнес-процессы продолжат работать по старому шаблону.
Верно
Неверно
6 Для каждого статуса в шаблоне бизнес-процесса со статусами доступна настройка прав доступа к документу.
Верно
Неверно
7 Начальным статусом в шаблоне является тот статус, что расположен первым. Начальный статус можно изменить.
Верно
Неверно
8 Тип пользователя Автор в шаблоне бизнес-процесса - это пользователь создавший документ, в котором запущен бизнес-процесс.
Верно
Неверно
9 Шаблоны бизнес-процессов одинаковы для всех типов документов (crm, диск, списки и т.д.). Например, возможен импорт шаблона БП CRM в шаблон БП Диска.
Верно
Неверно


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

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

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

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

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

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

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

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

    Решение


  2. Продолжим создание шаблона, начатого в задании № 1. Задействуйте созданные параметры и переменные в шаблоне:
    • Пусть размер оплаты меняется в зависимости от указанной причины отгула (используйте действия [dwi include_bp_if]Условие[/dwi] и [dwi include_bp_change_variables]Изменение переменных[/dwi]);
    • Пользователь, запустивший БП, должен получить уведомление, что отгул на указанную дату одобрен и узнать сумму оплаты (используйте действие [dwi include_bp_message]Сообщение соц. сети[/dwi]).
    Сохраните шаблон и проверьте результаты его работы.

    Решение


  3. Создайте новый список в Сервисы > Списки. Импортируйте для созданного списка шаблон бизнес-процесса со статусами из урока Пример: организация обработки и доработки документа. Изучите шаблон и проверьте его работу, создав новый элемент списка.

    Решение


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

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

    Решение


  5. * Дополнительное задание «Шаблоны для процесса в ленте новостей»

    Задание под спойлером

Где выполнять задания?

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

Подробнее...[/di]. Демоверсия работает 30 дней.

Самый простой способ – это подготовить демоверсию с помощью виртуальной машины. Подробная информация об установке представлена в уроке Где практиковаться и выполнять задания.

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



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

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

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

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

  Форма

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

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

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

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


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

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

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

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

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

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

    Список отображаемых пользователей зависит от настроек доступа к документу. Например, при создании шаблона БП для сущности CRM, в настройках [ds]прав доступа в CRM[/ds][di]Права доступа в CRM необходимы для разделения зон ответственности при работе с клиентами.

    Подробнее на helpdesk.bitrix24.ru.[/di] требуется сначала для группы или пользователя установить роль с правами не ниже «Чтение» к [dw]элементам CRM[/dw][di]Например, если шаблон БП для сделок – то чтение к сделкам. Если БП для контактов – то чтение к контактам.[/di]. Только после этого сотрудники появятся в форме.

    Внимание: сотрудники не будут отображены в форме, если права в настройках CRM выданы отделу, а не группе или пользователю.
  • Категории пользователей – позволяет подробно указать пользователей, которые будут причастны к выполнению бизнес-процесса. В том числе можно выбрать Отдел или Группу соцсети.
Примечание: Возможна вставка как отдельных групп пользователей, так и целых отделов и [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 Вычисление модуля числа.

Пример:
{{=abs(-5)}}
// Результат: число 5
dateadd Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к указанной дате.

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

Слова для записи времени: y, year, years, m, month, months, d, day, days, h, hour, hours, i, min, minute, minutes, s, second, seconds. При написании можно использовать верхний или нижний регистр, а также знак минуса для вычитания времени.

Примеры:
// Вычтем 2 дня
{{=dateadd({=Document:DATE_CREATE}, "-2d")}}
// Прибавим 2 дня и 3 минуты
{{=dateadd({=Document:DATE_CREATE}, "2 days 3 minutes")}}
В случае, если необходимое для добавления количество единиц времени содержится в поле, переменной и т.п., то необходимо использовать оператор конкатенации &. Например:
{{=dateAdd({=Document:DATE_CREATE}, {=Variable:WHAT2ADD} & "y 10h")}}

Если требуется вычесть время, то знак минуса тоже добавляется через & перед переменным значением:
{{=dateAdd({=Document:DATE_CREATE}, "-" & {=Variable:WHAT2ADD} & "y 10h")}}
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.

Варианты указания времени: d, day, days, h, hour, hours, i, min, minute, minutes. Допустимо написание как в верхнем, так и в нижнем регистре.

Пример:
// Пусть в параметре содержится дата 28.04.2016.
{{=workdateadd({=Template:Parameter1}, "2d", {=Document:ASSIGNED_BY_ID})}}
// Результат – 02.05.2016 09:00:00, т.к. 30.04 и 1.05 – это выходные дни, то они будут пропущены.
// 09:00:00 – начало рабочего дня. С помощью третьего параметра учитывается часовой пояс ответственного за сущность.
Список выходных дней и начало рабочего дня настраивается в Настройках портала
addworkdays Функция добавляет N рабочих дней к указанной дате.

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

Примеры:

1. {{=addworkdays('07.03.2016', 1)}}
// результат: 09.03.2016 00:00:00, т.к. в настройках сайта 8 марта – выходной.
2. {{=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.

Пример:

// Пусть в параметре содержится дата 28.04.2016.
{{=if(isworkday({=Template:Parameter1}), 'Да', 'Нет')}}
// Результат – Да, т.к. это рабочий день.
isworktime Аналогична функции isworkday, но для типов данных Дата/Время.

Синтаксис:
=if(isworktime([проверяемая дата со временем], [пользователь]), [сообщение, если дата со временем являются рабочими], [сообщение, если не являются]). Указывать пользователя не обязательно. Параметр нужен для уточнения, на чьё рабочее время нужно ориентироваться. Доступен с версии 19.0.0 модуля bizproc.

Пример:

// Пусть в параметре содержится дата 27.04.2016 15:00:00.
{{=if(isworktime({=Template:Parameter1}), 'Да', 'Нет')}}
// Результат – Да, т.к. это рабочее время.
touserdate Функция приводит серверное время к времени пользователя (в его часовой пояс). Например, если время сервера UTC +03:00, а время пользователя UTC +05:00, то итоговое время, которое вернет функция, будет на 2 часа больше.

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

Примеры:

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

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

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

Пример:

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

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

Синтаксис: =getuserdateoffset([пользователь])

Пример:

// Пусть время сервера UTC +03:00, а время пользователя (user_1) UTC +05:00. Тогда:
{{=getuserdateoffset('user_1')}}
// вернет 7200 (т.е. разница составляет 2 часа).

if Условный оператор.

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

Примеры:
/* простой пример со строками в параметрах */
1. {{=if ({=Variable:Variable1_printable}>0, "да", "нет")}}
/* будьте внимательны, используя функции в параметрах.
Фигурные скобки и символ равно для dateadd здесь не нужны. */
2. {{=if ({=Template:Parameter1}=1, dateadd({=System:Now},"10d"), dateadd({=System:Now},"30d"))}}

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

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

Пример:
{{=intval("234.34j4hv5jhv43v53jk4vt5hj4")}}
//вернет 234
floatval Возвращает число (с плавающей точкой).

Пример:
{{=floatval("234.34j4hv5jhv43v53jk4vt5hj4")}}
//вернет 234.34
numberformat Форматирует число с разделением групп.
Синтаксис:=numberformat([число], [количество знаков после запятой], [разделитель дробной части], [разделитель тысяч])

Пример:
{{=numberformat(1300500.5, 2, ',', ' ')}}
//вернет 1 300 500,50
min Возвращает наименьшее число.

Пример:
{{=min(5, 6, 18, 3, 7)}}
//вернет 3
max Возвращает наибольшее число.

Пример:
{{=max(5, 6, 18, 3, 7)}}
//вернет 18
rand Возвращает случайное число.
Синтаксис:=rand([наименьшее значение], [наибольшее значение]). Может быть вызвано без параметров, подробнее в документации по php (ссылка выше).

Пример:
{{=rand(5, 10)}}
//вернет случайным образом число в диапазоне между 5 и 10. К примеру, 5 или 8.
round Округляет число.
Синтаксис:=round([число], [количество десятичных знаков]).

Пример:
{{=round(15.576, 2)}}
//вернет 15.58.
ceil Округляет дробь в большую сторону.

Пример:
{{=ceil(15.57)}}
//вернет 16.
floor Округляет дробь в меньшую сторону.

Пример:
{{=floor(15.57)}}
//вернет 15.
substr Возвращает подстроку определенной длины, начиная с указанного символа. Данная функция аналогична существующей substr в php.

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

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

Пример:

{{=substr("0123456789", 3, 4)}}
// Вернет 3456.

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

strpos Возвращает позицию первого вхождения подстроки.

Синтаксис: strpos([cтрока, в которой производится поиск], [подстрока], [с какого символа начинать поиск])

Примеры:
1. {{=strpos('Тестовая строка', 'ст')}}
// Вернет 2.
2. {{=strpos('Тестовая строка', 'ст', 3)}}
// Вернет 9.
strlen Возвращает длину строки.

Пример:
{{=strlen('Тестовая строка')}}
//вернет 15.
implode Объединяет множественные значения в строку. Функция полезна, когда нужно вывести в текст значения множественных переменных нестандартным разделителем. Аналог implode в PHP.
Возвращает строку, содержащую строковое представление всех элементов массива в указанном порядке, с указанным разделителем между каждым элементом.

Синтаксис: =implode([разделитель], [массив значений])

Примеры:

// Пусть переменная Variable1 - множественная и содержит три значения: Один, Два, Три. Тогда:
1. {{=implode(' - ', {=Variable:Variable1})}}
// вернет строку Один - Два - Три.
2. {{=implode('[br]', {=Variable:Variable1})}}
// тег bb-code br перенесёт каждое значение переменной на новую строку
3. {{=implode({=System:Eol}, {=Variable:Variable1})}}
// системное значение конца строки {=System:Eol} сработает там, где не поддерживается тег br (например, в Заданиях)

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

Синтаксис: =explode([разделитель], [строка])

Пример:

// {{=explode(' - ', 'Один - Два - Три')}}
// вернет массив из трёх строк: Один, Два, Три.

randstring Возвращает случайную строку указанной длины.

Пример:
{{=randstring(10)}}
// Вернет случайную строку длиной в 10 символов. Например: yWB6pMU4S4
{{=randstring(16)}}
// Вернет случайную строку длиной в 16 символов. Например: zRNTpQ4r4zyoJXt0
merge Позволяет объединять массивы.

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

Пример:
{{= merge({=Document:FILES}, {=Variable:file})}}
urlencode URL-кодирование строки.

Пример:
{{=urlencode('Data123!@-_ +')}}
// Вернет закодированную строку Data123%21%40-_+%2B
Подробнее о том, как кодируется строка и где применять функцию можно прочитать в документации по PHP.
strtolower Преобразует строку в нижний регистр. Функция доступна с версии 21.200.0.

Пример:
{{=strtolower('Тестовая строка')}}
// Вернет тестовая строка
strtoupper Преобразует строку в верхний регистр. Функция доступна с версии 21.200.0.

Пример:
{{=strtoupper('Тестовая строка')}}
// Вернет ТЕСТОВАЯ СТРОКА
ucwords Преобразует в верхний регистр первый символ каждого нового слова в строке. Функция доступна с версии 21.200.0.

Пример:
{{=ucwords('тестовая строка')}}
// Вернет Тестовая Строка
ucfirst Преобразует первый символ строки в верхний регистр. Функция доступна с версии 21.200.0.

Пример:
{{=ucfirst('тестовая строка')}}
// Вернет Тестовая строка
strtotime Преобразует текстовое написание даты на английском языке во внутренний формат даты. Функция доступна с версии 21.300.0.

Примеры:

// Пусть текущие дата и время 18.07.2023 16:47:01. Тогда:
1. {{=strtotime("now")}}
// Вернёт 18.07.2023 16:47:01
2. {{=strtotime("next day")}}
//Вернёт 19.07.2023 16:47:01
3. {{=strtotime("+1 week")}}
//Вернёт 25.07.2023 16:47:01
4. {{=strtotime("next Thursday")}}
//Вернёт 20.07.2023 00:00:00
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.

Пример:

// 1. Пусть есть переменная Variable1 типа Число с множественным значением: 1, 2, 3, 4, 5, 6. Тогда:
{{=firstvalue({=Variable:Variable1})}}
// Вернет число: 1.
2. // В качестве параметра функции firstvalue используется функция explode
{{=firstvalue(explode(',' , {{Строка}}))}}
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).

Примеры:

// 1. Ссылка с форматированием bb-code:
{{=getdocumenturl('bb')}}
// 2. Полная ссылка с доменом сайта и 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:

=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}}

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

/* простой пример со строками в параметрах */
1. {{=if ({=Variable:Variable1_printable}>0, "да", "нет")}}
/* Если использовать функции в параметрах.
Двойные фигурные скобки и символ равно для dateadd здесь не нужны. */
2. {{=if ({=Template:Parameter1}=1, dateadd({=System:Now},"10d"), dateadd({=System:Now},"30d"))}}
/* В качестве параметра функции firstvalue используется функция explode */
3. {{=firstvalue(explode(',' , {{Строка}}))}}

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

Ниже показаны примеры неверное использование фигурных скобок при записи выражения:

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

// для нескольких функций неверно писать так:
{{=if ({=Template:Parameter1}=1, {{=dateadd({=System:Now},"10d")}}, {{=dateadd({=System:Now},"30d"}}))}}
{{=firstvalue({{explode(',' , {{Строка}})}})}}

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

 Перенос вычислений в переменную

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

Подробнее...[/di]. На примере выражения

=datediff({{Дата создания элемента}},{{Дата изменения элемента}},"%a") * 2
можно перенести вычисление функции 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 (Да/Нет) ---xx1 или 01 или 0ххY или NY или Nx
date (Дата) x---по формату timestamptimestampxxпо форматупо форматуx
datetime (Дата/Время)xпо формату ---timestamptimestampxxпо форматупо форматуx
double (Число) 0==N
!0==Y
из timestampиз timestamp---(int)xx(string)(string)user_<ID>
int (Целое число) 0==N
!0==Y
из timestampиз timestamp(float)---xx(string)(string)user_<ID>
file (Файл)xxxxx---xxxx
select (Список)Y или Nxx(float) (int)x---(string)(string) user_<ID>
group_<CODE>
<ID> 
string (Строка)Y или Nstrtotimestrtotime(float) (int)xx---(string) user_<ID>
group_<CODE>
<ID> 
text (Текст)Y или Nstrtotimestrtotime(float) (int)xx(string)--- user_<ID>
group_<CODE>
<ID> 
user (Пользователь)xxxIDIDxx(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}}
  • Счета (новые): ="SI_"&{{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}), а с выбором идентификатора конкретного задания через форму [dwi include_bp_insert_value_form]Вставка значения[/dwi], раздел [dw]Дополнительные результаты[/dw][di][/di].

Но вариант с использованием {=Workflow:ID} универсальный, так как открывает текущее невыполненное задание по конкретному бизнес-процессу. ID задания откроет конкретное задание этого процесса, даже если оно выполнено.

  Создание ссылки на страницу детального просмотра документа

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

	Ссылка на страницу детального просмотра документа: [url]{=Document:DETAIL_PAGE_URL}[/url]

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

Примечание: Выражение {=Document:DETAIL_PAGE_URL} формирует нужную ссылку при условии, что в настройках инфоблока корректно заполнен URL страницы детального просмотра.

  Создание публичной ссылки на файл

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

	Публичная ссылка на файл: {=Document:PROPERTY_MY_FILE > publink}
// где Document:PROPERTY_MY_FILE – свойство документа типа Файл
Примечание: Модификатор 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}
// где Document:PROPERTY_MY_FILE – свойство документа типа Файл
Примечание: Модификатор 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/).



Примеры работы с датами

В уроке рассмотрим возможности работы с датами в бизнес-процессах. Результаты выведем с помощью действия [dwi include_bp_message]Сообщение соц.сети[/dwi].

  Перевод даты на русский язык

Для вывода даты используется функция [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):

Таким же образом выполняется вычитание дней, только добавляется символ минуса:

Текущая дата - 2 дня: {{=dateadd({=System:Date}, '-2d')}} // отнимем 2 дня из текущей даты

Текущая дата - N дней: {{=dateadd({=System:Date}, '-' & {=Template:Parameter1} & 'd')}} // отнимем дни, указанные в параметре, из текущей даты

  Разница между двумя датами

Функция 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. За основу примера возьмем сообщение с форума:

«Доброго времени суток, может кто сталкивался с такой задачей, нужно чтоб во время оформления сделки высчитывалась чистая прибыль, т.е. от заложенной суммы сделки вычитался налог [dw]УСН[/dw][di]Упрощенная система налогообложения.[/di] (6%), вычитались затраты на подряд (если они есть) и все это потом записывалось в отчет менеджера по проведенной сделке.»

Порядок действий

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

    • Сумма;
    • [dw]Затраты на подряд[/dw][di]Поле Затраты на подряд будет не обязательным к заполнению. Если оно будет содержать значения, то они будут учитываться в расчетах, в противном случае – не будут.[/di];
    • Налог (6%). Считается автоматически;
    • Итоговая сумма. Считается автоматически.
  • Создадим шаблон [dwi include_bp_sequential]последовательного бизнес-процесса[/dwi] и настроим его на запуск при добавлении нового элемента.
  • Добавим и настроим первое действие [dw]Изменение документа[/dw][di]Действие изменяет указанные поля документа.

    Подробнее...[/di], которое вычислит [dw]налог от общей суммы[/dw][di][/di]:
    • Поле: Налог (6%). Считается автоматически
    • Значение: ={{Сумма}}*0.06
  • Добавим и настроим второе действие «Изменение документа», которое вычислит [dw]итоговую сумму[/dw][di][/di] с учетом всех вычетов:
    • Поле: Итоговая сумма. Считается автоматически
    • Значение: ={{Сумма}} - {{Затраты на подряд}} - {{Налог (6%). Считается автоматически}}

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

Подробнее...[/di] менять значение полей одним действием, здесь мы использовали «Изменение документа» дважды. Всё потому, что во втором действии используется значение, которое вычисляется в первом. Если бы мы записали все изменения в одном месте, то на момент расчётов итоговой суммы, значение расчёта налога ещё не было бы сохранено, а значит и итоговая сумма посчиталась бы неверно.

Дополнительно

[dw]Шаблон для ознакомления[/dw][di]Примечание: Перед импортом шаблона ознакомьтесь с материалом урока Экспорт и импорт.[/di]: Скачать



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

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

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

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

1 С помощью формы «Вставка значения» можно указать собственный текст в параметрах действий или шаблона бизнес-процесса.
Верно
Неверно
2 Дополнительные результаты предоставляют все действия шаблона.
Верно
Неверно
3 Единственный способ использовать системные значения и функции в параметрах действия это внести их вручную.
Верно
Неверно
4 Для преобразования данных в понятную форму есть специальные модификаторы: printable, friendly и name.
Верно
Неверно
5 Выполнение математических операций в бизнес-процессе доступно только с помощью специально предназначенных действий шаблона.
Верно
Неверно
6 В параметрах действий доступно использование как простых математических операций, так и специальных функций и операторов для вычисления выражений.
Верно
Неверно


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

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

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

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

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

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

  1. Создайте новый последовательный шаблон для БП Cделок без автоматического запуска. В шаблон добавьте только одно действие: [dwi include_bp_message]Сообщение соц. сети[/dwi]. Получателем сообщения пусть будет группа [dw]Администраторы[/dw][di]Или любая другая группа, в которой вы состоите.[/di]. В качестве текста сообщения укажите:
    Сегодня: [текущая дата]
    Сделка "[Название_сделки]" находится на стадии [Название_текущей_стадии]
    Ответственный за сделку: [Пользователь]
    
    Информацию, выделенную квадратными скобками, подставьте с помощью формы [dwi include_bp_insert_value_form]«Вставка значения»[/dwi]. Используйте два способа вставки значения: через форму и через знак =. Сохраните шаблон и проверьте его работу на существующих сделках.

    Решение

  2. Вернитесь к созданному в задании № 1 шаблону. Добавьте переменную типа Целое число с заполненными значением [dw]по умолчанию[/dw][di]Любое целое число. Например, 26.[/di]. Удалите существующий текст в действии Сообщение соц. сети и добавьте новый:
    • Укажите Создателя сделки в двух вариантах: ID создателя и [dw]Имя[/dw][di]Подсказка: воспользуйтесь модификатором.[/di] создателя;
    • Запишите математическое действие. Умножьте переменную на число 5. Запись должна быть такого вида, чтобы в итоговом сообщении при запуске БП отобразился результат умножения.

    Решение

  3. Снова изменим шаблон и поработаем с функциями калькулятора выражений. Добавьте один новый параметр типа Целое число (для указания количества дней) и две переменные типа Дата/время. Далее:
    • Добавьте к текущей дате количество дней, равное числу указанному в параметре. Полученное значение должно быть записано в первую переменную;
    • Добавьте к текущей дате количество рабочих дней, равное числу указанному в параметре. Полученное значение должно быть записано во вторую переменную;
    • В действии «Сообщение соц. сети» удалите старый текст. И выведите значения двух переменных, отформатированных в виде: 1 Мая 2022.

    Решение

Где выполнять задания?

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

Подробнее...[/di]. Демоверсия работает 30 дней.

Самый простой способ – это подготовить демоверсию с помощью виртуальной машины. Подробная информация об установке представлена в уроке Где практиковаться и выполнять задания.

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



Действия

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

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

Общие моменты

[dwi include_bp_sequential]Последовательный бизнес-процесс[/dwi] строится из набора действий. Каждое действие выполняет определенную функцию и имеет собственные параметры. Но у большинства из них есть общие моменты, о которых и расскажем в этом уроке.

  Общие параметры

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

Пример открытой формы настройки параметров действия

Выделим общие моменты, которые повторяются для всех или большинства действий:

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

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

  Выключение действий

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

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

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

Ветки в конструкциях тоже можно отключать. Например, так выглядит выключенная первая ветка внутри блока [dwi include_bp_if]Условие[/dwi]:

  Разметка BBCode

Поля c описанием задания или вводом текста сообщения позволяют использовать различные теги [ds]bb-code[/ds][di]BBCode – язык разметки, используемый для форматирования сообщений.

Подробнее на Википедии[/di], например: [img], [url], [b], [i], [s], [u] и т.д.

Пример использования из действия Ознакомление с документом:

Другие примеры использования тегов bb-code есть в описании действий [dwi include_bp_message]Сообщение соц.сети[/dwi] и [ds]Добавить комментарий[/ds][di]Действие добавляет комментарий в карточку документа CRM.
Подробнее...[/di].

  Подсказки

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

Ссылка «Показать полностью» отображается с версии 23.0.0 дизайнера БП. По нажатии на неё раскрывается список переменных/полей, которые не найдены системой:

  Поля выбора пользователей / групп

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

  • в квадратных скобках для пользователя, например [1];
  • без квадратных скобок для группы пользователей, например 1.

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




Обработка документа

В группе собраны действия, связанные с этапами обработки документа.


Блокировка документа

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

Блокировка продлится до завершения текущего бизнес-процесса или пока не выполнится действие [dw]Разблокировка[/dw][di]Действие разблокирует документ для других БП.
Подробнее...[/di].

Действие доступно в инфоблоках, списках и процессах. Параметров не имеет и запускается для текущего документа (для которого запущен бизнес-процесс). Когда элемент заблокирован – в списке элементов в административном разделе видна красная отметка о блокировке:

Важно! С версии 15.5.0 Дизайнера бизнес-процессов данное действие исключено для модуля Диск.


Запустить умный сценарий

Действие запускает [dw]Умный сценарий[/dw][di]Умные сценарии – это функция, с помощью которой вы можете использовать роботов CRM, чтобы автоматизировать рутинные операции внутри компании.

Подробнее на helpdesk.bitrix24.ru[/di] по шаблону. Доступно с версии 23.300.0.

  Описание параметров и пример


  • ID элемента – укажите ID элемента, для которого нужно запустить умный сценарий;
  • Запустить от пользователя – выберите сотрудника, от имени которого будет запущен сценарий;
  • Умный сценарий – выберите сценарий из списка. Доступен выбор только одного сценария в одном действии. Сценарии в списке группируются по типу сущности CRM: лид, контакт, сделка и т.д.
  • Все перечисленные выше параметры обязательны для заполнения.

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

  Примеры настройки

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

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

  Возможные ошибки

Ошибки в срабатывании действия выводится в журнале бизнес-процесса в карточке сущности CRM. Частые ошибки:

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

  • Умный сценарий не найден или выключен. Появится, если сценарий удалён или деактивирован.



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

Действие запускает новый бизнес-процесс по шаблону.

  Параметры

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

    Приведём примеры, как заполнить это поле:

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

      Подробнее...[/di], [ds]Создание новой сделки[/ds][di]Действие аналогично действиям в публичной части CRM по созданию новой сделки.

      Подробнее...[/di] или другое аналогичное действие;
    • Из параметра шаблона. Добавьте для шаблона параметр типа привязка к элементам CRM или привязка к элементам списка. Тогда привязанный в этом параметре документ станет доступен для добавления в поле ID документа;
    • Использовать связи текущего документа. Сущность CRM, для которой запущен текущий бизнес-процесс, может иметь связи с другими сущностями (контактами, компаниями и так далее).
  • Шаблон — выберите какой шаблон бизнес-процесса использовать. Обратите внимание, выбирать нужно шаблон, подходящий для указанного выше документа. Если документ — Контакт из CRM, то и шаблон бизнес-процесса должен быть для [dw]контактов[/dw][di][/di];
  • Ожидать завершения бизнес-процесса — бизнес-процесс дождётся выполнения запущенного им БП и только потом продолжит свое исполнение;
  • Параметры бизнес-процесса — секция отобразится, если в выбранном шаблоне бизнес-процесса есть [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].

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

Пример заполнения параметров действия

  Результаты выполнения действия

Действие имеет единственный результат (с версии 23.200.0):

  • Текст ошибки изменения

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

Где такой результат может пригодится? Например для отправки уведомления, если не получилось внести изменения в документ. Удобно использовать совместно с конструкцией [ds]Условие[/ds][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]. Ниже, в спойлере, приведен список всех штатных полей задачи, доступных в действии. Остальные поля будут являться пользовательскими, назначение которых вы можете уточнить в своей компании (например, у администратора портала).
    Список штатных полей задачи, доступных в действии.

    Выбранные значения полей станут доступны для использования в секции Дополнительные результаты формы [dwi include_bp_insert_value_form]Вставка значения[/dwi].

  Пример

Допустим в шаблоне бизнес-процесса создаётся новая задача с помощью действия [ds]Задача[/ds][di]Действие позволяет создать задачу.

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

С помощью действия Получить информацию о задаче получим название созданной задачи, описание и исполнителя. [dw]ID задачи[/dw][di]ID созданной задачи хранится в дополнительных результатах.

[/di] укажем с помощью формы Вставка значения.

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

А значит можно их добавить в другое действие. Например, как указано в задаче, отправить уведомление с помощью действия [dwi include_bp_message]Сообщение соц.сети[/dwi]:

Совет: Не забывайте использовать [dwi include_bp_modification]модификаторы[/dwi] для преобразования значений в подходящий вам или читаемый вид.


Получить информацию об элементе списка

Действие позволяет получить значения полей элемента указанного списка.


Описание параметров

  • 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), то набор параметров будет соответствовать полям сделки (как если бы вы создавали её вручную из публичного раздела). Если же это шаблон бизнес-процесса для информационного блока, то параметры – это поля формы элемента этого информационного блока.


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

  Результаты выполнения действия

Действие имеет единственный результат (с версии 23.200.0):

  • Текст ошибки создания

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

Где такой результат может пригодится? Например для отправки уведомления, если документ не создался. Удобно использовать совместно с конструкцией [dwi include_bp_if]Условие[/dwi] смешанного типа, где в качестве источника выбран доп. результат, а условием является «заполнено». Тогда для ветки, где результат с ошибкой заполнен, добавьте действие отправки уведомления, а другую оставьте пустой. Так уведомление будет отправлено только в случае возникновения проблем с созданием документа.

  Дополнительно

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



Создать элемент списка

Действие добавляет элемент в один из уже созданных списков.


  Описание параметров


  • Тип документа – выберите для какого списка создать новый элемент.

Остальные параметры различаются в зависимости от выбранного списка и соответствуют полям списка. К спискам относятся Универсальные списки (Сервисы > Списки) и Процессы в ленте новостей (Автоматизация > Бизнес-процессы > Процессы в ленте новостей), а также списки групп и проектов.

  Пример

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

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

  Результаты выполнения действия

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

Доступно:

  • [dw]Id[/dw][di]Идентификатор ID созданного элемента списка.[/di]



Сохранение истории

Действие сохраняет историю документа. Другими словами позволяет создать «слепок» документа со всеми изменениями, внесёнными в него на момент запуска действия.


Внимание! Действие доступно только в «1С-Битрикс: Управление сайтом» и в коробочной версии «Битрикс24» для шаблонов бизнес-процессов в информационных блоках. Работа с шаблонами бизнес-процессов инфоблоков выполняется в административном разделе.

  Параметры


  • Название записи в историю – указывается название версии документа с которым он будет сохранен в истории. Это позволит легко отличить его от других версий. Оставьте поле пустым, если хотите, чтобы название записи было таким же, как и название документа;
  • Пользователь, от имени которого записывается история – укажите пользователя, от имени которого будет сделана запись.

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

  Пример

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

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

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



Удаление документа

Действие удаляет документ, [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 - отсутствие периода. — позволяет установить время, в течение которого действие будет ожидать выполнения.
  • Ограничить доступ — делает текст задания видимым только для исполнителя задания и не показывает его в живой ленте. Это очень полезная опция, если нужно, например, передать исполнителю конфиденциальную информацию: пароли, пин-коды и т.п.
  • Тип делегирования – выбирается из списка кому доступно делегировать запрос:
    • Только подчиненным;
    • Всем сотрудникам;
    • Никому.
  • Раздел Поля позволяет добавить собственные поля, которые будет необходимо заполнить пользователям в ходе выполнения задания.

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

  Дополнительные результаты

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

  • ID — [dw]порядковый[/dw][di]Начинается с единицы. Далее увеличивается на 1 для каждого нового задания бизнес-процесса.[/di] числовой идентификатор задания;
  • Комментарий — текст из поля «Комментарий»;
  • Автоматическое завершение — отдаёт значение 1 при автоматическом завершении задания и 0, если задание было выполнено сотрудником;
  • Пользователь, предоставивший информацию — возвращает пользователя в формате user_ID (например, user_26). Если задание завершено автоматически — вернётся пустое значение;
  • Измененные поля — список названий полей, которые были изменены при выполнении задания.


Ознакомление с документом

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

  Описание параметров


Пример заполнения параметров действия

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

Название задания – задается название, которое будет отображаться в интерфейсе для пользователей.

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

Должны ознакомиться:

  • Все сотрудники – задача не будет выполнена пока с документом не ознакомятся все пользователи, указанные выше;
  • Любой сотрудник – с документом должен ознакомиться любой из пользователей, указанных выше.

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

Текст статуса – задается текст статуса.

Модификаторы

Текст кнопки в задании – позволяют задать собственный текст для соответствующей кнопки.

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

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

Метка для поля комментария – подпись для поля с комментарием.

Период ознакомления – можно задать период, если до окончания которого пользователи не будут ознакомлены с документом, то задание по ознакомлению будет автоматически завершено. Пустое значение или 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.

  • Создаём шаблон бизнес-процесса. Используем конструкцию Итератор и действие [dwi include_bp_message]Сообщение соц. сети[/dwi] в теле итератора:

  • В параметре Итератора укажем переменную со списком чисел, а в Сообщении соц. сети в качестве текста сообщения - дополнительный результат итератора [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]. Для пользователя создаётся соответствующий элемент управления, в котором он выбирает какую команду выполнить.

Тип и вид элемента управления зависит от документа и места, где был запущен бизнес-процесс. Выполнение команды доступно пользователю только в документе для которого запущен бизнес-процесс, при этом действие не отправляет каких-либо уведомлений. Рекомендуется дополнительно оповестить пользователя, например, с помощью действия [dwi include_bp_message]Сообщение соц. сети[/dwi], что ему необходимо выполнить эту команду.

Примечание: Наиболее часто действие Команда используется совместно с конструкцией [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] этого действия.
  • Продолжает выполнение правая ветка, в которой размещено действие [dwi include_bp_message]Сообщение соц. сети[/dwi]. В описании действия мы используем [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 (для разработчика)

  • Истина

    Ветка действий будет выполнена сразу. Это условие выполняется всегда.

  Подробнее об И/ИЛИ

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

Посмотрим пример для конструкции Условие. Допустим у нас есть шаблон бизнес-процесса, в котором по условию определяется предоставить услугу платно или бесплатно. Услуга будет предоставлена платно если поле Комментарий сделки не содержит слова: Благотворительность и Подарок. При составлении условия возникает вопрос что использовать: И или ИЛИ?

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

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

Как заполнено поле Комментарий?Результат ИЛИРезультат И
Не содержит оба словаПлатноПлатно
Содержит одно слово из указанныхПлатноБесплатно
Есть оба словаБесплатноБесплатно

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

[ICO_NEW data-adding-timestamp="1703688033"]

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

[/ICO_NEW]

  Если несколько условий

При использовании нескольких условий и одновременно сравнений И и ИЛИ, приоритет будет у И. В виде формулы это можно представить так:

(УСЛ1 И УСЛ2) ИЛИ (УСЛ3 И УСЛ4)

  Описание условий

В таблице приведено описание всех вариантов условий с примерами.

УсловиеОписаниеПример
РавноПроверяет, являются ли указанные значения одинаковыми. Если они равны, то выполняется ветка условия.С помощью условия проверим, совпадает ли пользователь, запустивший бизнес-процесс, с ответственным в сделке:
Тип условия: Поле документа
Поле документа: Ответственный
Условие: равно
Значение: Автор
Не равноПроверяет, являются ли указанные значения разными. Если они не равны, то выполняется ветка условия. С помощью условия проверим не равна ли текущая стадия сделки стадии «Финальный счёт»:
Тип условия: Поле документа
Поле документа: Стадия сделки
Условие: не равно
Значение: Финальный счёт
БольшеСравнивает указанные значения между собой. Если первое значение больше второго, то выполняется ветка условия.

Это аналогично записи Var1 > Var2.

Предположим, что при сумме товаров в сделке более 100 тыс. рублей (включительно) мы хотим менять ответственного на ведущего менеджера. Проверим соответствие суммы условием:
Тип условия: Поле документа
Поле документа: Сумма
Условие: больше
Значение: 99999
Не меньшеСравнивает указанные значения между собой. Если первое значение больше или равно второму, то выполняется ветка условия.

Это аналогично записи Var1 >= Var2.

Решим предыдущую задачу другим способом:
Тип условия: Поле документа
Поле документа: Сумма
Условие: не меньше
Значение: 100000
МеньшеСравнивает указанные значения между собой. Если первое значение меньше второго, то выполняется ветка условия.

Это аналогично записи Var1 < Var2.

Представим, что с 01.06.23 мы изменили правила подготовки документов по сделке. Какие документы готовить, старые или новые, проверим условием по дате начала сделки. Готовим по старому алгоритму, если:
Тип условия: Поле документа
Поле документа: Дата начала
Условие: меньше
Значение: 01.06.23
Не большеСравнивает указанные значения между собой. Если первое значение меньше или равно второму, то выполняется ветка условия.

Это аналогично записи Var1 <= Var2.

Решим предыдущую задачу другим способом:
Тип условия: Поле документа
Поле документа: Дата начала
Условие: не больше
Значение: 31.05.23
Содержится вПроверяет, содержится ли первое значение во втором. Если содержится, то выполняется ветка условия.

Когда значение переменной или поля – единственное, условие будет верным и в случае с подстрокой (например, «Ябл» содержится в «Яблоко»). Но для множественных переменных, учитывается только полное совпадение. К примеру для множественной переменной Var1 с тремя значениями: Яблоко, Груша, Персик:

  • Условие «Персик» содержится в Var1 – верное;
  • Условие «Пер» содержится в Var1 – неверное.
Представим, что мы хотим реализовать отдельную ветку бизнес-процесса если в сделке есть определённый товар. Тогда мы можем записать в переменную Variable1 название этого товара и проверить, содержится ли он в товарах сделки:
Тип условия: Смешанное
Источник: Переменные: Variable1
Условие: cодержится в
Значение: {{Товарные позиции (текст)}}
Не содержится вПроверяет, не содержится ли первое значение во втором. Если не содержится, то выполняется ветка условия.

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

Пусть нам понадобилось проверять, является ли наблюдателем за сделкой пользователь, запустивший бизнес-процесс. И если нет – то его надо добавить в наблюдатели. Перед конструкцией «Условие» сохраним в переменную Author этого [dw]пользователя[/dw][di]Значение «Автор» из формы «Вставка значения».[/di]. А затем зададим параметры условия:
Тип условия: Значение переменной
Свойство или переменная: Author
Условие: не cодержится в
Значение: {{Наблюдатели}}
СодержитПроверяет, содержится ли второе значение в первом. Если содержится, то выполняется ветка условия.

Оно работает в том числе по подстроке. Если у вас есть множественная переменная с тремя значениями: Яблоко, Груша, Персик, то условие «содержит» для слова «Пер» будет считаться верным.

Предположим, вы настроили интеграцию интернет-магазина на «1С-Битрикс: Управление сайтом» с Битрикс24. Теперь заказы из магазина приходят в Б24 в виде сделок с автоматически формируемыми названиями Eshop0 #1, Eshop0 #2 и т.д. Создадим условие, которое будет проверять содержится ли в названии сделки слово «Eshop», чтобы потом переносить такие сделки в другую воронку:
Тип условия: Поле документа
Поле документа: Название
Условие: содержит
Значение: Eshop
Не содержитПроверяет, не содержится ли второе значение в первом. Если не содержится, то выполняется ветка условия.

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

Вы постоянно тестируете разные сценарии на специально созданных тестовых сделках. В названиях таких сделок есть слова «тест» или «тестовая». Чтобы шаблон пропускал такие сделки используем условие:
Тип условия: Поле документа
Поле документа: Название
Условие: не содержит
Значение: тест
ЗаполненоВетка выполнится, если значение заполнено (не пустое).В сделках есть поле Комментарий. Представим, что мы хотим отправлять текст этого комментария в уведомлении, если в этом поле есть текст. Если оно пустое – то комментарий не должен быть отправлен. Используем условие, в ветке которого затем настроим уведомление:
Тип условия: Поле документа
Поле документа: Комментарий
Условие: заполнено
Не заполненоВетка выполнится, если значение не заполнено (пустое). Допустим, в карточке сделки добавлено специальное пользовательское поле для отметок об особенностях сделки «Важно». Если поле не заполнено – сделка обрабатывается автоматически и переходит на следующую стадию, а если заполнено – отправляется на ручную обработку старшему менеджеру. Можно разветвить процесс таким условием:
Тип условия: Поле документа
Поле документа: Важно
Условие: не заполнено
Было измененоЕсли бизнес-процесс настроен на запуск при изменении документа, то становится возможно определять внутри него измененные поля. Если поле изменено – ветка условия выполняется.

Работает только для типа условия «Поле документа» в бизнес-процессах Универсальных списков и Новостей.

Пусть список клиентов на портале ведётся с помощью универсальных списков (Сервисы > Списки). Мы хотим получать уведомление, если кто-то изменит название компании. Для этого создадим шаблон бизнес-процесса, запускающийся при изменении элемента списка, и в условии укажем проверку на изменение этого поля:
Тип условия: Поле документа
Поле документа: Название компании
Условие: было изменено
[ICO_NEW data-adding-timestamp="1699018271"] Между[/ICO_NEW]Условие выполнится, если значение попадает в заданный промежуток / период времени (включая крайние значения).

Доступно с версии модуля 23.400.0 для полей / переменных типа «Число» или «Дата и время».

Например, в шаблоне бизнес-процесса необходимо учесть отдельный сценарий для всех сделок, созданных в 2022 году. Используем условие [dw]между[/dw][di][/di]:
Тип условия: Поле документа
Поле документа: Дата создания элемента
Условие: между
Значение 1: 01.01.2022 00:00:00
Значение 2: 31.12.2022 23:59:59



Установить статус

Действие изменяет статус текущего документа на заданный.


Примечание: Действие доступно только в шаблонах [dwi include_bp_state_driven]бизнес-процессов со статусами[/dwi].

  Описание параметров


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

  Пример

Практический пример применения действия вы найдете в уроке Пример: организация обработки и доработки документа.

Цикл

Конструкция выполняет свои поддействия до тех пор, пока выполняется заданное условие.

Другими словами цикл работает до тех пор, пока условие истинно (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-кодами для форматирования текста;
  • Целевой сайт – сайт, в ленте новостей которого нужно публиковать сообщение;
  • Тип вложений – выберите один из вариантов: Файлы документа или Диск. От выбора типа зависит вид следующего параметра;
  • Вложения – в зависимости от выбора типа вложения, файлы прикрепляются разным образом. Если выбран вариант «Файлы документа» – вложения прикрепляются через форму [dwi include_bp_insert_value_form]Вставка значения[/dwi], а если «Диск» – появляется диалоговое окно выбора файлов с Диска;
  • Тег – проставьте слова, по которым этот пост потом легко будет найти. Можно указать несколько тегов через кнопку Добавить.

  Пример

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

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

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

  Результаты выполнения действия

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

Доступно:

  • ID сообщения;
  • Ссылка на сообщение;
  • Ссылка на сообщение (BBcode).



Отправить сообщение в групповой чат

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

  Описание параметров


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

    Подробнее...[/di];
  • Отправитель – укажите пользователя, который будет отображаться как отправитель;
  • Вид сообщения – выберите из списка вид сообщения в зависимости от его важности. Каждый вид отличается форматированием;
  • Заголовок – задайте заголовок сообщения. Это поле доступно только для видов «Объявление» и «Важное»;
  • Текст сообщения – впишите текст сообщения.

  Виды сообщений

В параметрах действия доступен выбор из пяти видов сообщений:

  • Базовое;
  • Объявление;
  • Уведомление;
  • Важное;
  • Авария.
«Отправлено роботом». Такую фразу вы увидите в любом сообщении, отправленном из бизнес-процесса, даже если для него указан отправитель.

Рассмотрим подробнее как меняется внешний вид сообщения.

Базовое

Сообщение выглядит как обычное, без форматирования.

Объявление

Объявление имеет заголовок жирного начертания и текст. Всё сообщение выделено синей вертикальной полосой.

Уведомление

Уведомление состоит из двух частей: ссылки на документ процесса и текста сообщения. Всё сообщение выделено синей вертикальной полосой.

Важное

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

Авария

Аварийное сообщение обозначается иконкой и содержит текст. Всё сообщение выделено красной вертикальной полосой.

  Пример

Представим, что мы в бизнес-процессе создаём новый чат действием «Создать групповой чат» и хотим, чтобы в этот чат автоматически отправлялось сообщение для участников с приветствием и правилами чата. Заполним параметры действия:

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





Отправить сообщение в личный чат

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

  Описание параметров


  • Отправитель – укажите пользователя, который будет отображаться отправителем. Если указать в поле группу пользователей, то системой будет выбран в качестве отправителя пользователь с наименьшим ID;
  • Получатель – укажите пользователей, которые получат сообщение в рабочем чате с отправителем;
  • Вид сообщения – выберите из списка вид сообщения в зависимости от его важности. Каждый вид отличается форматированием;
  • Заголовок – задайте заголовок сообщения. Это поле доступно только для видов «Объявление» и «Важное»;
  • Текст сообщения – впишите текст сообщения.

  Виды сообщений

В параметрах действия доступен выбор из пяти видов сообщений:

  • Базовое;
  • Объявление;
  • Уведомление;
  • Важное;
  • Авария.
«Отправлено роботом». Такую фразу вы увидите в любом сообщении, отправленном в чат из бизнес-процесса.

Рассмотрим подробнее как меняется внешний вид сообщения.

Базовое

Сообщение выглядит как обычное, без форматирования.

Объявление

Объявление имеет заголовок жирного начертания и текст. Всё сообщение выделено синей вертикальной полосой.

Уведомление

Уведомление состоит из двух частей: ссылки на документ процесса и текста сообщения. Всё сообщение выделено синей вертикальной полосой.

Важное

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

Авария

Аварийное сообщение обозначается иконкой и содержит текст. Всё сообщение выделено красной вертикальной полосой.

  Пример

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

В результате все сотрудники получат сообщение в чат с пользователем отдела кадров, имеющим наименьший ID.





Отправить сообщение в чат

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


Примечание: Действие доступно только в Битрикс24.

Описание параметров

  • Текст сообщения – задается текст сообщения, который будет отправлен в открытую линию клиента;
  • Скрытое сообщение – отметьте Да, чтобы сообщение было скрытым;
  • Тип вложений – укажите тип вложения, которое нужно прикрепить к сообщению. Доступны варианты: Файлы документа и Диск;
  • Вложения – выберите вложение с помощью формы Вставка значения (если был выбран тип Файлы документа) или с диска (если был выбран тип Диск).

Пример настройки: уведомление клиента о подготовке счета. В качестве вложения выбран файл c помощью формы Вставка значения из дополнительных результатов действия [dw]Создание документа CRM[/dw][di]Действие создаёт документ CRM.
Подробнее...[/di].



Календарь

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


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

Описание Параметров

Смысл большинства полей ясен из их названия, поэтому их описание будет пропущено.

Пользователь – указывается пользователь, для которого будет создано событие.


Поставить задачу

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


Примечание: Действие относится к модулю Задачи и доступно только в Битрикс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}}
    • Счета (новые): ="SI_"&{{ID}}

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

  • Load files – позволяет прикрепить файлы к задаче. По нажатии на Загрузить документы открываются доступные [dw]варианты загрузки[/dw][di][/di]: перетащить с помощью Drag'n'drop, загрузить с Битрикс24.Диск, загрузить с внешнего диска или создать новый файл. Также доступно прикрепление файлов через форму Вставка значения.

Пример заполнения параметров действия

Результаты выполнения действия

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

Доступно:

  • ID задачи;
  • Дата завершения задачи;
  • Пользователь, закрывший задачу;
  • Задача удалена.


Почтовое сообщение

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

  Описание

В первую очередь действие предназначено для отправки сообщения в виде письма на e-mail сотруднику портала. При необходимости получателем можно указать любой сторонний e-mail адрес.

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

О том, как настроить работу почты в Битрикс24 вы найдете в:

Примечание: На текущий момент письма, отправленные действием, не сохраняются в папке Отправленные почты отправителя. Таком образом, отследить отправку не получится.
Внимание: В облачном Битрикс24 для действия Почтовое сообщение введено ограничение [dw]на отправку сообщений[/dw][di]Ограничение касается тех email-ов, с которых планируется отправка сообщения.[/di] от неподтвержденных/неподключенных адресов.

  Параметры


  • Отправитель сообщения – указывается пользователь, от имени которого будет отправлено письмо. Поле принимает значения типа Пользователь или e-mail. Если у пользователя, который является отправителем, нет доступной почты для отправки, то письмо не будет отправлено, а в логе бизнес-процесса вы увидите информацию о том, что свойство «Отправитель не указано». В таком случае проверьте, что у сотрудника есть доступный [ds]подключенный адрес[/ds][di]Первым делом нужно подключить почтовый ящик: перейдем в раздел Почта в левом меню. В Битрикс24 доступно подключение основных почтовых провайдеров и сервисов.

    Подробнее на helpdesk.bitrix24.ru.[/di] для отправки писем, который должен быть указан как контактный в [ds]профиле[/ds][di]У каждого пользователя Битрикс24 есть своя персональная страница с личной информацией.

    Подробнее на helpdesk.bitrix24.ru.[/di];
  • Получатель сообщения – указывается, кто получит e-mail. Получателем может быть пользователь, группа пользователей или список адресов;
  • Тема сообщения – тема отправляемого письма;
  • Текст сообщения – основной текст письма. Есть возможность использовать HTML форматирование, тогда в следующем параметре важно выбрать тип html;
  • Тип сообщения – указывается, как будет отправлено сообщение: в виде простого текста или с использованием html форматирования;
  • Кодировка – задается кодировка отправляемого сообщения. По умолчанию установлена кодировка UTF-8 (самый частый вариант);
  • Способ отправки – выбирается способ отправки сообщения:
    • Прямая отправка – сообщение будет отправлено [dw]сразу[/dw][di]Предпочтительный вариант для компаний, работающих с почтой в некрупных масштабах.[/di];
    • Отправка через систему сообщений – сообщение будет отправлено через встроенную почтовую систему. Отправка может произойти [dw]не сразу[/dw][di]Если вы активно работаете с почтой и массовыми рассылками, то этот вариант вам подойдет больше.[/di].
  • Сайт шаблона сообщения – указывается сайт шаблона сообщения для отправки его через встроенную почтовую систему. На разных сайтах могут быть разные [dw]шаблоны почтовых сообщений[/dw][di]Примечание: Если отправка сообщения осуществляется через систему сообщений и не проходит, то в первую очередь необходимо проверить выбранный шаблон сообщения[/di];
  • Тип вложений – осуществляется выбор из двух вариантов: Файл или Файлы Диска;
  • Вложение – позволяет добавить к письму документы. Если в параметре Тип вложений был указан тип Файл, то документ добавляется посредством формы Вставка значения (например, параметром или переменной шаблона). Если же выбран тип Файлы Диска, то становится доступен диалог прикрепления документа с Диска;

    Как добавить переменный файл с Диска (для списков)

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

  Пример

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



Событие календаря

Действие добавляет событие в календарь. Требуется установленный модуль [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 секции календаря можно из базы данных, из исходного кода страницы или из анализа [dw]AJAX[/dw][di]AJAX (Asynchronous Javascript and XML) – технология, позволяющая взаимодействовать с сервером без перезагрузки страницы. Например, получать или передавать какие-нибудь данные.[/di] запроса. Поэтому данное поле лучше заполнять программисту.
    Как узнать 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:

Результатом выполнения действия будет сообщение:


Уведомить руководство

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


Примечание: данное действие доступно для Сделок и Лидов в бизнес-процессах в CRM (Битрикс24).

Параметры действия

  • Текст сообщения – текст уведомления;
  • Отправить руководителю – выбирать ли непосредственного начальника ответственного менеджера, согласно структуре компании;
  • Дополнительные получатели – дополнительные пользователи, которым отправится уведомление. Если руководителем не является непосредственный начальник, то здесь указывается нужный пользователь.

Пример



Уведомление пользователя

Действие позволяет отправлять сообщения на сайт /[dw]XMPP[/dw][di]Если пользователь использует XMPP, то сообщение придет ему туда, иначе оно будет отправлено на сайт (если пользователь там авторизован). Если пользователь не авторизован на сайте, то дополнительно текст сообщения будет отправлен по электронной почте.[/di]/ e-mail.

Описание Параметров

  • Отправитель уведомления – выбирается пользователь, от чьего имени будет проведена отправка (если в опции Тип уведомления выбран вариант Персонализированное).
  • Получатель уведомления – выбирается получатель (пользователь или группа).
  • Текст уведомления для сайта – задается текст сообщения, который будет отображаться на сайте, если пользователь не использует XMPP.
    Для текста доступно форматирование BBCode ([b], [i], [s], [u], [url]).
  • Текст уведомления для email/jabber – задается текст сообщения для e-mail/XMPP, который будет отправлен, если пользователь не авторизован на сайте. Текст можно задать как отличный от текста для сайта, так и такой же, оставив для этого поле пустым.
  • Тип уведомления – позволяет указать от кого придет сообщение:
    • Персонализированное уведомление (с аватаром) – т.е. от конкретного пользователя, указанного в Отправитель;
    • Уведомление от системы (без аватара) – отобразится как системное сообщение.

Пример



Установить текст статуса

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

  Описание параметров


  • Установить текст статуса – внесите в поле текст, вручную или с помощью формы [dwi include_bp_insert_value_form]Вставка значения[/dwi], который отобразится в статусе текущего документа.

  Пример

  Где отобразится статус

Статус отображается в списке процессов (Бизнес-процессы > Мои процессы) и общем списке документов (элементов универсального списка):

А также в детальном просмотре документа:



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.


Действие не имеет настроек, кроме стандартного заголовка.


Добавить комментарий в элемент

Действие добавляет комментарий от сотрудника в [ds]таймлайн элемента CRM[/ds][di]Таймлайн – часть карточки элемента CRM, в которой фиксируются изменения.

Подробнее на helpdesk.bitrix24.ru.[/di].


  Описание параметров

  • Комментарий – задается текст сообщения комментария. Для текста доступны вставка через форму [dwi include_bp_insert_value_form]Вставка значения[/dwi] и форматирование [ds]BBCode[/ds][di]BBCode – язык разметки, используемый для форматирования сообщений.

    Подробнее на Википедии[/di] ([b], [i], [s], [u], [url], [img], [color], [size], [list] и [table]).
  • Автор – укажите от чьего имени будет оставлен комментарий.

  Пример

Добавление комментария в сделке о важности клиента и быстрой подготовке документов. Используется форматирование bbcode. В качестве автора комментария выбран Ответственный (форма Вставка значения, Поля документа > Ответственный.

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

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



Добавить товарную позицию

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

Подробнее на helpdesk.bitrix24.ru[/di] в элемент.

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

  Описание параметров


  • ID товара – укажите ID товара. Доступен выбор из [dw]списка товаров[/dw][di][/di]. При выборе товара из списка товаров, в поле подставится ID в виде числа;
  • Цена – цена товарной позиции;
  • Количество – количество экземпляров товарной позиции;
  • Скидка, % – величина скидки в процентах, которую нужно применить к указанной товарной позиции.

Для всех параметров доступна подстановка через форму [dwi include_bp_insert_value_form]Вставка значения[/dwi].

  Пример настройки:



Забронировать ресурс

Действие бронирует ресурс.


Примечание. Действие аналогично бронированию ресурсов в публичной части CRM.

Описание параметров


  • Поле – выберите поле из существующих полей типа [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].

Примечание: ранее применялись отдельные действия для разных типов дел (Задание, Запланировать встречу и Запланировать звонок). Теперь любой тип создаётся одним действием Запланировать дело.

  Описание параметров

  • Что нужно сделать – укажите подробную информацию;
  • Дата – задайте крайний срок выполнения (дату и время);
  • Ответственный – укажите пользователя, которому требуется поставить задание. Например, ответственного за Сделку / Лид;
  • Автоматически завершать дело при переходе в другой статус – при выборе данной опции дело будет считаться завершенным, как только статус Лида/Сделки изменится.

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

  Пример

Например, пусть будет создано дело "связаться с клиентом" с крайним сроком через 2 дня от текущей даты.

Созданное задание в списке:

  Результаты выполнения действия

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

Доступно:

  • ID созданного дела.



Изменить компанию

Действие изменяет данные в полях связанной компании.


Описание параметров

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

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

В примере использовался такой параметр:
[/di] при запуске бизнес-процесса.



Изменить контакт

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


Описание параметров

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

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



Изменить наблюдателей

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


Описание параметров

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

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

Подробнее на helpdesk.bitrix24.ru.[/di] пользователя Администратор магазина.



Изменить ответственного

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

Примечание: Действие аналогично [dw]cмене ответственного[/dw][di]В 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).
    Изменить информацию для нескольких элементов возможно с помощью [dwi include_bp_iterator]итератора[/dwi], если список этих элементов сохранен в множественной переменной / поле. В этом случае в фильтре нужно указать ID равным Значению итератора (из дополнительных результатов);
  • Выбрать поле – по нажатии на ссылку добавляется строка с выборам поля. Выберите поле и укажите его новое значение. Доступно использование формы [dwi include_bp_insert_value_form]Вставка значения[/dwi].

  Пример настройки:



Копировать или Переместить товарные позиции

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

Подробнее на helpdesk.bitrix24.ru[/di] из текущего элемента в указанный.

Примечание: Действие доступно в бизнес-процессах Сделок, Коммерческих предложений, Счетов и Смарт-процессов.

  Описание параметров

  • Цель – выберите из списка тип сущности CRM;
  • ID цели – укажите ID сущности, в которую будут скопированы/перемещены товарные позиции;
  • Действие – выберите необходимое действие:
    • Копировать – товарные позиции будут скопированы в указанную сущность, т.е. сохранены в текущем документе (в котором запущен бизнес-процесс);
    • Переместить – товарные позиции будут перемещены в указанную сущность, т.е. удалены в текущем документе (в котором запущен бизнес-процесс).

  Пример

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

Подробнее...[/di] (хранится в дополнительных результатах).



Копировать сделку

Действие создаёт новую сделку по данным из текущей.


  Описание параметров


  • Название сделки – укажите название новой сделки. По умолчанию это название текущей сделки {=Document:TITLE} с добавлением текста (Копия);
  • Перенести в воронку – выберите, в какую из существующих воронок перенести создаваемую сделку;
  • Начальная стадия – укажите начальную стадию;
  • Ответственный – назначьте пользователя, ответственного за создаваемую сделку.
Примечание. Если параметры «Перенести в воронку» и «Начальная стадия» не были заполнены, то они заполнятся автоматически после закрытия формы настроек (будет выбран первый вариант в списке).

  Пример настройки:

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



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

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

Примечание: О работе со смарт-процессами в Битрикс24 читайте в статье helpdesk.bitrix24.ru

  Описание параметров


  • Название смарт-процесса – укажите название создаваемого элемента. По умолчанию установлено значение {=Document:TITLE} (Копия), где {=Document:TITLE} – название текущего документа, в котором запущен БП;
  • Перенести в направление – выберите направление из списка. Параметр доступен если в настройках смарт-процесса включено использование в смарт-процессе своих [dw]направлений и туннелей продаж[/dw][di][/di];
  • Начальная стадия – выберите начальную стадию из списка. Параметр доступен если в настройках смарт-процесса включено использование своих [dw]стадий и канбан[/dw][di][/di];
  • Ответственный – укажите ответственного за создаваемый элемент.

  Пример настройки:

В секции Дополнительные результаты формы Вставка значения станет доступен ID нового смарт-процесса.



Ожидание

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


Примечание: Действие аналогично ожиданию в карточке CRM в публичной части (форма создания дел и комментариев, кнопка Ждать).

Описание параметров


  • Тип ожидания – выберите из списка тип ожидания:
    • Ждать указанное количество дней
    • Ждать указанное количество дней до выбранной даты
  • Интервал, дней – укажите интервал ожидания в днях;
  • До даты – выберите из списка доступных дат ту дату, до которой будет установлено ожидание (если ранее не произойдет [dw]активности клиента[/dw][di]Допустим, Вы выбрали опцию Ждать 2 дня. Т.е. Битрикс24 установит для элемента CRM (например, Сделки) ожидание на 2 дня. Но оно автоматически прекратится раньше срока, если Клиент совершит какую-нибудь активность – к примеру, напишет письмо или позвонит.[/di]);
  • Комментарий или инструкция – необязательное текстовое поле для комментария или инструкции. При необходимости, заполните его вручную или с помощью формы [dwi include_bp_insert_value_form]Вставка значения[/dwi].

Пример настройки:



Ожидание стадии сделки

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

Описание параметров

ID сделки – идентификатор сделки. Для удобства можно использовать форму [dwi include_bp_insert_value_form]«Вставка значения»[/dwi].

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

Важно: Рекомендуется использовать это действие только для тех шаблонов бизнес-процессов, которые запускаются при добавлении (создании). При использовании действия "Ожидание стадии сделки" на изменение документа бизнес-процесс запускается при каждом изменении и останавливается в ожидании сделки. Таким образом создается несколько экземпляров БП (по количеству изменений), которые одновременно выполняются при достижении нужной стадии.

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

Ожидание статуса лида

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

Подробнее на helpdesk.bitrix24.ru.[/di].

  Описание параметров


  • ID лида – идентификатор лида. Для удобства можно использовать форму [dwi include_bp_insert_value_form]«Вставка значения»[/dwi].
  • Статус – укажите статус, по достижении которого процесс продолжит свое выполнение. Бизнес-процесс будет ожидать перехода лида в выбранный статус либо финальный статус.

Важно: Рекомендуется использовать это действие только для тех шаблонов бизнес-процессов, которые запускаются при добавлении (создании). При использовании действия "Ожидание статуса лида" на изменение документа бизнес-процесс запускается при каждом изменении и останавливается в ожидании статуса лида. Таким образом создается несколько экземпляров БП (по количеству изменений), которые одновременно выполняются при достижении нужной стадии.

  Пример

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

Отменить бронирование

Действие удаляет бронирование.


Примечание: Действие аналогично отмене бронирования ресурсов в публичной части CRM.

Описание параметров


  • Поле – выберите одно из существующих полей типа [dw]бронирование ресурсов[/dw][di]Бронирование ресурсов – это тип пользовательского поля. Его можно использовать в лидах и сделках, а создать в настройках CRM или карточке элемента.

    Подробнее на helpdesk.bitrix24.ru.[/di].

Пример настройки:



Отправить СМС

Действие позволяет отправить СМС клиенту или сотруднику.


  Описание параметров


  • Текст сообщения – текст, который будет отправлен клиенту в СМС;
  • Тип номера клиента – тип номера получателя сообщения (рабочий, домашний и т.д.);
  • Провайдер – выберите, с помощью какого провайдера отправится сообщение: установленного в настройках CRM, стандартного из [ds]служб сообщений[/ds][di]Модуль Служба сообщений позволит Вам осуществлять маркетинговую рассылку не только на электронную почту, но посредством SMS-сообщений, а также регистрироваться на сайте по номеру телефона! Все, что для этого нужно - установить сам модуль и подключить хотя бы одну из служб отправки SMS.

    Подробнее в курсе Администратор сервиса Битрикс24 (коробочная версия).[/di] или стороннего из предложенных в Маркете. Если выбранный провайдер не настроен, в форме отобразится предупреждение Провайдер не настроен и не готов к работе. Настройки провайдеров находятся по пути CRM > Настройки > Настройки CRM > Интеграции в публичной части и по пути Настройки > Настройки продукта > Настройки модулей > Служба сообщений в административной части (для коробочной версии);
  • Тип получателя – получателем СМС может быть выбран Клиент или Сотрудник. При выборе первого варианта, сообщение будет направлено клиенту, привязанному к документу бизнес-процесса. При выборе второго варианта – заполните следующее поле формы настроек;
  • Сотрудник – укажите сотрудника, которому будет отправлено сообщение. Поле нужно заполнять, только если в предыдущем параметре типом получателя выбран Сотрудник.

  Пример

Действие настраивается в шаблоне бизнес-процесса Сделки. Значит, сообщение будет отправлено клиенту, связанному со сделкой. Номер телефона получателя действие возьмет из поля «Мобильный телефон», а провайдера – из настроек CRM. В тексте сообщения содержится информация для клиента о готовности документов.



Отправить письмо клиенту

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


Примечание: Действие аналогично отправке писем из CRM в публичной части CRM Битрикс24.

Параметры действия

  • От кого – укажите отправителя письма. Отправитель выбирается автоматически: почтовый адрес берется по ответственному из списка доступных для отправки адресов (первый по списку). Также можно добавить [dw]дополнительного отправителя[/dw][di]На указанный почтовый адрес придет проверочное письмо с кодом проверки.
    После подтверждения владения этим почтовым адресом, вы сможете выбирать
    в поле От кого этот адрес.

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

    Подробнее на helpdesk.bitrix24.ru.[/di] для отправки писем, который должен быть указан как контактный в [ds]профиле[/ds][di]У каждого пользователя Битрикс24 есть своя персональная страница с личной информацией.

    Подробнее на helpdesk.bitrix24.ru.[/di];
  • Тема – внесите тему письма;
  • Текст письма – напишите текст письма для клиента. Способ форматирования текста зависит от следующего параметра Тип текста (html или bbcode);
  • Тип текста – выберите тип текста, на основании которого будет выполнено форматирование текста письма. Доступны BBCODE и HTML;
  • Тип адреса клиента – выберите из списка [dw]тип адреса[/dw][di]Тип e-mail адреса указан в карточке клиента (Контакта, Компании или Лида) для поля E-mail:

    [/di] клиента:
    • Автоматический выбор;
    • Рабочий e-mail;
    • Частный e-mail;
    • E-mail для рассылок;
    • Другой e-mail.

    Если адрес выбранного типа отсутствует в карточке (не заполнен), действие не сработает (письмо не будет отправлено). В параметре можно использовать только перечисленные типы адресов. Подстановка значений через форму «Вставка значения» не предусмотрена.

  • Использовать адрес – выберите на какой адрес, первый добавленный или последний добавленный, отправить письмо. В зависимости от настройки параметра «Тип адреса клиента» работает следующим образом:
    • если выбран определённый тип, то параметр пригодится, когда у клиента добавлено несколько адресов этого типа;
    • при автоматическом выборе письмо будет отправлено на первый или последний адрес, указанный в карточке клиента, независимо от его типа.
    Примечание: Если в карточке привязано несколько контактов, система всегда выбирает первый добавленный контакт, а уже у него – первый или последний добавленный адрес (в соответствии с настройкой параметра «Использовать адрес»).
  • Тип вложений – укажите тип вложения. От типа меняется вид следующего поля Вложения;
  • Вложения
    • Файлы документа – укажите файл с помощью формы [dwi include_bp_insert_value_form]«Вставка значения»[/dwi]. С помощью кнопки Добавить можно добавлять необходимое количество файлов;
    • Диск – выберите файл с диска.
  • Отслеживать переходы по ссылкам – опция включает отслеживание переходов клиента по ссылкам в письме.

Пример настройки:



Получить информацию о привязанном элементе

  Действие получает значения полей в привязанном элементе для передачи в другие действия.

Внимание! Доступно только в бизнес-процессах смарт-процессов. О работе со смарт-процессами в Битрикс24 читайте в статье helpdesk.bitrix24.ru

  Описание параметров


  • Связь с – выберите сущность CRM, по которой нужно получить информацию. Список зависит от настроек смарт-процесса, а именно какие [dw]элементы CRM[/dw][di][/di] могут быть привязаны к смарт-процессам.

Все поля выбранной сущности станут доступны в секции Дополнительные результаты формы [dwi include_bp_insert_value_form]«Вставка значения»[/dwi].



Получить информацию о реквизитах

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

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

  Описание параметров


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

    Подробнее читайте на helpdesk.bitrix24.ru.[/di]: организация, ИП или физ. лицо;
  • Тип адреса – укажите тип адреса из реквизитов.

Действие не вернет информацию о реквизитах, если шаблон или тип адреса не совпадут с реквизитами контакта / компании.

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

Как настроить смарт-процесс?

  Пример

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

Полученные данные о реквизитах станут доступны для выбора в секции Дополнительные результаты формы [dwi include_bp_insert_value_form]«Вставка значения»[/dwi] в других действиях:



Получить информацию о товарной позиции

Действие позволяет получить данные о товарной позиции для передачи в другие действия.

Примечание: Действие доступно в шаблонах бизнес-процессов Сделок, Коммерческих предложений, Счетов и Смарт-процессов.

  Описание действия

  Описание параметров


  • ID товарной позиции – укажите идентификатор ID товарной позиции, по которой нужно получить информацию.

  Пример настройки:

Поля выбранной товарной позиции с указанным ID станут доступны в секции [dw]Дополнительные результаты[/dw][di][/di] формы Вставка значения:

  • ID товарной позиции;
  • ID владельца;
  • Тип владельца;
  • ID товара;
  • Название товара;
  • Цена;
  • Цена без налога со скидкой;
  • Цена без учета скидок и налогов;
  • Цена без учета скидок, но с учетом налогов;
  • Количество;
  • Цена за весь товар;
  • Сумма (текст);
  • Тип скидки;
  • Величина скидки;
  • Сумма скидки;
  • Налог;
  • Налог включен в цену;
  • Код единицы измерения;
  • Единица измерения;
  • Сортировка;
  • XML ID;
  • Тип товара.

  Пример работы с действием

Получить ID товарной позиции можно через форму [dwi include_bp_insert_value_form]«Вставка значения»[/dwi], секция Поля документа, поле [dw]Товарные позиции[/dw][di][/di]. Это поле содержит в себе идентификаторы всех товарных позиций в документе.

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

Как же получить данные по всем товарам? Поле "Товарные позиции" - множественное, а значит с ним получится работать с помощью [dwi include_bp_iterator]Итератора[/dwi].

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

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

Подробнее на helpdesk.bitrix24.ru.[/di] множественное поле типа Строка с названием Информация о товарах, в которое мы будем записывать полученную о товарах информацию.

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

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

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

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

Результатом запуска БП в сделке с двумя товарами будет новая задача с информацией о товарах в описании:

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

, где
  1. Информация о товарах, которую мы записали в поле сделки Информация о товарах;
  2. Информация из поля документа Товарные позиции (текст).


Получить информацию об оплате

  Действие позволяет получить данные о статусе оплаты заказа для передачи в другие действия.

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

[/di]).

  Описание параметров


  • ID заказа – укажите идентификатор ID заказа, по которому нужно получить данные об оплате.

  Пример настройки:

В параметре указан ID заказа [dw]текущей сделки[/dw][di][/di] (в которой запущен бизнес-процесс).

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

  • ID оплаты;
  • Номер оплаты.


Получить информацию об элементе CRM

  Действие передаёт данные об элементе другим действиям.

Примечание: До версии модуля CRM 21.1800.0 действие имело название Чтение элемента смарт-процесса и позволяло прочитать данные только элемента смарт-процесса.
Если вы ранее уже использовали действие со старым названием в шаблоне БП, то шаблон продолжит исправно работать, а действие будет с пользовательским названием.

  Описание параметров

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

    Подробнее на helpdesk.bitrix24.ru.[/di]:
  • Фильтр по полям – укажите поля и их значения для отбора элемента, данные которого требуется прочитать. В фильтре доступна [dw]подстановка значения[/dw][di]Для подстановки значения нажмите на три точки справа от поля ввода:

    [/di]. Если по результатам настройки фильтра будут найдены несколько подходящих элементов, то данные будут прочтены только для первого найденного элемента (первого в списке по ID).
    Прочитать информацию для нескольких элементов возможно с помощью [dwi include_bp_iterator]итератора[/dwi], если список этих элементов сохранен в множественной переменной / поле. В этом случае в фильтре нужно указать ID равным Значению итератора (из дополнительных результатов);
  • Выберите поля – выберите поля элемента CRM, значения которых необходимо получить. Набор доступных полей зависит от типа элемента. Для выбора нескольких полей зажмите клавишу Ctrl на клавиатуре.

  Пример настройки:

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



Провести автоплатёж

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

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

[/di]).

  Описание параметров


  • ID заказа — укажите идентификатор ID заказа, по которому нужно провести оплату.

  Пример настройки:

В параметре указан ID заказа [dw]текущей сделки[/dw][di][/di] (в которой запущен бизнес-процесс).



Сменить воронку

Действие переносит элемент в указанную воронку продаж и останавливает все текущие незавершенные роботы и бизнес-процессы. Подробнее о воронках продаж читайте на helpdesk.bitrix24.ru.


Примечание: ранее действие имело название Сменить направление

Описание параметров


  • Воронка – выберите нужный вариант из списка или укажите его через форму [dwi include_bp_insert_value_form]«Вставка значения»[/dwi];
  • Стадия – выберите стадию из списка или укажите её через форму «Вставка значения». В списке отображены стадии выбранной воронки.

Пример:



Сменить стадию

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

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

Подробнее о статусах и как их добавить / изменить в статье на helpdesk.bitrix24.ru.[/di].

  Описание параметров


  • Изменить на стадию – выберите из списка стадию, на которую нужно перенести элемент. В списке доступны стадии всех воронок продаж;

    В шаблонах бизнес-процессов для Лидов, Коммерческих предложений, Счетов и Смарт-процессов параметр действия имеет название Изменить на статус.

  • Изменить от имени – укажите пользователя, от имени которого выполнится смена стадии / статуса.

Для обоих параметров доступна подстановка значения через форму [dwi include_bp_insert_value_form]«Вставка значения»[/dwi].

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

  Пример настройки:

Смена стадии Сделки:

Смена статуса Лида. Обратите внимание на другое название параметра в бизнес-процессе Лидов:



Создание нового контакта

Действие создаёт новый Контакт.


Примечание: Этот урок о создании Контакта в 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.



Создать документ

Действие создаёт документ на основании шаблона. Например, счет или коммерческое предложение.

Примечание: О работе с документами CRM читайте на helpdesk.bitrix24.ru

  Описание параметров


  • Шаблон – укажите шаблон, по которому будет создан документ;
  • Ожидать конвертации PDF файла – если выбрано Да, то действие не будет завершено пока не выполнится конвертация документа в формате PDF;
  • С подписью и печатью – добавлять в документ подпись и печать (должны быть ранее указаны в настройках вашей компании);
  • Создать публичную ссылку – создастся публичная ссылка (т.е. созданный документ будет доступен для скачивания извне по ссылке);
  • Моя компания – укажите свою компанию;
  • Реквизиты моей компании – укажите реквизиты вашей компании;
  • Банковские реквизиты моей компании – укажите банковские реквизиты вашей компании;
  • Поля документа > Добавить поле – добавление [dw]пользовательских полей[/dw][di]Пример добавления в статье на helpdesk.bitrix24.ru.[/di] для документа.

Примечание:

Пример настройки:

Важно: Для параметров действия Шаблон, Реквизиты ... и Банковские реквизиты ... доступна подстановка значений через форму [dwi include_bp_insert_value_form]«Вставка значения»[/dwi], но нужно иметь ввиду два момента:
  • В качестве значений действию нужны идентификаторы [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].


Описание параметров


  • Ответственный – назначьте пользователя, ответственного за создаваемый Контакт.

Пример настройки:

В результате выполнения действия в секции Дополнительные результаты формы [dwi include_bp_insert_value_form]«Вставка значения»[/dwi] станет доступен 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. Для заполнения полей доступно использование формы [dwi include_bp_insert_value_form]«Вставка значения»[/dwi].

  Пример настройки:

В качестве типа CRM элемента выбран смарт-процесс.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы «Вставка значения» – Дополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон (с версии CRM 21.1100.0).

Доступно:

  • ID нового элемента CRM.



Удалить товарные позиции

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

Подробнее на helpdesk.bitrix24.ru[/di] в карточке элемента, например, если клиент передумал покупать.

Примечание: Действие доступно в шаблонах бизнес-процессов Сделок, Коммерческих предложений, Счетов и Смарт-процессов.

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



Удалить элемент CRM

  Действие удаляет элемент CRM, когда больше нет необходимости его хранить.

Примечание: До версии модуля CRM 21.1800.0 действие имело название Удалить элемент смарт-процесса и позволяло удалить только элемент смарт-процесса.
Если вы ранее уже использовали действие со старым названием в шаблоне БП, то шаблон продолжит исправно работать, а действие будет с пользовательским названием.

  Описание параметров


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

    Подробнее на helpdesk.bitrix24.ru.[/di]:
  • ID элемента CRM – укажите идентификатор ID элемента CRM вручную или с помощью формы [dwi include_bp_insert_value_form]«Вставка значения»[/dwi].

  Пример настройки:

В примере выбран идентификатор элемента смарт-процесса, созданного ранее в шаблоне действием [dw]Создать элемент CRM[/dw][di]

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

Диск (только для Б24)

В группе собраны действия для работы с объектами диска. Все действия доступны только в Битрикс24.

Детально об объекте Диска

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

  Описание параметров


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

    Подробнее...[/di] или [dw]Создать папку в Диске[/dw][di]Действие создает папку в Диске.

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

  Результаты выполнения действия

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

Доступно:

  • ID;
  • Тип объекта;
  • Название;
  • Размер в байтах;
  • Размер (форматированное);
  • URL для просмотра;
  • URL для загрузки.

  Пример

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

Шаблон бизнес-процесса нашего примера состоит их [dw]трёх действий[/dw][di][/di]: Создать папку в Диске, Детально об объекте Диска и [dwi include_bp_message]Сообщение соц.сети[/dwi].

Действие [dw]Создать папку в Диске[/dw][di][/di] создаст папку, затем в действии Детально об объекте Диска станет доступен выбор ID этой папки в дополнительных результатах:

Добавим получение более полной информации по вновь созданной папке из дополнительных результатов в уведомление:

Результат выполнения бизнес-процесса:



Загрузить в Диск

Действие загружает файл в хранилище Диска.

Описание параметров

Куда загрузить – куда именно нужно загрузить файл. Возможны следующие варианты:

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

Файл для загрузки – необходимо указать загружаемый файл. Сделать это можно:

  • С помощью формы [dwi include_bp_insert_value_form]«Вставка значения»[/dwi]. Например, из [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 папки.

Удалить объект Диска

Действие удаляет объект Диска.

  Описание параметров


  • Исходный объект (Папка или файл Диска) – файл или папка, которые должны быть удалены (перемещены в корзину). Доступен диалог прямого выбора с диска или добавление переменного [dw]значения[/dw][di]Действие ожидает идентификатор ID объекта.[/di] через форму [dwi include_bp_insert_value_form]«Вставка значения»[/dwi]. Действием можно удалить только один объект;
  • Удалять от имени – от имени какого пользователя будет удален файл.

  Пример

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

Другие примеры исходного объекта из формы «Вставка значения»:

  • доп. результат ID файлов Диска действия [ds]Загрузить в Диск[/ds][di]Действие загружает файл в хранилище Диска.

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

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



Прочее

В группе собраны все остальные команды.

PHP код

Действие позволяет выполнить произвольный PHP код. Доступно только для коробочной версии «Битрикс24».

  Описание

Действие имеет один единственный параметр PHP код с полем для внесения кода. Код указывается без открывающих и закрывающих тегов (<?, ?>).

Внимание! Задавать PHP-код может только пользователь с правами администратора.

Для написания кода и работы с сущностями сайта используйте API:

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

Не рекомендуется использовать в теле кода стандартную подстановку значений бизнес-процессов в фигурных скобках {=...}. Такие выражения нередко содержат параметры, которые может изменить любой пользователь портала, даже не имеющий необходимых прав.
Например, вместо конструкции {=Variable:COMPANY_NAME} лучше использовать $root->GetVariable('COMPANY_NAME').

Cчитать поле документа в переменную можно таким образом:

// Считываем поле документа NAME в переменную
$documentService = $this->workflow->GetService("DocumentService");
$document = $documentService->getDocument($this->getDocumentId());
$fieldValue = $document['NAME'];

, где NAME – это поле документа (его название), а $fieldValue – произвольная переменная, в которую мы сохраняем значение поля документа для использования в коде.

 Полезные уроки по теме:

  Примеры кода

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]:

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

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



Выбор сотрудника

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

Описание Параметров

Тип:

  • случайный – выбор обычного сотрудника случайным образом;
  • последовательный – выбор обычного сотрудника последовательным образом (т.е. по порядку из списка в параметре Из пользователей). При каждом новом запуске процесса будет выбран следующий по порядку в списке пользователь;
  • начальник – [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 (своё значение) и сохраняем результат в глоб. переменную Стоимость договора.



Добавить участников в групповой чат

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


  Описание параметров


  • Выбрать чат – укажите чат, созданный из ранее настроенного действия [dw]Создать групповой чат[/dw][di]Действие создаёт групповой чат и добавляет в него указанных сотрудников.

    Подробнее...[/di]. Для этого в форме «Вставка значения» в дополнительных результатах выберите «ID чата»;
  • Добавить участников – перечислите пользователей и группы пользователей, которые должны быть добавлены;
  • Показать историю диалога – если выбрать «Да», добавленные участники увидят все предыдущие сообщения.

  Пример настройки:



Запись в отчет

Действие позволяет добавлять в [dwi include_bp_log]журнал[/dwi] выполнения бизнес-процесса (лог) произвольные записи и формировать отчеты. Запись в отчет удобно использовать, например, во время отладки бизнес-процесса, сохраняя в отчет данные на нужном этапе.

  Описание параметров


  • Текст – укажите произвольный текст отчета. Обязательный параметр. В тексте доступно форматирование с использованием тегов [ds]bb-code[/ds][di]BBCode — язык разметки, используемый для форматирования сообщений.

    Подробнее на Википедии[/di]: [url], [b], [i], [s], [u] и т.д. (будет ли работать тот или иной тег зависит от [dw]действия[/dw][di]Например, тег [color] изменит цвет текста если вывести отчет в ленту Новостей, но не сработает в сообщении соц. сети.[/di], которым будет выводиться отчет). Обратите внимание, что форматирование bb-code не работает для записей в логе;
  • Загрузить отчет для доступа из бизнес-процесса – опция позволяет получить содержимое всех отчетов, сформированных на текущий момент, в рамках бизнес-процесса для его дальнейшего использования в шаблоне (например, отправить такой отчет можно по почте или в уведомлении). Отчет доступен через форму [dwi include_bp_insert_value_form]«Вставка значения»[/dwi] (секция Дополнительные результаты). При отключенной опции информация записывается только в журнал выполнения бизнес-процесса (лог).

  Пример настройки:

  Дополнительные результаты

Результаты выполнения действия Запись в отчет можно получить с помощью формы «Вставка значения» – Дополнительные результаты, в которой они становятся доступны сразу после добавления действия в шаблон.

Доступно:

  • Отчет.

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

Внимание: Переменная Отчет будет пустой, если опция Загрузить отчет для доступа из бизнес-процесса не была отмечена.

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


  Пример

Для лучшего понимания как работает опция Загрузить отчет для доступа из бизнес-процесса рассмотрим очень простой пример. Создадим тестовый шаблон с тремя действиями Запись в отчет и одним уведомлением [dwi include_bp_message]Сообщение соц.сети[/dwi]:

Параметры действий заполнены таким образом:

Запись в отчет 1
Запись в отчет 2
Запись в отчет 3

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

Сообщение соц. сети

В результате запуска БП сформируется такое уведомление:

Как видно на скриншоте, сообщение содержит все три записи с указанием даты и времени.

В журнале (логе) бизнес-процесса каждый отчет будет записан отдельной строкой:

Примечание: Если в примере выше опцию загрузки отчета включить для Записи в отчет 2 и в сообщении добавить отчет этого действия, то получим данные по двум записям: первой и второй. Третьей записи в сообщении с отчетом не будет. А вот в логе отобразятся все три записи.


Изменение глобальных переменных

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

Подробнее...[/di]. Доступно с версии 21.500.0 модуля Бизнес-процессы и версии 21.300.0 модуля Дизайнер бизнес-процессов.


Описание Параметров

Примечание: Действие аналогично действию [dwi include_bp_change_variables]Изменение переменных[/dwi]. Все нюансы и особенности описанные для него, актуальны и для действия Изменение глобальных переменных.

В выпадающем списке выбирается глобальная переменная и устанавливается необходимое значение. Значение указывается вручную или с помощью формы [dwi include_bp_insert_value_form]«Вставка значения»[/dwi].

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



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

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

Подробнее...[/di], заданных в настройках шаблона.

  Описание Параметров

В выпадающем списке выбирается переменная и устанавливается необходимое значение. Значение указывается вручную или с помощью формы [dwi include_bp_insert_value_form]«Вставка значения»[/dwi].

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

Вид строк для изменения переменных меняется в зависимости от типа переменной (например для типов [dw]Список[/dw][di][/di], [dw]Привязка к сотруднику[/dw][di][/di] и др.).

  Множественные переменные

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

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

Другой вариант – перечисление нескольких значений через запятую в одном поле. Встречается, например, для типов Пользователь и Привязка к сотруднику:

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

  Особенности

При подстановке значений через форму «Вставка значения» следует учитывать, что для некоторых типов переменных важен тип данных, которые переменная ожидает получить. Иначе выполнить подстановку может не получится.

Установку значения в таких случаях следует использовать с применением функций из [dwi include_bp_calculator]калькулятора выражений[/dwi] для преобразования данных.

Приведем простой пример. Пусть создана переменная типа Список с числовыми вариантами: 1, 2, 3, 4, 5.

Для установки значения 4 применим функцию intval для преобразования в целое число:



Исходящий Вебхук

Действие передаёт информацию в другие системы с помощью [dw]Вебхука[/dw][di]WebHook — упрощенный вариант rest-событий и rest-команд, без написания приложения. Для коробочных версий доступен только при наличии модуля Rest.[/di]. Действие не возвращает никаких данных, оно только отправляет запрос.


Параметры действия

  • Хендлер — URL, который нужно использовать при отправке данных из Битрикс24.

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

Описание методов работы смотрите в Документация REST API

Ожидание рабочего дня сотрудника

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

Подробнее на helpdesk.bitrix24.ru.[/di] указанного сотрудника.

Действие доступно с версии 22.400.0 модуля Бизнес-процессы.


  Описание параметров

  • Сотрудник – укажите сотрудника, чей рабочий день будет ожидать бизнес-процесс. Бизнес-процесс возобновит работу как только указанный сотрудник начнет или продолжит рабочий день.

  Пример настройки

В шаблоне бизнес-процесса сделок в параметре действия указан Ответственный с помощью формы [dwi include_bp_insert_value_form]«Вставка значения»[/dwi].

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

В [dwi include_bp_log]журнал[/dwi] бизнес-процесса действие добавляет запись о паузе:

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



Пауза в выполнении

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

  Описание Параметров

Режим:

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

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

  • Время – указывается конкретное время возобновления бизнес-процесса.

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

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

Сохранять в журнал Бизнес-процесса информацию о паузах – при включенном параметре информация о паузе будет записываться в статус БП. Параметр доступен с версии 20.200.0 модуля Бизнес-процессы.


  Особенность работы бизнес-процесса после паузы

Бизнес-процесс после паузы работает на агентах, без контекста пользователя. Поэтому если в шаблоне используется Пауза в выполнении, а после паузы вывод даты и времени каким-либо действием (например, в уведомлении), то дата будет выведена в часовом поясе сервера. Во избежание этого, используйте время пользователя. Например, с помощью [dwi include_bp_modification]модификатора[/dwi] responsible выводится время в часовом поясе Ответственного.

  Пример

Простой пример заполнения:

Для указания даты также можно использовать форму [dwi include_bp_insert_value_form]«Вставка значения»[/dwi] и функции [dwi include_bp_calculator]калькулятора выражений[/dwi]. Например, поставим паузу так, чтобы процесс возобновлялся за 3 дня до указанной в поле сделки даты:

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

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


Пауза робота

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

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

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

  Описание параметров

  • Режим:
    • Промежуток – указывается промежуток времени, через который продолжится выполнение бизнес-процесса.

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

    • Время – указывается конкретное время возобновления бизнес-процесса.

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

  • Сотрудник – укажите сотрудника, чей рабочий день будет ожидать бизнес-процесс. Бизнес-процесс возобновит работу как только указанный сотрудник начнет или продолжит рабочий день.

  Пример настройки

В шаблоне бизнес-процесса сделок в параметрах действия задана пауза на 10 минут и указан Ответственный с помощью формы [dwi include_bp_insert_value_form]«Вставка значения»[/dwi].

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

В [dwi include_bp_log]журнал[/dwi] бизнес-процесса действие сначала добавляет запись о паузе, а по окончании паузы – запись об ожидании рабочего дня сотрудника:

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



Получить информацию о сотруднике

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

  Описание параметров


  • Сотрудник – укажите пользователя, информацию о котором требуется получить.

Например:

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

  Подробнее о дополнительных результатах

Бо́льшая часть доп. результатов – это информация из [dw]карточки пользователя[/dw][di]Управление учетными записями пользователей в системе выполняется на странице Список пользователей (Настройки > Пользователи > Список пользователей).

Подробнее в курсе Администратор. Базовый.[/di]. Ниже приведен полный список дополнительных результатов (для некоторых из них даны пояснения во всплывающей информации):

  • [dw]Активен[/dw][di]Информация об активности учетной записи пользователя
    в формате Y/N.
    [/di]
  • E-mail
  • Рабочий телефон
  • Мобильный телефон
  • Внутренний телефон
  • Логин
  • Фамилия
  • Имя
  • Отчество
  • Должность
  • Дата рождения
  • Сайт
  • Город
  • Skype
  • Twitter
  • Facebook*
  • LinkedIn
  • Xing
  • Другие сайты
  • [dw]Отсутствует (по графику отсутствий)[/dw][di]Возвращает факт отсутствия в формате Y/N (Да/Нет). Информация берется из графика отсутствий. Например, если пользователь в отпуске, то результатом будет Y (Да).[/di]
  • [dw]Статус рабочего дня[/dw][di]Возвращает статус рабочего дня:
    CLOSED – закрыт;
    OPENED – открыт;
    PAUSED – пауза. [/di]
  • [dw]Подразделение (список ID)[/dw][di]Возвращает список идентификаторов ID всех подразделений,
    в которых состоит пользователь. Например в виде: 2, 3.

    Подразделения являются разделами инфоблока. Подробнее
    в уроке Структура компании курса Администратор сервиса
    Битрикс24 (коробочная версия).[/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-кода. Триггер переместит сделку на эту стадию, если клиент подтвердит участие в мероприятии.

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



    Создать групповой чат

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


      Описание параметров


    • Название чата – укажите, как будет называть создаваемый групповой чат;
    • Участники – добавьте не меньше двух участников: пользователей и группы пользователей.

      Пример настройки:

    В результате в секции «Дополнительные результаты» формы «Вставка значения» станет доступен ID чата.

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

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

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



    Установка прав

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


    Примечание. Действие отсутствует в бизнес-процессах Диска и CRM.

    Описание Параметров

    • Право на операцию "..." имеют – [dw]установка прав документа[/dw][di]Примечание: Для разных типов документов существуют разные типы прав.[/di] для указанных пользователей/групп пользователей.
    • Текущие права документа – выберите, что сделать с текущими правами документа:
      • Оставить – оставить без изменений;
      • Перезаписать – позволяет не добавлять права, а производить их замену;
      • Очистить – очистить права полностью.
    • Область применения очистки и перезаписи – выберите область применения для очистки или перезаписи прав:
      • Права, установленные текущим бизнес-процессом (т.е. производится работа только с правами, которые устанавливаются внутри бизнес-процесса);
      • Все права документа.

    Пример заполнения параметров действия

    Внимание: В случае использования [dwi include_bp_state_driven]бизнес-процесса со статусами[/dwi], переход к другому статусу переписывает права доступа к документу, установленные действием Установка прав в текущем статусе.

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


    Мои действия

    Мои действия позволяют сохранять настроенные действия/конструкции и использовать их повторно.

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

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

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


    Примеры работы с действиями

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

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

    Используем цикл для процесса утверждения документа

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

    Пример упрощен, и описание касается только работы конструкции [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].

    Итоговая схема шаблона бизнес-процесса с Циклом:


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

    Когда нужна дополнительная информация

    Рассмотрим пример создания простого шаблона [dwi include_bp_sequential]последовательного бизнес-процесса[/dwi], в котором у пользователя запрашивается дополнительная информация, и затем она используется для записи в отчет и установку статуса документа.

    Порядок действий:

    • Добавим действие [dw]Запрос дополнительной информации[/dw][di]Действие создает задание, в ходе которого у пользователя запрашивается дополнительная информация необходимая для выполнения бизнес-процесса.
      Подробнее...[/di].
    • Перейдем к форме настройки параметров действия. Заполним обязательные поля и добавим новые с помощью cсылки Добавить поле:
      • [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]. Используем его для выбора начальника, который утверждает документ. Если начальник находится в отпуске, то выбирается вышестоящий начальник и так далее. Когда действие, таким образом, дойдет до генерального директора, или начальник не выбран вообще (в случае отсутствия всего начальства), то назначается заместитель начальника.

    Порядок действий

    • Создадим новый шаблон, а в нем 2 переменные типа Пользователь:
      • переменная Начальник, которая меняется по ходу процесса;
      • переменная Заместитель, которая практически постоянна, и меняется вручную в случае ухода в отпуск заместителя. Укажем для нее сотрудника по умолчанию, который утвердит документ в случае отсутствия начальства.
    • Первым добавим действие Выбор сотрудника. В параметрах [dw]укажем[/dw][di][/di], что производим выбор непосредственного начальника для Автора с пропуском отсутствующих.
    • Добавим действие [dwi include_bp_change_variables]Изменение переменных[/dwi]. В параметрах [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. Как только любой пользователь из указанных утвердит документ, а в нашем случае согласится взять на себя работу, то голосование прекратится.
      • Ожидать, чтобы проголосовали все указанные сотрудники - укажем Да, таким образом, цикл голосования повториться только после того, как все проголосуют.
    • После того, как сотрудник утвердил документ, ему поставлена Задача. Сотрудника, утвердившего документ, возможно указать используя Дополнительные результаты предыдущего действия с помощью формы Вставка значения.
    • Действие [dwi include_bp_change_variables]Изменение переменных[/dwi] используется только для того, чтобы контролировать выход из цикла.

    Шаблон полученного процесса:


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

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

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

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

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

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

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

    1. Создайте новый процесс с названием Уведомления в Процессах ленты новостей. Добавьте для процесса новый шаблон последовательного бизнес-процесса и действие [dwi include_bp_message]Сообщение соц. сети[/dwi]. В действии заполните параметры следующим образом:
      • Замените заголовок на свой вариант;
      • Добавьте комментарий;
      • В качестве отправителя укажите Автора, а получателем – группу Администраторы. Добавьте группу через раздел "Категории пользователей" в форме Вставка значения;
      • Напишите текст и отформатируйте его при помощи bb-code, чтобы получился такой результат:

        где текст синим цветом – это ссылка на урок Общие моменты.
      Решение

    2. Вы уже имеете достаточно навыков работы с бизнес-процессами, поэтому в следующих заданиях не будет пошаговых инструкций. Выбирайте сами, какой текст указывать, какие действия добавлять и какие параметры заполнять. Главное – выполнение бизнес-процессом поставленной задачи. Примеры учебные, простые и непохожи на реальные задачи. Реальные задачи требуют построения сложных процессов и учета большого количества нюансов.
    3. Создайте ещё один новый шаблон последовательного БП (в процессе из первого задания или в любом удобном вам месте). Добавьте и настройте нужные действия так, чтобы бизнес процесс выполнял следующую задачу:
      • Запрашивал информацию у Администраторов, надо ли создавать задачу. Получал ответ Да/Нет, а также пользователя, который будет Ответственным за задачу;
      • В случае, если указано Да, должна быть создана важная задача на указанного пользователя и отправлено уведомление этому пользователю о создании задачи;
      • В случае, если указано Нет, должно быть отправлено уведомление пользователю, запустившему БП, что задачу создавать не нужно;
      Меняйте заголовки действий и добавляйте комментарии, где вам кажется необходимо, для лучшей читаемости шаблона.

      Решение

    4. Для выполнения этого задания предварительно привяжите к одной Сделке несколько Контактов.
      Теперь с помощью бизнес-процессов реализуйте массовое изменение поля Тип контакта для всех привязанных к Сделке контактов. Указанное поле Контактов должно измениться по запуску БП из Сделки. Новое значение для поля указывает пользователь при ручном запуске БП.

      [dw]Нужна подсказка![/dw][di]1. Для реализации такого сценария понадобится создать два шаблона: один для Контактов и один для Сделки.
      2. Вам пригодятся такие действия, как Итератор и Запуск бизнес-процесса.
      3. Список всех привязанных к сделке Контактов хранится в поле документа Контакты.[/di]

      Решение

    Где выполнять задания?

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

    Подробнее...[/di]. Демоверсия работает 30 дней.

    Самый простой способ – это подготовить демоверсию с помощью виртуальной машины. Подробная информация об установке представлена в уроке Где практиковаться и выполнять задания.

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



    Распространенные ошибки при работе с бизнес-процессами

    Постараемся не делать ошибок

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

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

      Распространенные ошибки

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

    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 В бизнес-процессах, запускаемых на изменение, не стоит использовать действия с паузами или ожиданием.
    Верно
    Неверно


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

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

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

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

    1 При создании бизнес-процесса в настройках действий для выбора доступен любой пользователь.
    Верно
    Неверно
    2 Число одновременно запущенных бизнес-процессов над документом и время ожидания для действий значительно влияют на нагрузку сервера.
    Верно
    Неверно
    3 Доступны два типа бизнес-процессов: последовательный и параллельный.
    Верно
    Неверно
    4 В бизнес-процессе со статусами для каждого статуса выполняется последовательный подпроцесс.
    Верно
    Неверно
    5 Типовые шаблоны бизнес-процессов установлены автоматически и менять их запрещено.
    Верно
    Неверно
    6 Запуск бизнес-процесса всегда выполняется вручную, когда это необходимо.
    Верно
    Неверно
    7 Создание и редактирование шаблона бизнес-процесса выполняется с помощью инструмента Визуальный конструктор.
    Верно
    Неверно
    8 С помощью формы Вставка значения можно указать собственный текст в параметрах действий или шаблона бизнес-процесса.
    Верно
    Неверно
    9 В параметрах действий доступно использование специальных функций и операторов для вычисления выражений.
    Верно
    Неверно
    10 Переменные используется в конкретном процессе, а константы попадают сразу во все процессы.
    Верно
    Неверно
    11 Можно перенести шаблон бизнес-процесса с одного проекта на другой.
    Верно
    Неверно



    Каталог примеров

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

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

    Список шаблонов для импорта

    Список шаблонов

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

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

    • Шаблон бизнес-процесса со статусами по созданию счета для клиента в CRM. Бизнес-процесс включает в работу многих сотрудников компании по формированию счета клиента. Пример включает в себя также настройку полей в CRM и работу с пользовательскими полями.
        Прочитать урок /   Скачать шаблон

    • Шаблон бизнес-процесса для последовательного создания задач. Задачи должны создаваться одна за другой, при том что каждая последующая задача должна создаваться только после того, как предыдущий пользователь закончит выполнение своей задачи. Бизнес-процесс включает работу с действием PHP код.
        Прочитать статью на helpdesk.bitrix24.ru /   Скачать шаблон

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

    • Шаблон измененного бизнес-процесса Заявление на отпуск. Усложнение заключается в том, что в процесс добавляются 2 периода, во время которых сотрудникам нельзя уходить в отпуск. Если выбранный период пересекается с запрещенным, то процесс автоматически отклоняет заявку.
        Прочитать урок /   Скачать шаблон

    • Шаблон измененного бизнес-процесса Исходящие документы. В типовой бизнес-процесс добавляется цикл проверки и утверждения исходящего документа.
        Прочитать урок /   Скачать шаблон

    • Шаблон бизнес-процесса для подачи заявки на отпуск. В отличии от типового процесса, работа данного базируется на Универсальных списках.
        Прочитать урок /   Скачать шаблон

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

    Рассмотрим работу с бизнес-процессами на примере создания новости контент-менеджером и утверждение ее администратором информационного портала.

      Администратор

    Действия для пользователей группы "Администраторы"


    • Включить в группу Контент-менеджеры желаемых пользователей;
    • [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_printable}, {=Template:Purpose} (значения в фигурных скобках могут быть выбраны с помощью кнопки );
      • в поле Описание задания введите текст:
        Необходимо согласовать подотчетные деньги
        Сотрудник: {=Template:TargetUser_printable}
        Сумма: {=Template:Summ}
        Цель: {=Template:Purpose}
        Описание:
        {=Template:Purpose_text};
      • в поле Устанавливать текст статуса - значение Да;
      • в поле Текст статуса измените значение на: этап 1;
      • в поле Период утверждения введите значение 5 и выберите в выпадающем списке значение дней (в этом случае если в течение 5 дней документ не будет согласован, то он будет автоматически отвергнут).

    • Сохраните внесенные изменения.

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

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

    В случае, если первый этап согласования не будет пройден (т.е. документ будет отвергнут), выполнение БП пойдет по ветке, обозначенной словом Нет.

    • Разместите в этой ветке действие Сообщение соц.сети с сообщением для подотчетного лица об отклонении.
      • При заполнении поля Отправитель сообщения нажмите на кнопку рядом с полем ввода и на закладке Дополнительные результаты открывшегося диалогового окна выберем подпункт Последний голосовавший пункта Утверждение начальником отдела. Таким образом сообщение будет отправлено от имени того пользователя, который отклонил согласование подотчетных денег.
      • В качестве получателя сообщения укажите подотчетное лицо, т.е. значение {=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];
    • Создадим простой [dwi include_bp_sequential]последовательный шаблон[/dwi] бизнес-процесса (в списке выбираем Действия > Настроить бизнес-процессы), который будет запускаться при создании элемента списка.

      • Добавим действие [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] типа привязка к сотруднику. Поле множественное не отмечаем;
    • Создадим простой[dwi include_bp_sequential]последовательный шаблон[/dwi] бизнес-процесса, который будет запускаться при создании элемента списка.
      • В параметрах шаблона создадим не множественную [dw]переменную[/dw][di]Переменные используются для временного хранения данных, необходимых для выполняемого процесса. Значения переменных хранятся до тех пор, пока выполняется бизнес-процесс. После его завершения они все стираются.
        Подробнее...[/di] с названием [dw]Пользователи[/dw][di][/di] (v_user) типа Привязка к сотруднику;
      • Добавим действие [dwi include_bp_change_variables]Изменение переменных[/dwi], в котором [dw]передадим[/dw][di][/di] значение поля элемента списка Пользователи в переменную Пользователи (v_user);
      • Добавим действие [dw]Уведомление пользователя[/dw][di]Действие позволяет отправлять сообщения на сайт /XMPP/e-mail
        Подробнее...[/di], в котором в качестве получателя сообщения укажем Автора, а в качестве отправителя - пользователя из переменной [dw]Пользователи[/dw][di][/di](v_user) {=Variable:v_user}.

    В результате получится такой простой шаблон:


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

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

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

    Важно! Бизнес процесс выполняется на [dw]хитах[/dw][di] Под термином хит понимается одна загрузка страницы. Переход по ссылке на сайте и загрузка страницы приводит к генерации хита. Перезагрузка страницы с помощью F5 или Ctrl+F5 генерирует хит. Обращение к несуществующей странице (404 ошибка) также генерирует хит.
    Подробнее...[/di], поэтому для точности выполнения процесса по времени на портале обязательно должны быть хиты.

    Пример посмотрим на базе списков (Сервисы > Списки) для одного единственного пользователя:

    • Создадим простой [dwi include_bp_sequential]последовательный шаблон[/dwi] бизнес-процесса (в списке выбираем Действия > Настроить бизнес-процессы), который будет запускаться при создании элемента списка;
    • В Параметрах шаблона создадим первую [dw]переменную[/dw][di]Переменные используются для временного хранения данных, необходимых для выполняемого процесса. Значения переменных хранятся до тех пор, пока выполняется бизнес-процесс. После его завершения они все стираются.
      Подробнее...[/di] с названием Окно утверждения (идентификатор укажем date) типа число. В поле Значение по умолчанию укажем [dw]количество минут[/dw][di][/di] (в нашем случае 10) на утверждение документа;
    • Там же создадим вторую переменную [dw]Вычисленная дата[/dw][di][/di] (название идентификатора c_date) типа Дата/Время. В эту переменную будет сохранена крайняя дата/время, относительно даты создания документа. После этого срока считается, что утверждение документа выполнено не вовремя;
    • Добавим первое действие [dwi include_bp_change_variables]Изменение переменных[/dwi], в котором для переменной Вычисленная дата произведем расчет крайней даты/времени по [dwi include_bp_calculator]формуле[/dwi]:
      =dateadd({=Document:DATE_CREATE}, {=Variable:date_printable} & "minutes")

      Подробнее про dateadd

    • Следующим добавим действие [dw]Утверждение документа[/dw][di]Действие позволяет произвести утверждение документа, для которого запущен бизнес-процесс.
      Подробнее...[/di]. В поле Утверждают сотрудники укажем [dw]Автор[/dw][di]В нашем простом примере автор-создатель элемента списка и будет утверждать документ.[/di];
    • После утверждения документа добавим конструкцию [dwi include_bp_if]Условие[/dwi]:

      • Левую ветку условия мы настроим так, чтобы значение переменной Вычисленная дата было больше чем {=System:Now};
      • Подробнее про {=System:Now}

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

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

    В результате получится такая схема шаблона:

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


    Установка времени клиента в документе CRM

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

      О примере

    Задача: Имеется шаблон документа CRM. В документе, создаваемом по этому шаблону, требуется указание даты и времени создания документа с учетом местного часового пояса (отличается от времени на сервере).

    Посмотрим простой пример, как указать местное время. Использовать будем действие [dw]Создание документа CRM[/dw][di]Действие создаёт документ CRM.

    Подробнее...[/di] в бизнес-процессах Сделок и значение {=System:NowLocal} (текущая дата со временем клиента с учётом часового пояса).

    Темы, которые затрагиваются в примере (без знания этих тем пример может быть непонятен):

    Примечание: На время также влияют настройки [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], чтобы наши настройки отображались для всех пользователей.

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

    Перейдем опять к настройке списка на закладку Доступ и укажем права доступа [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] нужные поля в карточке заявки. Заполним [dw]форму[/dw][di][/di].
      • Статус закупки – указываем на согласовании. Это поможет избежать ошибки, если сотрудник при заполнении заявки укажет иной статус.
      • Инициатор – с помощью формы «Вставка значения» в секции «Пользователи» выберем Автор.
      • Непосредственный руководитель – с помощью формы «Вставка значения» в секции «Дополнительные результаты» выберем результат [dw]Выбранный сотрудник[/dw][di] [/di] действия Выбор начальника.
      • Для полей Главный бухгалтер и Финансовый директор с помощью формы «Вставка значения» укажем соответствующие им переменные.
    • Добавим действие [dwi include_bp_message]Сообщение соц.сети[/dwi], которое будет отправлять уведомление сотруднику, ответственному за сервис заявок о том, что создана новая заявка. Также в сообщении будут указаны значения всех полей заявки.

    В итоге получим такую схему шаблона бизнес-процесса:

      БП для изменения заявки на закупку

    Сначала настроим параметры шаблона:

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

    Теперь перейдем к созданию шаблона бизнес-процесса:

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

    • Добавим конструкцию [dwi include_bp_if]Условие[/dwi] и создадим 3 ветки условия: Одобрена, На согласовании, Отклонена. Это позволит отправлять автору разные сообщения о статусе его заявки;
    • Настроим условие [dw]Одобрена[/dw][di][/di]. Для этого в поле Поле документа укажем, что условие будет выполняться, если статус закупки будет равен одобрена;
    • Аналогичным образом настроим условия для остальных вариантов статуса закупки;
    • Добавим действие «Сообщение соц.сети» в ветки условий Одобрена и Отклонена. Так мы будем оповещать автора о том, что заявка на закупку после ее изменения перешла в эти статусы.

    • Настроим действие «Сообщение соц.сети» для ветки условия Одобрена:

    • Аналогично настроим действие и для ветки условия Отклонена, изменив лишь часть текста сообщения.

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



    Пример бизнес-процесса со статусами по созданию счета для клиента в CRM

    Рассмотрим пример бизнес-процесса со статусами по созданию счета для клиента в CRM согласно техническому заданию (ТЗ).
      Готовый шаблон примера для ознакомления: Скачать. После загрузки шаблона, импортируйте его на вашу установку «Битрикс24».

    Техническое задание

    Постановка технического задания

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

    Примечание. В примере подразумевается, что составитель бизнес-процесса знаком с CRM и бизнес-процессами со статусами.

    ТЗ по созданию счета для клиента на корпоративном портале:

    1. Менеджер по продажам начинает бизнес-процесс и заполняет поля:

      • Название сделки,
      • Менеджер по продажам,
      • Менеджер по закупкам,
      • Клиент (название),
      • Сумма сделки,
      • Адрес доставки.
    2. Менеджер по закупкам продолжает процесс и заполняет поля:

      • Поставщик (название),
      • Поставщик (контактное лицо),
      • Сумма закупки,
      • Срок поставки от поставщика,
      • Вес отправления,
      • Объем отправления,
      • Адрес отгрузки,
      • Счет от поставщика, опционально (номер и вложение),
      • Договор от поставщика, опционально (номер и вложение).
    3. Менеджер по продажам изучает ответ от менеджера по закупкам.

      Выставление срока поставки для клиента. Сверяются сроки поставки, если срок поставки до клиента равен или > срока поставки до поставщика +5 дней, процесс продолжается, иначе менеджер должен исправить срок или подтвердить верность и оставить комментарий с объяснением сроков поставки (комментарий обязателен). Заполняются следующие поля:

      • Срок поставки до клиента.
    4. Юрист изучает договор вложенный менеджером по закупке (в случае его наличия) и создает договор для клиента. Заполняются следующие поля:

      • Договор для клиента (номер и вложение),
      • Договор от поставщика, опционально (номер и вложение).
    5. Процесс переходит менеджеру по продажам, согласование договора. Заполняются следующие поля:

      • Договор для клиента (номер и вложение).
    6. Процесс переходит менеджеру по закупкам, согласование договора. Заполняются следующие поля:

      • Договор для клиента (номер и вложение).
    7. Процесс переходит в бухгалтерию — создание и прикрепление счета для клиента. Заполняются следующие поля:

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

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

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

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

    Настройки CRM

    Сначала выполним настройки в CRM.

      Нюансы шаблона при импорте

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

    • Шаблон бизнес-процесса со статусами;
    • Пользовательские поля сделок.

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

    У полей типа Привязка к элементам CRM потребуется изменить настройку [dw]Доступная сущность[/dw][di]После импорта шаблона эта настройка сбрасывается к варианту по умолчанию (Лид).[/di]. Для правильной работы бизнес-процесса внесите изменения в поля:

    • Поставщик (название) - отметьте доступной сущностью [dw]Компанию[/dw][di][/di];
    • Поставщик (контактное лицо) - отметьте доступной сущностью [dw]Контакт[/dw][di][/di].

      Пользовательские поля

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

    Подробнее на helpdesk.bitrix24.ru.[/di]. Поэтому первым делом мы создадим и настроим пользовательские поля для карточки сделки согласно ТЗ (CRM > Настройки > Настройки CRM > Настройки форм и отчетов > Пользовательские поля > Сделка > Список полей).

    Помогут в этом материалы из статей поддержки24:

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

    Результат настройки пользовательских полей в CRM

    Обязательным будет всего 1 поле: Адрес доставки (помимо стандартного названия сделки). Его нужно будет сразу при создании сделки. Остальные поля буду заполнены автоматически или при выполнении заданий разными участниками процесса.

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

      Настраиваем права доступа

    Чтобы все участники могли работать с процессом, в соответствии с ТЗ, важно корректно настроить права доступа. Делается это на странице Права доступа по пути CRM > Настройки > Права доступа > CRM)

    Для удобства тестирования бизнес-процесса в нашем примере используем только группу Моя компания: Сотрудники. Это позволит выбирать любого сотрудника компании при создании нового шаблона.

    Внимание! В описании и шаблоне-примере для всех сотрудников в процессе задан по умолчанию сотрудник с идентификатором 1 (Администратор портала). Это позволит сразу ознакомиться со всем процессом и проверить его работу, не создавая и не настраивая других пользователей.

      Настройка карточки сделки

    Осталось настроить карточку Сделки, добавив в неё созданные пользовательские поля. Перейдем в список сделок (CRM > Сделки), создадим новую и произведем настройку карточки согласно ТЗ.

    Помогут в этом материалы из статей поддержки24:

    Результат настройки карточки скрыт под спойлером:

    Как выглядит итоговая карточка сделки


    Создание бизнес-процесса

    Создадим новый шаблон бизнес-процесса со статусами для сделки (CRM > Настройки > Роботы и бизнес-процессы > Бизнес-процессы) и настроим его параметры.

      Начальные настройки


    • Укажем в параметрах шаблона, что процесс будет автоматически запускаться при добавлении новой сделки.
    • Создадим новые [dw]переменные[/dw][di]Эти переменные будут использоваться для автоматического внесения требуемых сотрудников в карточку сделки, а так же позволят заменять сразу по всему бизнес-процессу отсутствующих сотрудников, например, ушедшего в отпуск юриста.[/di] типа [dw]Привязка к пользователю[/dw][di][/di]:
      • Менеджер по продажам (*),
      • Менеджер по закупкам (*),
      • Юрист (*),
      • Бухгалтер (*),
      • Логист (*),
      • Помощник руководителя (*).

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

    В результате получим список переменных:

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

    Остальные переменные будут созданы далее, по мере необходимости. Но некоторые особенности отметим заранее:

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

      Подробнее...[/di];
    • Названия этих переменных пронумерованы согласно этапу, на котором в них заносятся значения.
    Примечание. При импорте готового шаблона все необходимые переменные уже будут созданы.

      Шаблон БП

    Шаблон бизнес-процесса состоит из 11 статусов, выполняющихся [dw]последовательно[/dw][di]Небольшие исключения есть для статусов Этап 1 и Этап 3а. Подробности в следующем табе урока.[/di]. Первый статус – начальный, остальные названы по номерам этапов.

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

    • Начальный статус
    • Этап 1 – Менеджер по продажам;
    • Этап 2 – Менеджер по закупкам;
    • Этап 3 – Менеджер по продажам;
    • Этап 3а – Комментарий относительно сроков доставки;
    • Этап 4 – Юрист;
    • Этап 5 – Менеджер по продажам;
    • Этап 6 – Менеджер по закупкам;
    • Этап 7 – Бухгалтерия;
    • Этап 8 – Помощник руководителя;
    • Этап 9 – Менеджер по продажам.

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

    Примечание. При импорте готового шаблона все необходимые статусы с подпроцессами уже будут созданы.

      Описание статусов

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

    Начальный статус

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

    • Сначала проверяется, указаны ли требуемые ответственные сотрудники в полях сделки;
    • Если поле пустое, то автоматически в него записывается пользователь из соответствующей переменной (Менеджер по продажам (*), Менеджер по закупкам (*) и т.д.).
    Таким образом статус [dw]автоматизирует[/dw][di]Например, если Юрист в сделке тот же, что и всегда, то менеджеру не нужно будет заполнять это поле в форме сделки. Оно будет заполнено автоматически из бизнес-процесса. Если же Юрист должен отличаться от заданного по умолчанию, то менеджер вручную заполняет соответствующее поле, и тогда автоматической записи из переменной происходить не будет.[/di] заполнение формы.

    Далее выполняется переход к следующему статусу.

    Этап 1 – Менеджер по продажам

    Этап проходит по следующему алгоритму:

    1. Проверяется заполнение требуемых от менеджера по продажам полей «Клиент» и «Сумма» в карточке сделки:
      • Менеджер проверяет и заполняет поля, после чего нажимает кнопку Продолжить;
      • Если поле осталось не заполненным, то задание вновь возвращается менеджеру (к началу этапа).
    2. Как только перечисленные поля будут заполнены, меняется стадия сделки и выполняется переход ко второму этапу.

    Этап 2 – Менеджер по закупкам

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

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

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

    Рассмотрим эти ссылки поподробнее

    Этап 3 – Менеджер по продажам

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

    Этап 3а – Комментарий относительно сроков доставки

    Этап 3а – промежуточный. На нем сверяются срок поставки от поставщика и срок поставки клиенту. Если разница между ними равна или больше срока поставки поставщика +5 дней, то процесс переходит на следующий этап 4. Иначе менеджеру по продажам выставляется задание действием [ds]Запрос доп. информации с отклонением[/ds][di]Действие создаст задание, в ходе которого у пользователя (или пользователей) запрашивается дополнительная информация, необходимая для выполнения бизнес-процесса. В отличие от стандартного действия Запрос дополнительной информации , пользователь имеет возможность отклонить ввод информации.

    Подробнее...[/di], в котором он должен проверить указанный срок и выбрать один из вариантов действий:

    • Изменить срок – в этом случае выполнится возврат на 3 этап для указания другого срока;
    • Подтвердить – оставить указанный срок, но в этом случае потребуется добавить причину в поле Комментарий, которая затем будет записана в сделку.

    Проверка осуществляется следующим образом

    Этапы 4 – 8

    Подпроцессы перечисленных статусов аналогичны 3-му этапу. Запрос информации отправляется сотруднику указанному в названии статуса с пояснением его задачи. Этот сотрудник выполняет задание и заполняет поля в соответствии с ТЗ.

    Этап 9 – Менеджер по продажам

    Это финальный статус процесса. В этом статусе собирается вся информация о сделке, полученная за этапы процесса, и менеджер по продажам выносит решение. В зависимости от решения выставляется одна из [ds]финальных[/ds][di]В любую стадию, из тех, что настроены в качестве финальных в воронке продаж. В канбане отображаются внизу при перетаскивании сделки. Подробнее о финальных стадиях рассказывается в статье Поддежки24 на helpdesk.bitrix24.ru.[/di] стадий сделки (кроме варианта «Обработка приостановлена»).



    Добавление информации в инфоблок из бизнес-процесса

    Как добавить информацию из Бизнес-процесса

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

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


    • Для начала создадим в списке дополнительные поля:

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

      Для поля Идентификатор инфоблока зададим значение по умолчанию , чтоб каждый раз не заполнять его при создании нового элемента списка. В примере это будет инфоблок с идентификатором =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}

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

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


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

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

    Пример изменения процесса Выдача наличных

    Модифицируем стандартный бизнес-процесс Выдача наличных.

    Вопрос с форума:
    Здравствуйте) Недавно начали работать в Битрикс, и есть нужда в БП. Но не получается самому все сделать) Нужно усложнить стандартный БП на выдачу наличных таким образом, чтобы была возможность при создании БП указать категорию финансирования из выпадающего списка. Каждой категорией будет заведовать отдельный человек и соответственно утверждать или отклонять заявку. В то же время одной из категорий ведует Руководитель компании, таким образом при оформлении заявки на него приходит запрос на утверждение, если заявка подана на другую категорию – Руководитель должен лишь ознакомиться с заявкой).

      Создание нового поля

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

    Теперь при вызове бизнес-процесса нужно будет сразу указать назначение денег.

      Редактирование шаблона

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

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

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

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


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

    Подробнее ознакомиться с измененным шаблоном можно здесь.



    Пример изменения процесса Заявление на отпуск

    Модифицируем стандартный бизнес-процесс Заявление на отпуск.

    Сообщение от пользователя:
    Здравствуйте. Надеюсь, мое сообщение не останется без внимания. Только недавно изучаю бизнес-процессы, не могу понять. Есть стандартный процесс заявления на отпуск. У нас в компании 2 раза в год проводятся важные мероприятия, во время которых оговорено, что в отпуск никто не уходит. Можно как-то автоматизировать чтобы процесс был недоступен в это время или заявка на отпуск автоматически отклонялась, а то постоянно кто-то забывает? И можно ли как-то в стандартный процесс добавить категорию отпуска – для бухгалтерии это важно. Спасибо

      Создание нового поля

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

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

      Создание констант

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

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

      Редактирование шаблона

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

    Проверку дат осуществим с помощью действия [dwi include_bp_if]Условие[/dwi]. Для ветки условий Нет, настроим зависимость даты отпуска от запрещенных для отпуска периодов. Т.к. выбранные для отпуска даты записываются в поля, то будем использовать тип условия Поле документа. Рассматривать будем следующие варианты:

    • Дата начала отпуска попадает в один из запрещенных периодов.
    • Дата завершения отпуска попадает в один из запрещенных периодов.
    • Сам запрещенный период целиком попадает в даты отпуска.

    Примечание: даты начала и завершения в периоды не объединяются, поэтому каждую из дат нужно отдельно сравнивать с другой. Для объединения условий необходимо использовать логические операторы И/ИЛИ.

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

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

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

      Скачать созданный шаблон бизнес-процесса можно здесь.



    Пример изменения процесса Исходящие документы

    Модифицируем стандартный бизнес-процесс Исходящие документы.

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

      Создание нового поля

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

      Редактирование шаблона

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

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

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

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

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

    В ветке Отказано добавим уведомление автору, что его документу отказано в публикации. Также изменим статус документа.

       Подробнее ознакомиться с созданным шаблоном можно здесь.

    Шаблон бизнес-процесса (для ознакомления)


    Создание задачи с приоритетом с помощью PHP-кода

    Используем PHP-код

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

    Выбирать приоритет задачи будем через действие Запрос дополнительной информации. Приоритет задачи может принимать значения 1 или 2, что соответствует обычному и важному приоритету (подробнее смотрите в описании метода CTasks::Add).

    В задании создадим переменную типа Список. Варианты списка мы обозначим текстом, а значения каждого из вариантов укажем в квадратных скобках:

    Когда пользователю придет задание, он сможет выбрать вариант в понятной ему форме. Значение переменной будет численное, 1 или 2.

    Теперь, когда действие PHP код будет создавать задачу, приоритет задачи будет зависеть от выбранного пользователем варианта. Добавим следующий код в действие:

    {
    	$root = $this->GetRootActivity();
    	$priority_var= $root->GetVariable('priority');
    
    	$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/.

      Настройка шаблона


    • Необходимо проставить свои поля (взамен тех, что будут после импорта шаблона) во всех действиях шаблона (через форму [dwi include_bp_insert_value_form]«Вставка значения»[/dwi]);

      Также замену полей необходимо произвести и в тексте сообщений:

    • Необходимо задать для переменных Директор, Бухгалтер и Ссылка свои Значения по умолчанию.

      Общая схема работы бизнес-процесса


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

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

    • Следующее действие (Роли) производит запись в переменные следующих пользователей:
      • Автор – сотрудник, который создал заявку на отпуск. Указывается с помощью выражения {=Document:CREATED_BY};
      • Начальник – сотрудник, который был выбран предыдущим действием (выбор начальника). Указывается с помощью формы Вставка значения (Дополнительные результаты – Выбор начальника – Выбранный начальник).

    • Далее следует действие по установке прав. В нем для основных сотрудников разрешается доступ на чтение к заявке на отпуск.

    • Следующим идет условие (Выбранный начальник?), по которому, в зависимости от того, какой именно начальник был выбран (действие выбор начальника), будут выполняться различные ветви последовательности действий.

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

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

        В случае одобрения заявки значение переменной Утверждено? будет установлено на да.

        В противном случае в качестве значения переменной Кем отклонено будет установлен сотрудник, отклонивший заявку – Директор.

      • Если условие 1-й ветки не будет выполнено, то тогда будет произведен переход к проверке условия 2-й ветки. Ее выполнение происходит, если значение переменной Начальник равно сотруднику, который был выбран действием выбор начальника.

        Таким образом, происходит проверка, что переменная Начальник не пуста и не равна Директору.

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

        В случае отклонения в качестве значения переменной Кем отклонено будет установлен сотрудник, отклонивший заявку – Начальник.

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

      • 3-я ветка условия будет выполняться в последнюю очередь, при условии, что переменная Начальник будет пуста.

        В этом случае Бухгалтеру и Директору будут отправлены уведомления, после чего заявка будет отправлена на рассмотрение Директору.

    • Следующей конструкцией будет опять условие.

      В этот раз выбор ветки с действиями будет производиться в зависимости от значения переменной Утверждено?, которое по умолчанию равно нет, но может быть изменено на да в ходе выполнения предыдущего условия.

      • В случае если значение переменной Утверждено? равно да, то тогда Бухгалтеру, Начальнику и Автору будут отправлены сообщения, оповещающие о том, что заявка на отпуск была одобрена.

        Затем заявка будет опубликована в списке заявок со статусом "одобрена".

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

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

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



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

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

      Алгоритм работы

    Клиент оставляет на сайте заявку, которая появляется на портале в виде нового лида.

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

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

    По повторному звонку принимается решение о дальнейшем обслуживании лида:

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

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

      Ответственный

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

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

      Уточнение заявки

    ОП звонит клиенту и уточняет данные, необходимые для закупки.

    Примечание:

    1 – содержит подсказки для ОП при звонке клиенту

    2 – единственное обязательное поле – без него выполнение бизнес-процесса не продолжается

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

    Создание напоминания пользователю

      Повторный звонок клиенту

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

    1. Готов сразу и сделка заключается
    2. Не готов, но ему требуется еще время на принятие решения
    3. Клиент не хочет заключать сделку и мы должны либо предоставить ему улучшенные условия сделки, либо указать почему он не хочет ее заключать

    Отработку этой стадии бизнес-процесса можно посмотреть в следующем видео.

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

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

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

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

      В нашем примере используется переменная 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. В этом файле содержится описание, которое необходимо для корректной работы системы. В .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 добавить [dw]строку[/dw][di]Как реализована работа с дополнительными результатами можно посмотреть в файлах активити «Выбор данных CRM» по пути /bitrix/activities/bitrix/crmgetdataentityactivity в файловой структуре.[/di] вида :

    <?
    '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->MapFields) && count($this->MapFields))
    		{
    			$printVal = $this->__get("MapFields");
    			$bFirst = true;
    
    			foreach($printVal as $key => $val)
    			{
    				if ($this->write2file == "Y")
    				{
                            
    					$f = fopen ($_SERVER["DOCUMENT_ROOT"].$this->path2file, "a+");
    					if ($bFirst)
    					fwrite ($f, print_r ("\n\n\n===========================================================\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);
                 
      			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));
      	}
      }

      Языковые сообщения

    Осталось прописать языковые сообщения, которые отобразятся в публичной части. Переходим в папку /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",
    	),
    );
    ?>

    task2activity\properties_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>

    task2activity\task2activity.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;
    	}
    }
    ?>

    task2activity\lang\ru\.description.php

    <?
    $MESS ['BPTA2_DESCR_DESCR'] = "Добавление задачи 2.0";
    $MESS ['BPTA2_DESCR_NAME'] = "Задача 2.0";
    ?>

    task2activity\lang\ru\properties_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'] = "Разрешить ответственному менять сроки";
    ?>

    task2activity\lang\ru\task2activity.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 регистрирует свое действие бизнес-процесса, которое будет отображаться во вкладке дизайнера Действия приложений. При этом для действия необходимо задать:

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

    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:
    • Код указывается без открывающих и закрывающих тегов (<?, ?>).
    • Внимательно следите за типами переменных – приведение типа переменных организуйте в обязательном порядке (в некоторых примерах главы это пропущено для упрощения восприятия).

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

    В следующих уроках рассмотрим примеры использования кода в рамках действия PHP код. С подробным описанием действия и небольшими примерами можно ознакомиться в уроке PHP код.

    Как запустить из одного бизнес процесса другой?

    Запуск одного процесса из другого

    Среди стандартных действий бизнес-процессов есть специальное действие, которое запускает выполнение другого бизнес-процесса — Запустить бизнес-процесс.

    Другой вариант запуска одного БП из другого — воспользоваться универсальным действием выполнения PHP кода и API модуля бизнес-процессов. Рассмотрим пример решения данной задачи на основе запуска бизнес-процесса Двухэтапное утверждение из стандартных шаблонов. Для этого необходимо:

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

      Внимание! Для использования данного действия вы должны быть наделены правами администратора.

    • Откройте диалог настроек параметров действия с помощью иконки и введите код:
      CBPDocument::StartWorkflow(
            6,
            array("bizproc","CIBlockDocument",{=Document:ID}),
            array("Voters"=>array("user_1")),
            $arErrors
      );

      Где:

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

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

      • Второй параметр — это код документа, для которого создается бизнес-процесс. Он задается в виде массива, элементами которого являются соответственно название модуля, класс документа и код документа в модуле.

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

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

        Примечание: если передается значение множественного параметра, то оно должно передаваться в виде массива.

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

    Пример вызова бизнес-процесса для CRM

    Вывод в лог

    Сделаем вывод любых сообщений в лог

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

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

    Есть два варианта решения: просто вывод в лог из действия PHP код или создание собственного действия Запись в лог. Рассмотрим оба варианта.

    PHP код

    Допустим, что при создании бизнес-процесса пользователь вводит текст какой-то заявки, который сохраняется в переменной Text. Чтобы вывести в лог значение этой переменной нужно просто в действии PHP код добавить вызов:

    $rootActivity = $this->GetRootActivity();
    $this->WriteToTrackingService($rootActivity->GetVariable("Text")); 
    
    Или же просто вывести тестовое сообщение:
    $this->WriteToTrackingService("Это тест"); 

    Создание действия

    Создайте недостающие папки относительно корня сайта:

    • bitrix\activities\custom
    • bitrix\activities\custom\logactivity
    • bitrix\activities\custom\logactivity\lang\ru

    В папке /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",
         ),
      );
      ?>

    Создайте файл logactivity\lang\ru\.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,',',' ')." руб\n\n".
       'Средняя цена:'.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-код.

    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 \Bitrix\Crm\Automation\Starter(\CCrmOwnerType::Deal, $id);
    $starter->runOnAdd();
    //end region
    

    После изменения сущности и автозапуска бизнес-процесса нужно выполнить:

    //Region automation
    $starter = new \Bitrix\Crm\Automation\Starter(CCrmOwnerType::Deal, $id);
    $starter->runOnUpdate($currentFields, $previousFields);
    //end region
    

    где:

    • $currentFields – массив текущих значений полей сущности;
    • $previousFields – массив предыдущих значений полей сущности.

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

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

    //Region automation
    $starter = new \Bitrix\Crm\Automation\Starter(CCrmOwnerType::Deal, $id);
    $starter->runOnUpdate(['STAGE_ID' => 'NEXT'], []);
    //end region
    

    API запуска роботов поддерживает работу с контекстом. Можно указать пользователя, от которого будут запускаться роботы и интерфейс (сайт, мобильное приложение, REST, бизнес-процесс, импорт сущностей).

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

    $starter = new Bitrix\Crm\Automation\Starter(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 \Bitrix\Crm\Automation\Starter(\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, а не модулем Бизнес-процессы.
    Верно
    Неверно