Сложность урока:
1 уровень — интуитивно все понятно из интерфейса, но почитать стоит.
1 из 5
Дата изменения:
21.03.2023
Просмотров:
29556
Недоступно в лицензиях:
Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы (Marketplace > Обновление платформы).
Старт, Стандарт, Малый бизнес
Конструкция выполняет свои поддействия до тех пор, пока выполняется заданное условие.
Другими словами цикл работает до тех пор, пока условие истинно (true
), иначе (false
) происходит выход из цикла.
Типы условий цикла
- Смешанное
Тип даёт возможность указать условие одновременно по параметрам, переменным, константам, глобальным константам, глобальным переменным, полям документа и дополнительным результатам без необходимости создавать разные ветки и дополнительные переменные. При это условия объединяются по правилу И / ИЛИ. При выборе И ветка условий будет исполняться при выполнении обоих условий, а при ИЛИ — любого из указанных.
Примечание: В описании к конструкции Условие вы найдете более подробное пояснение об использовании И/ИЛИ.
На скриншоте под номером 1 выбрано условие типа Поле документа, а под номером 2 — Глобальная переменная. Условия объединены правилом И.
- PHP код
В качестве условия указывается
код
Примечание: Задавать PHP-код может только пользователь с правами администратора.
.В случае если указанный PHP код вернет значение
true
, то цикл продолжит работу, если возвратитсяfalse
, то будет произведен выход из цикла. - Значение переменной
Цикл будет продолжать свою работу, пока совпадают параметры, связанные с переменными бизнес-процесса.
Примечание: В этом типе могут быть использованы значения переменных или параметров шаблона. Константы, глобальные константы и глобальные переменные доступны только в типе Смешанное условие.
- Поле документа
Цикл будет продолжать свою работу, пока совпадают параметры, связанные с полями документа.
- Истина
В этом случае цикл будет выполняться всегда
Внимание! Для облачной версии Битрикс24 количество итераций цикла ограничено 1000.
Внимание! НЕ используйте действие Почтовое сообщение при тестировании работы цикла. В облачной версии Битрикс24 в случае некорректной настройки процесс зациклится, почтовое сообщение отработает 1000 раз и клиенту уйдет 1000 писем. Остановить их отправку нельзя.
Сначала убедитесь, что цикл работает правильно, а потом используйте его для отправки писем.
Дополнительно
- Пример использования цикла для утверждения документа
Я думаю, что вы давно уже используете бизнес-процессы для решения многих организационных вопросов вашей компании!
К сожалению, достаточно часто люди используют их неразумно, запуская избыточные процессы. Это приводит к слишком высокой нагрузке на ваш Битрикс24, а значит и работа будет значительно более медленной
Поэтому с 28.05.2017 мы ввели ограничение на количество одновременно запущенных бизнес-процессов — не больше 2 на один документ. Это ограничение будет включено для новых клиентов по умолчанию.
Для наших текущих на момент ввода ограничения клиентов ограничение будет действовать следующим образом:
- для платных тарифов установлен лимит в 20 одновременно запущенных на одном документе процессов. Если он превысится, то мы будем вынуждены ввести искусственное ограничение;
Чтобы подробнее ознакомиться с тарифами и их возможностями, кликните здесь.
- для бесплатной версии ограничение в 2 одновременно запущенных на одном документе процесса.
Обратите внимание: лимит устанавливается относительно вашего текущего тарифа. Т.е. если у вас сейчас ограничение в 2 процесса, а вы планируете перейти на более высокий тариф, то у вас все равно будет ограничение в 2 процесса.
Также важно заметить, что данные ограничения никоим образом не касаются пользователей нашей коробочной версии! Поэтому, если вы хотите сами контролировать работу своего портала и не зависеть от остальных, то возможно она лучше вам подойдет! Чтобы ознакомиться с тарифами на коробочную версию, кликните здесь.
Уверен, что благодаря этим изменениям скорость работы станет еще более высокой и вы забудете про долгие загрузки страниц на вашем портале!
Спасибо, помогло!
Спасибо
Это не то, что я ищу
Написано очень сложно и непонятно
Есть устаревшая информация
Слишком коротко, мне не хватает информации
Мне не нравится, как это работает
Итератор: как работать с множественными переменными в бизнес-процессах
Я долго ждала, и он появился!
Итератор: для чего он нужен, как настраивать и пример использования — всё по ссылке «Подробнее»
Для чего нужен итератор
В Битрикс24 можно создавать множественные поля и переменные.
Всё хорошо, но в бизнес-процессе это поле/переменная представляется как список значений через запятую. Не было простой возможности обработать каждое значение отдельно.
Новое действие в редакторе бизнес-процессов «Итератор» эту проблему решает: он делает последовательный обход элементов множественного поля/переменной.
Как настраивать итератор и пример использования
Пример:
Сделка оплачивается частями в произвольное количество этапов. Платежи фиксируются в множественном поле «Платежи». Нужно автоматом рассчитывать оставшуюся к оплате сумму, как разницу между суммой сделки и суммой платежей, и записывать ее в поле «Осталось оплатить».
Для того, чтобы рассчитать уже оплаченную сумму, нужно последовательно сложить все значения из поля «Платежи».
В настройках итератора можно указать только переменную, поэтому сначала нужно значение поля «Платежи» скопировать в служебную множественную переменную «Платежи»:
Добавляем из категории «Конструкции» новый блок «Итератор» в бизнес-процесс и настраиваем его на работу с переменной «Платежи»:
Итератор сам последовательно пройдет каждое значение переменной и в дополнительные результаты вернет ключ и значение.
Для вычисления и хранения суммы платежей добавляем ещё одну переменную «Сумма платежей» (payment_sum) с типом «Число» и в итераторе к текущему значению суммы платежей прибавляем значение итератора:
Теперь осталось только из суммы сделки вычесть сумму платежей и записать значение в поле «Осталось оплатить»:
В итоге схема бизнес-процесса должна выглядеть так:
Бизнес-процесс настраиваем на автозапуск при создании и изменении сделки.
Тестируем:
45 000 — (5 000 + 6 000 + 10 000) = 24 000
Идеально!
Популярные сообщения
Работа с файлами и папками в бизнес-процессах Битрикс24
Относительно недавно в редакторе бизнес-процессов Битрикс24 появился раздел Диск : И я хочу показать практический пример использования новых действий для работы с файлами и папками
Бизнес-процессы: установка цвета поля в списке
Всем привет! Задача: На портале настроен процесс создания и обработки заявок на ремонт. У каждой заявки есть поле «Статус» , значения которого устанавливаются автоматически бизнес-процессом в ходе обработки заявки. Необходимо для разных статусов устанавливать разные цвета: Специальных средств для решения этой задачи в Битрикс24 нет. Но с помощью бизнес-процесса реализовать установку цвета можно
Рассмотрим, что из себя представляет процесс создания БП «Утверждение заявки по циклу».
Допустим в компании согласование идет следующим образом:
1. Сотрудник подает заявку;
2. Заявка утверждается с руководителем автора заявки (согласно структуре компании). В том случае, если заявку подает главный руководитель (в нашем случае заранее заданный список директоров), то согласование не требуется;
3.1 Заявка подтверждена руководителем (п.2), затем переходит на согласование руководителю руководителя из п.2. И так до тех пор пока не дойдем до директора.;
3.2 Заявка отклонена руководителем (п.2), сотрудник получает сообщение об отказе.
За основу возьмем уже созданный БП «Отгул».
Мы должны добавить еще несколько переменных в процесс: Текущий руководитель и Директор (с привязкой к пользователю), а также Утвержден (тип Да/Нет)
Теперь присваиваем значения переменным Текущий руководитель и Директор.
Здесь поможет модуль «Изменение переменных» из раздела Прочие. Добавляем в наш БП.
Теперь присваиваем значения переменным.
Т.к. после присвоения переменной «Директор» мы указали возможность множественности, то теперь мы можем заполнить всех вышестоящих руководителей согласно структуре нашей компании.
Пропустим момент проверки на должность автора заявки (его мы рассмотрели в БП «Отгул») и перейдем к согласованию заявки у всех руководителей сотрудника (по циклу).
Начинаем с действия «Цикл» из раздела Конструкции.
В настройках указываем параметры, при которых цикл будет выполняться. В данном случае действие должно продолжаться до тех пор, пока мы не дойдем до директора.
Еще нам нужно учесть вариант отклонения заявки руководителем любого уровня, поэтому нам потребуется переменная «Утвержден».
В итоге мы входим в действие цикла тогда, когда на предыдущем этапе утверждения было получено согласие и должность утверждающего руководителя была не директор.
Затем переходим к самому процессу поиска руководителя.
Берем действие «Выбор сотрудника» и «Изменение переменных» из раздела Прочее.
В итоге мы получаем начальника Текущего руководителя (в действии «Выбор сотрудника»;) и это значение передаем в переменную Текущий руководитель (в действии «Изменение переменных»;).
Помните, что в начале БП Текущим руководителем мы выбираем автора заявки.
В итоге Цикл будет представлять из себя следующее:
Обратите внимание на «Утверждение».
Здесь мы использовали конструкцию «Изменение переменных». Параметры в итоге выглядят следующим образом:
Материал составлен на основе статьи создание БП
Для разработки этого бизнес-процесса Вам необходимо заказать нашу услугу Моделирование бизнес-процессов. При оформлении заказа Вам будет необходимо отправить запрос через веб-форму «Задать вопрос» с указанием названия бизнес-процесса на разработку.
Если Вам необходимо изменить существующий бизнес-процесс заполните, пожалуйста, Бриф на разработку бизнес-процессов.
Если у Вас возникли вопросы Вы можете связаться с нами:
- позвонив по телефону +7 (499) 350-31-25или заказав обратный звонок на сайте
- написав на наш электронный адрес order@pinall.ru
- заполнив форму обратной связи «Задать вопрос«
Проблема бизнес-процессов в том, что их логика скрыта от глаз и отлаживать сложные процессы проблематично. С проблемой столкнулся не я сам, а мой коллега, он категорически не мог понять почему итератор помещенный в итератор не возвращает разницы массивов. Все просто: потому, что он возвращает совпадения.
Я быстро накидал пример из двух циклов и булевой переменной, проверил пример и сбросил коллеге. Через какое-то время, он сообщил, что несмотря на то, что пример на PHP работает верно, бизнес-процесс Битрикс не работает.
В представленном ниже примере, я продемонстрировал как работать с итераторами.
Увы, хоть это и хороший (на мой взгляд) пример, представленная блок-схема не будет работать с блоком «Согласование документа».Вы не сможете получить список проголосовавших до тех пор, пока работа в блоке не будет завершена.
Такое поведение блока показалось мне странным и я обратился в поддержку Битрикс, вот их ответ:Лично мне это кажется если не багом, то серьезной недоработкой сильно ограничивающей функционал бизнес-процессов Битрикс24. Надеюсь, что разработчики добавят возможность получать эти данные напрямую из бизнес-процессов.
Сравнение массивов довольно простой алгоритм. Всего-то нужно два цикла и пара ПРАВИЛЬНО РАССТАВЛЕННЫХ условий.
Пройдем от простого: найдем совпадения в двух массивах. В первом цикле перебираем длинный массив, во втором массив покороче.
Внутри второго цикла необходимо создать условие, которое при совпадении значений будет выводить совпавшее значение. Выходит, что несовпавшие элементы просто игнорируются, а мы на выходе получаем все совпадения.
<?php $array_a = [‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ’10’]; $array_b = [‘2’, ‘5’, ‘4’]; foreach ($array_a as $arr_parent => $value_a) { foreach ($array_b as $children => $value_b){ if ($value_b == $value_a){ echo «<br>» . $value_a . » — значение совпало!»; } } } |
Но что будет если мы попытаемся этим же способом вывести не совпавшие значения? Мы получим каждое несовпадение на каждой итерации обоих циклов. Говоря проще, мы берем одно значение цикла «А» исравниваем его со всеми значениями цикла «B». Понятно, что во втором цикла совпасть может только одно значение, все остальные не совпадут и будут напечатаны.
Выходит, нам необходимо каким-то образом сравнить текущее значение первого цикла со всем списком значений и если оно совпадет хотя бы раз, не выводить его. Мы знаем, что можем легко вычислить совпадения и вывести их во втором цикле, следовательно, мы можем в родительском цикле задать проверку на совпадения и если текущее значение ни разу не совпало, выведем его.
Чтобы следить за тем, имеются ли во втором цикле совпадения, мы введем дополнительную переменную, которую будем изменять при совпадении. Далее, мы будем проверять эту переменную.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php $array_a = [‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ’10’,]; $array_b = [‘2’, ‘5’, ‘4’,]; foreach ($array_a as $arr_parent => $value_a) { $controller = false; foreach ($array_b as $children => $value_b){ if ($value_b == $value_a){ $controller = true; echo «<br>» . $value_a . » — значение совпало!»; } } if ($controller == false){ echo «<br>» . $value_a . » — значение не совпало!»; } } |
А вот так выглядит блок-схема бизнес процесса в Битрикс24:
В этом бизнес процессе я попробовал отправлять уведомления только тем пользователям, которые не проголосовали. По умолчанию Битрикс24 позволяет выбрать тех кто проголосовал «За» или «Против». Данную схему можно применять в любых бизнес процессах, в которых вам требуется найти разницу между двумя (массивами данных) множественными переменными.
Для реализации понадобятся три переменные: GROUP
, GROUP_VOTES
, GROUP_RECEPIENTS
и BOOL
.
Присвоим значения переменным.
Переменная GROUP_VOTES
инициализируется со значениями:
= merge({=A27388_1723_2178_88316:UserApprovers},{=A27388_1723_2178_88316:UserRejecters}) |
Которые в данном примере взяты из «Дополнительные результаты» -> «Утвердили пользователи» и «Отклонили пользователи».
Здесь мы используем функцию слияния массивов доступную в Битрикс24: array_marge. Объединение массивов, это единственная функция работы с массивами, которая упоминается в официальной документации. Обратите внимание, что если вы просто добавите два значения, окно закроется, но значения не сохраняться. Повторно открыв окно редактирования переменных, вы обнаружите пустое поле.
Все потому, что в бизнес процессах Битрикс24 нет проверки условий. Точнее она есть, но об ошибке вы узнаете лишь заново раскрыв окно, ошибочные значения не сохраняются.
Далее все довольно просто, сравниваем значения массивов, при совпадении меняем значение переменной BOOL
на true
в первом цикле проверяем менялось ли значение переменной, если не менялось, то пишем текущее значение итератора в переменную GROUP_RECEPIENTS
.
В результате, мы должны были получить массив из пользователей, которые не голосовали. Создаем новый итератор для массива GROUP_RECEPIENTS
, внутри него создаем уведомление, получателем указываем текущее значение итератора.
Вывод: сегодня мы разобрались как пользоваться итераторами для сравнения массивов данных в Битрикс24, а так же выяснили, что получить данные в реальном времени для блоков голосования Битрикс24 невозможно.
Эта статья может быть полезна тем, кто хочет научиться создавать бизнес-процессы (БП) на портале Битрикс24. В ней будет подробно и занудно описан каждый шаг при разработке бизнес-процесса в CRM на примере несложной автоматизации сделки.
Этапы разработки бизнес-процесса
- Постановка задачи
- Создание шаблона БП
- Тестирование
- Сдача в эксплуатацию
Постановка задачи и описание алгоритма
В нашем случае задача выглядит так: «Необходимо назначить руководителя Наблюдателем сделки, если сумма сделки 100 000 руб. или больше».
Теперь, когда у нас сформулирована задача, можно приступить к описанию алгоритма. Этот этап нужен для того, чтобы представить решение задачи в структурированном виде, состоящем из отдельных действий и их взаимосвязей. Вы можете разрабатывать алгоритм с помощью любых удобных вам инструментов, например, нарисовать схему на листе, или описать последовательность шагов, или воспользоваться каким-либо сервисом для визуализации блок-схем.
Для нашей задачи достаточно простого описания алгоритма:
Если сумма сделки равна или больше 100 000 руб., то назначаем руководителя Наблюдателем этой сделки.
Создание шаблона по шагам
Шаблон бизнес-процесса – это инструмент Битрикс24, посредством которого можно реализовать ваш алгоритм.
В Битрикс24 можно разрабатывать бизнес-процессы для разных объектов (лидов, компаний, элементов Списков…) и для каждого из них надо выбирать соответствующий шаблон. Мы будем создавать шаблон БП для сделок, поскольку наша задача касается автоматизации сделки.
Перед началом работ убедитесь, что у вас достаточно прав. Для работы с бизнес-процессами в CRM вы должны быть или администратором портала, или иметь включенную опцию «Разрешить изменять настройки» в настройках роли в правах доступа CRM.
Шаг 1. Добавляем шаблон БП для сделок
Переходим в раздел CRM – Настройки – Настройки CRM.
Если вы не можете найти раздел «Настройки» среди пунктов меню, то поищите его под пунктом «Еще» (крайний правый), может быть он прячется там.
Если и это не помогло, то обратитесь к администратору портала, может быть, у вас недостаточно прав для создания БП.
В Настройках выбираем Роботы и бизнес-процессы – Бизнес-процессы.
Добавляем шаблон для сделок. По умолчанию добавляется шаблон для последовательного бизнес-процесса, что нам и требуется в данном случае (и вообще требуется в 99,99% случаев).
Шаг 2. Настройка шаблона
В появившемся окне изменяем Название и добавляем Описание (это не обязательно, но хороший тон).
Обратите внимание на настройки автоматического запуска – «Автоматически запускать».
По умолчанию там указано «При добавлении». Убираем ее! Не стоит, чтобы при добавлении новых сделок запускался наш недоделанный бизнес-процесс (а недоделанным он будет всегда, пока не проведено тестирование).
В окне настроек шаблона мы видим несколько вкладок:
- Основное (которую мы только что заполнили)
- Параметры
- Переменные
- Константы
Параметры служат для добавления информации при запуске процесса и для передачи данных между разными БП.
Переменные нужны для временного хранения данных в ходе бизнес-процесса, и они очищаются после его завершения.
Практическое применение параметров и переменных будет описано в следующих статьях.
Константы нужны для хранения постоянной информации, которая не меняется в ходе БП.
Именно их мы будем использовать в нашем примере для хранения значения 100 000 руб. (минимальной суммы, достойной внимания руководителя) и самого руководителя.
Давайте добавим их на вкладку «Константы».
Для добавления суммы заполните поля:
- Идентификатор – можно использовать только латинские символы, цифры и знак подчеркивания (не волнуйтесь, если вы ошибетесь, то система вам подскажет).
- Название – здесь пишите, что и как вам угодно, но лучше, чтобы это было информативное название.
- Описание – поле не обязательно заполнять, в данном примере и так все понятно, но давайте опишем для наглядности.
- Тип – здесь выберите тип «Целое число»
При добавлении Руководителя заполните те же поля.
Для Типа выберите «Привязка к пользователю».
При заполнении поля «Значение константы» вам сейчас надо выбрать не реального руководителя, а себя или, еще лучше, предварительно созданного тестового пользователя.
Для выбора пользователя нажмите кнопку для вставки значения (запомните ее вид, она будет часто использоваться во время работы над шаблоном):
Выберите пользователя из списка (в данном примере выбран «Тестовый Cотрудник»). Если вы не видите в списке нужного вам пользователя, то поищите его в разделе «Категории пользователей».
Теперь вкладка «Константы» будет выглядеть так:
Не забудьте нажать кнопку «Сохранить» для сохранения параметров шаблона!
Если вы немного утомились и хотите сделать перерыв, то давайте сохраним все что мы сделали с помощью кнопки «Применить»:
Советую вам не забывать периодически нажимать на эту кнопку, чтобы не потерять промежуточные результаты своей работы.
Шаг 3. Добавление блок-схемы
Блок-схема формируется с помощью действий, сгруппированных по разделам.
Вначале вам будет непонятно, какие действия в каких разделах искать и в каких случаях их применять. Но со временем вы увидите, что действий не так уж и много и в процессе работы вы познакомитесь с ними досконально.
Вспомним наш алгоритм: «Если сумма сделки равна или больше 100 000 руб., то назначаем руководителя Наблюдателем этой сделки.»
Нам потребуется действие «Условие» из раздела «Конструкции».
Раскроем раздел и перетащим «Условие» к серому треугольнику, как показано на скриншоте.
Есть еще один способ добавить действие.
Кликнув на треугольник, вы получите список с разделами и здесь уже из раздела «Конструкции» выберите действие «Условие».
Перейдем к настройке Условия.
Вначале давайте изменим название действия. В нашем простом примере с одним условием это кажется лишним, но если вы будете разрабатывать более сложные бизнес-процессы с несколькими условиями, то увидите, насколько удобно, когда блок-схема легко читается.
Для изменения названия нажмите на шестеренку и введите свое название в поле «Заголовок».
Теперь разберемся с ветками условия. По умолчанию их 2, как нам и надо для нашей задачи. Но в принципе можно добавить сколько угодно веток с помощью значка «+» справа от названия.
Настроим левую ветку.
Назовем ее «ДА».
Для «Типа условия» выберем «Поле документа», поскольку мы будем проверять поле сделки («документ» – это общее название элемента, на котором запускается БП).
В появившемся поле документа выберем «Сумма».
В качестве условия выберем «не меньше», поскольку «равна или больше» означает «не меньше».
Для установки Значения нажмите кнопку для вставки значения:
В окне «Вставка значения» раскройте «Константы» и выберите константу «Минимальная сумма».
Настройки левой ветки теперь выглядят так:
Сохраните их.
Таким образом мы добавили в блок-схему проверку условия:
Если сумма сделки (то есть поле сделки «Сумма») равна или больше (то есть «не меньше») 100 000 руб. (значение нашей константы summa_min).
Теперь перейдем к условию в правой ветке.
Здесь достаточно ввести «НЕТ» в поле «Заголовок» и то, это надо только для наглядности нашего условия.
Сейчас, когда у нас готовы 2 ветки, давайте добавим в них действия для логирования.
Это надо для того, чтобы потом по записям в Журнале бизнес-процесса мы могли проверить, как он работает.
За добавление в лог отвечает действие «Запись в отчет» из раздела «Прочее».
Добавьте текст. В текст можно добавить поля, константы, переменные… В нашем примере в текст вставлены поле сделки «Сумма» и константа для минимальной суммы. Добавьте их с помощью кнопки для вставки значения, подобно тому, как мы это делали при добавлении условия в левой ветке.
Для добавления действия «Запись в отчет» в правую ветку условия скопируйте действие, перетаскивая его как показано на скриншоте при нажатой Ctrl. Если будете перетаскивать без Ctrl, то действие будет перемещено, а не скопировано.
Отредактируйте текст в новом действии, изменив «ДА» на «НЕТ».
Вы можете написать свои тексты в этих действиях, главное, чтобы потом из записей Журнала вам было ясно, что происходит с вашим БП.
Теперь в левую ветку добавим наблюдателя к сделке.
Для этого выберем действие «Изменение наблюдателей» из раздела «CRM».
Здесь оставьте действие «добавить» и нажмите на кнопку «…» для выбора наблюдателя.
Поскольку наблюдатель у нас находится в константе «Руководитель», то ее и выберем.
Теперь действие выглядит так:
Итак, наш шаблон готов. Не забудьте его сохранить!
Запуск и Тестирование
Для тестирования создайте сделку c суммой больше 100 000 руб., например, 200 000 руб.
Перейдите в карточку сделки и запустите БП вручную, выбрав его из списка.
Теперь давайте посмотрим Журнал на вкладке «Бизнес-процессы».
Из журнала видно, что БП пошел по левой ветке, как и ожидалось.
Также мы видим, что в карточке сделки «Тестовый сотрудник» установлен как наблюдатель.
Также надо провести тесты, когда сумма сделки < 100 000 руб. и когда сумма сделки = 100 000 руб.
Для этого можно создать новые тестовые сделки с этими суммами или менять сумму в нашей тестовой сделке, при этом не забывая очищать поле «Наблюдатели».
Если все тесты прошли успешно, то можно переходить к последнему этапу.
Сдача в эксплуатацию
Перед запуском БП в работу нам надо сделать 2 вещи.
Первое, это установить реального руководителя вместо Тестового сотрудника в константе «Руководитель».
Для этого выберите наш шаблон в Списке шаблонов для сделок
и измените значение константы «Руководитель» на реального пользователя.
И второе, это установить автозапуск процесса.
Поскольку сумма сделки может быть указана и при добавлении сделки, и при ее изменении, то для автоматического запуска отмечаем 2 чекбокса «При добавлении» и «При изменении».
Теперь наш бизнес-процесс в работе!
Пример создания блока «Утверждение заявки по циклу» в бизнес-процессах (корпоративный портал 1С-Битрикс)
Рассмотрим процедуру создания блока «Утверждение заявки по циклу». Пусть в нашей организации согласование осуществляется следующим образом:
Рассмотрим процедуру создания блока «Утверждение заявки по циклу».
Пусть в нашей организации согласование осуществляется следующим образом:
1. Сотрудник компании оформляет заявку;
2. Заявка согласуется с руководителем автора заявки (согласно структуре компании). Если же заявку оформляет высший руководитель ( в нашем случае заранее заданный список директоров), то согласование не требуется;
3.1 Заявка утверждена руководителем (п.2) и поступает на согласование руководителю руководителя из п.2. И так до тех пор пока не дойдем до директора.;
3.2 Заявка отклонена руководителем (п.2), пользователю поступает сообщение об отказе.
Нам потребуется добавить несколько новых переменных: Текущий руководитель и Директор (с привязкой к пользователю), а также переменную Утвержден (тип Да/Нет)
Теперь нам нужно присвоить значения переменным Текущий руководитель и Директор. С этим нам поможет конструкция «Изменение переменных» из раздела Прочие. Добавим ее в наш БП.
И присвоим значения переменным.
Т.к. с момента назначения переменной «Директор» мы указали возможность множественности, то теперь мы можем указать всех вышестоящих руководителей согласно структуре нашей организации.
Опустим момент проверки на должность автора заявки (его мы подробно рассмотрели в
БП «Отгул»
) и перейдем сразу же к утверждению заявки у всех руководителей сотрудника (по циклу).
Начнем с выбора действия «Цикл» из раздела Конструкции. В настройках необходимо указать параметры, при которых цикл будет выполняться. В нашем случае действие цикла должно продолжаться до тех пор, пока мы не дойдем до директора.
Но также нам нужно учесть возможное отклонение заявки руководителем любого уровня, поэтому нам потребуется переменная «Утвержден».
В итоге мы входим в действие цикла при условии, что на предыдущем этапе утверждения было получено согласие и должность утверждающего руководителя была не директор.
Ну и собственно переходим к самому процессу поиска руководителя.
Нам потребуются действия «Выбор сотрудника» и «Изменение переменных» из раздела Прочее.
В результате мы выбираем начальника Текущего руководителя (в действии «Выбор сотрудника»;) и это значение записываем в переменную Текущий руководитель (в действии «Изменение переменных»;).
Напомню, в самом начале БП Текущим руководителем мы выбираем автора заявки.
В результате конструкция Цикла будет выглядеть следующим образом:
Здесь стоит обратить внимание на действие «Утверждение». Для него мы использовали уже известную конструкцию «Изменение переменных». Параметры действия в итоге выглядят следующим образом:
Похожие записи в блоге
Все статьи