Бизнес-процесс
Бизнес-процессы — это прикладные объекты конфигурации. Они описывают бизнес-логику в карте маршрута и управляют жизненным циклом созданных бизнес-процессов (экземпляров) от момента старта до момента завершения. Необходимым свойством описания бизнес-процесса является связь с задачей, которая задает систему адресации и позволяет проектировать карты маршрута в соответствии с поддерживаемой в прикладном решении организационной структурой.
Карта маршрута
Логика бизнес-процесса (взаимосвязь и последовательность обхода точек маршрута, условные переходы и пр.) наглядно описывается в виде карты маршрута, которая позволяет визуально описывать маршрут бизнес-процесса в виде связного графа и позволяет легко описывать алгоритмы условных переходов, и реакцию бизнес-процесса на различные события:
Для создания карты маршрута бизнес-процесса могут быть использованы все оформительские возможности, предоставляемые графической схемой.
При работе пользователя с системой предусмотрена возможность отображения актуальной карты маршрута для конкретных экземпляров бизнес-процессов с учетом пройденных и активных точек маршрута.
Точка действия
Точки этого вида описывают отдельную операцию (единицу работы), соответствующую определенному этапу (шагу) в жизненном цикле бизнес-процесса:
- бухгалтер — принять оплату наличными;
- кладовщик — выдать товар со склада по накладной;
- системный администратор — зарегистрировать нового сотрудника в сети и электронной почте.
Формулировка задания обычно составляется из глаголов и отглагольных существительных. Исполнитель может определяться персонально (Иванов), или с учетом ролевой маршрутизации («Кладовщик», «Руководитель отдела продаж»). При переходе бизнес-процесса на точку действия он автоматически формирует задачи, устанавливая в них реквизиты адресации, предусмотренные в точке действия.
Групповая и коллективная маршрутизация
- групповая — данное действие должны выполнить все члены группы. При этом формируется несколько задач (по количеству сотрудников, входящих в группу) и бизнес-процесс ожидает завершения всех задач для продвижения дальше по маршруту. Примером групповой маршрутизации может служить задача, например, всем менеджерам предоставить ежемесячный отчет;
- коллективная — только один из членов группы должен выполнить данное действие. Формируется одна задача. Пример коллективной задачи: кладовщики — выдать товар по данной накладной со склада.
В точке действия можно описать проверку необходимых условий выполнения задачи, интерактивный диалог с пользователем при переходе далее по маршруту, и указать, например, какие документы следует открывать при активации задач, связанных с этой точкой маршрута бизнес-процесса.
Персональная и ролевая маршрутизация
Ролевая маршрутизация позволяет назначать задания не только конкретным исполнителям, но и ролям, группам, подразделениям и т. д. как это определено в прикладном решении.
Ролевая маршрутизация построена на взаимодействии объектов задача и регистра сведений. Задача определяет состав реквизитов адресации (роли, подразделения и т. д.), а регистр сведений отражает актуальную, т. е. соответствующую текущему моменту информацию о принадлежности сотрудников ролям, подразделениям, рабочим группам и т. д. и поэтому называется регистром адресации.
Регистр сведений можно использовать для реализации механизмов замещения или учета отсутствия сотрудников. Например, если в регистре сведений указано, что роль главного бухгалтера исполняет Иванов, и Иванов уходит в отпуск и его обязанности передаются Петрову, то запись в регистре сведений меняется так, чтобы роль главного бухгалтера исполнял Петров. По возвращении Иванова из отпуска запись в регистре сведений восстанавливается.
Условная маршрутизация
Механизм бизнес-процессов в 1С:Предприятии 8 позволяет автоматизировать не только последовательные цепочки работ, но и осуществлять условную маршрутизацию, управляя выбором заранее предусмотренных маршрутов, на основе описанной разработчиком карты маршрута.
- условный переход;
- выбор варианта.
Условный переход предоставляет возможность выбора одного из двух возможных вариантов дальнейшего маршрута (да/нет, больше/меньше, запрещено/разрешено и т. д.):
Точка выбора варианта предоставляет возможность выбора дальнейшего маршрута из неограниченного количества вариантов:
Использование в прикладных решениях
Для использования механизма бизнес-процессов не требуется изменения готовых решений, или эти изменения несущественны. Например, внесение незначительных изменений в конфигурацию позволит бизнес-процессам должным образом реагировать на запись важных для них объектов базы данных. В этом случае пользователи смогут работать привычным образом, не пользуясь списком заданий и не подозревая о существовании бизнес-процессов. Однако выполняемые ими операции будут приводить к продвижению соответствующих бизнес-процессов дальше по маршруту.
Что такое бизнес процесс в 1с
Уясните сразу, что бизнес-процессы – это всего лишь два новых объекта в 1С 80: бизнес-процессы и задачи. Причем задачи можно использовать самостоятельно и без знания бизнес-процессов. Их можно трактовать, как список задач для текущего пользователя.
Бизнес-процесс рисуется в конфигураторе как блок-схема. В этой блок-схеме есть блоки начала и конца алгоритма, блоки выполнения (прямоугольные) и блоки условий. Чтобы бизнес-процесс мог стартовать, у него должна быть стартовая точка (одна или несколько).
Бизнес-процесс может находится в одной или сразу нескольких точках (при параллельном выполнении).
Пользователь создает новый бизнес-процесс и запускает его. Как только бизнес-процесс доходит до блока выполнения, он создает новую задачу и адресует его тому исполнителю, который прописан в этом блоке выполнения. Как только исполнитель выполняет задачу, бизнес-процесс идет дальше по блок-схеме. Условия вычисляются программно на языке 1С (анализируются реквизиты бизнес-процесса). Вот и вся нехитрая механика.
Вы видите, что задачи порождаются при выполнении бизнес-процессов. Однако они могут использоваться и без них, например создаваться программно или вручную. Они напоминают задачи MS Outlook.
Задача имеет весьма хитрый механизм, предназначенный только для того, чтобы определить какие задачи назначены текущему пользователю. Для этого используется переменная сеанса, в которой хранится текущий пользователь, регистр сведений, который указывает, какие роли может выполнять текущий пользователь и т.п.
Можно назначить задачу целому подразделению и она будет показана у всех пользователей подразделения.
Как соотносятся задачи и бизнес-процессы? Одному виду бизнес процесса соответсвует один вид задачи, один вид задач может использоваться в нескольких бизнес процессах. Это как бы странно, потому что на различных блоках исполнения мы можем ожидать разные задачи. Например задача согласования может отличаться от задачи вбивки первичных документов. Но в демо примере все сделано на одном виде задач, а в данном случае, если мы все же хотим использовать разные виды задач, можно использовать вложенные бизнес процессы.
Как видите, все очень просто. Если кто-то чего-то не понял, обращайтесь, допишу статью более понятно.
Несколько советов «чайникам».
•Посмотрите в режиме «Конфигуратор» демо-базу с ИТС — познавательно. В режиме «Предприятие» можете не смотреть, особо ничего не поймете.
•У бизнес-объекта нужно обязательно указать вид задачи – без него конфигурация не сохранится. Сначала может использовать один вид задачи для всех бизнес-процессов.
•Чтобы бизнес объект мог стартовать, у него должна быть на карте маршрута хотя бы одна точка входа.
•Каждый блок бизнес-процесса можно назначить исполнителя. Он выбирается из реквизитов адресации задачи, вид которой подвязан к бизнес процессу. Можно выбирать как исполнителя, пользователя, так и любой другой реквизит адресации, например назначить задачу подразделению.
•У задачи нужно не только заполнить реквизиты адресации, но и выбрать основной реквизит адресации, например «Пользователь», выбрать регистр сведений для адресации, переменную сеанса, которая будет соотноситься с основным реквизитом адресации и иметь с ним один тип (!) . Также не забудьте указать соотношения между реквизитами адресации задачи и измерениями регистра адресации, чтобы связь между задачей и регистром сведений заработала.
•Для контроля списка можете использовать консоль отчетов по таблице всех задач «Задачи» и виртуальной таблице задач текущего (или указанного) пользователя «ЗадачаЗадачиПоИсполнителю».
•Для отладки вы можете отключать признаки того, что бизнес-процесс стартовал или задача выполнена.
•В демо-конфигурации для вывода списка задач используется отдельная форма списка «По исполнителю», поэтому в ней показываются задачи только текущего исполнителя. Я сначала никак не мог понять, почему форма списка задач показывает все задачи, потом понял. Чтобы форма показывала задачи по исполнителю, у нее в свойствах надо поставить режим вывода задач «По исполнителю» и программно присвоить реквизиту формы Исполнитель значение текущего пользователя (см. демо-конфу).
•Режим адресации по регистру сведений работает так: если задаче назначена роль исполнителя, то и пользователю в регистре сведений должна быть назначена эта роль, а если задаче не назначена роль исполнителя, то тем не менее пользователь должен быть прописан в регистре с пустой ролью (т.е. задача все равно не назначается любому пользователю). Задача попадает в список пользователя, только если о нем есть запись в регистре адресации.
С чего начать
На самом деле самая большая сложность – это придумать бизнес-процесс, на котором можно поизучать механику. Возьмите самый простой бизнес-процесс. Менеджер выписывает расходную накладную. Руководитель отдела должен ее утвердить. После утверждения расходная накладная проводится и Кладовщик производит отгрузку. Если накладная не утверждена, она помечается на удаление и бизнес-процесс завершается.
Алгоритм примерно такой:
0:Начало
А:Выполнение: Менеджер оформляет расходную накладную.
Б:Выполнение: Руководитель отдела утверждает накладную.
В:Условие: Если накладная утверждена, тогда Г иначе Д.
Г:Выполнение: Кладовщик выполняет отгрузку. Переход на Е.
Д:Конец: Завершение бизнес-процесса в статусе «Отмена».
Е:Конец: Нормальное завершение бизнес-процесса.
Флажок утверждена можно вносить или в расходную накладную или в сам бизнес-процесс, как реквизит.
Что нужно проконтролировать:
•Когда вы запускаете бизнес-процесс, создаются задачи.
•Когда вы выполняете задачи, бизнес-процесс продвигается по карте маршрута (для этого нужно в форму бизнес-процесса вывести карту маршрута).
•Задачи появляются только у тех пользователей, которым они адресованы (вот здесь мне пришлось попотеть).
Картинка:
На картинке приведен пример, похожий на задачу. Штрихами 1С показывает пройденные точки маршрута, красным пунктиром – текущую точку маршрута.
Практика использования Бизнес-процессов и Задач в «1С:Предприятии 8.3»
С одной стороны, подзадача по реализации бизнес-процессов является обязательной на Аттестации 1С:Специалист по платформе.
С другой стороны, во многих типовых решениях бизнес-процессы используются редко. Хотя фактически бизнес-процессов в конфигурациях автоматизировано множество, а сами эти объекты появились аж в 2004 году (с момента выхода «1С:Предприятие 8.0»).
Поэтому, чтобы понимать работу механизмов «Бизнес-процессов» и «Задач», недостаточно просто «подсмотреть в типовой». Возможности данных объектов нужно именно изучать.
Этим мы и займемся в данной статье. Плюс, дадим общие рекомендации по применению данного механизма в решении реальных задач.
Что такое бизнес-процессы в 1С
Безотносительно 1С бизнес-процесс – это совокупность взаимосвязанных действий, направленных на создание продукта или услуги для потребителей.
Примеры бизнес-процессов: производство вентиляторов, допродажа товаров клиента, подбор сотрудников и так далее. Причем часто бизнес-процессы можно детализировать. Например, в производстве продукции можно выделить такие бизнес-процессы, как закупка материалов, передача материалов в производство, движение материалов в производстве, выпуск продукции.
Для наглядной автоматизации бизнес-процессов в платформе «1С:Предприятие 8» существует объект «Бизнес-процесс». Он позволяет выстроить цепочку действий разных пользователей программы, которая приведет к определенному результату. Таким результатом может быть формирование отчетности, утверждение документа, заполнение карточки контрагента.
Объект «Бизнес-процесс» имеет графическое отображение, называемое картой маршрута. Это не что иное, как блок-схема, составленная из «кирпичиков»:
Элемент схемы | Графическое представление | Описание |
---|---|---|
Точка старта | Начало бизнес-процесса, является обязательным | |
Стрелка | Показывает последовательность переходов между точками | |
Точка действия | Соответствует конкретному действию конкретного пользователя (или одного из пользователей с определенной ролью) в программе. | |
Точка условия | Отвечает за проверку выполнения определенного условия, у которого может быть только 2 состояния: “Выполнено” или “Не выполнено” | |
Точка выбора варианта | Дает возможность выбрать дальнейшие действия исходя из проверки условия, у которого может быть более двух состояний (аналог – Если-ИначеЕсли-…) | |
Точка разделения | Соответствует моменту, начиная с которого разные пользователи должны выполнять разные действия параллельно и независимо друг от друга | |
Точка слияния | Соответствует моменту, начиная с которого параллельные процессы вновь объединяются в один | |
Точка обработки | Отвечает за выполнение определенного алгоритма системой | |
Точка вложенного бизнес-процесса | Соответствует выполнению другого бизнес-процесса, который является составной частью текущего |
Как видим, бизнес-процессы в системе могут иметь ветвления, параллельное выполнение, любое количество уровней вложенности.
Вот пример бизнес-процесса «Закрытие месяца» из 1С:УПП, где встречаются практически все возможные элементы:
Продвижение по карте маршрута невозможно реализовать без вспомогательного объекта «Задача» – «двигателя» бизнес-процесса. В каждой точке действия создается одна или несколько задач, и когда все задачи текущей точки завершены, происходит переход к следующей точке карты маршрута.
Использование объектов «Бизнес-процесс» для пользователя похоже на работу с документами:
- Разные бизнес-процессы соответствуют различным действиям в системе (продажа товара, закрытие месяца, согласование заказа, …). То есть объект «Бизнес-процесс» в конфигурации определяет вид операции.
- При старте пользователем нового бизнес-процесса создается несколько экземпляров, например – продажа вентиляторов контрагенту А, продажа холодильников контрагенту Б и так далее. То есть пользователь создает любое количество объектов информационной базы для каждого бизнес-процесса.
Практический пример
Рассмотрим практический пример. Необходимо автоматизировать процесс приема сотрудника на работу из 3 последовательных этапов:
- Младший кадровик заполняет личные данные сотрудника.
- Старший кадровик оформляет приказ о приеме сотрудника в статусе «Проект».
- Расчетчик проводит приказ о приеме в статусе «Утвержден».
Каждый этап бизнес-процесса выполняет отдельный пользователь с нужными правами доступа.
Требуется отслеживать ход приема новых сотрудников, каждый пользователь должен видеть свои задачи.
Бизнес-процесс будем реализовывать в конфигурации, где уже имеются необходимые документы и справочники:
Выгрузку базы с этой конфигурацией можно скачать по ссылке в конце статьи.
Начнем с создания нового бизнес-процесса:
В пользовательском режиме новый бизнес-процесс будет создаваться каждый раз при приеме нового сотрудника.
Изобразим карту маршрута бизнес-процесса для поставленной задачи:
Привязку к исполнителям мы настроим позднее.
В точке условия нужно определить, работал ли принимаемый сотрудник в нашей организации ранее. Если это так, то в базе уже заведен нужный элемент справочника «Физические лица» и заполнены личные данные. Добавим в бизнес-процесс реквизит (тип Булево), который позже обработаем в точке условия (то есть считаем, что пользователь сам определяет при приеме – новый это сотрудник или нет):
Теперь, когда у нас есть схема бизнес-процесса, необходимо организовать последовательность действий и распределение этих действий по ответственным лицам.
Объект конфигурации «Задача»
За действие пользователя в каждой точке бизнес-процесса отвечает специальный объект «Задача». Он является вспомогательным объектом, но именно с его помощью выстраивается цепочка действий пользователей: в каждой точке действия карты маршрута создаются задачи для одного или нескольких пользователей. Пока текущий пользователь не завершил свою задачу (то есть не установил стандартный реквизит «Выполнена» в значение «Истина»), задачи следующей точки маршрута для других пользователей созданы не будут.
То есть именно при выполнении задач происходит движение бизнес-процесса по карте маршрута.
Для наглядности рассмотрим, как выглядит список задач в демонстрационной базе конфигурации «Документооборот 8 ПРОФ, редакция 2.1». При запуске программы от имени пользователя Федоров О.П. (директор) на начальной странице открывается список всех невыполненных задач пользователя:
Вернемся к нашей конфигурации, создадим новый объект:
Свяжем бизнес-процесс с задачей:
Более того, в типовых решениях 1С («Документооборот», «Управление торговлей, ред. 11») в разных бизнес-процессах используется один и тот же тип задач, чаще всего он называется «Задача исполнителя». Это делается для того, чтобы пользователь мог видеть общий список своих задач, относящихся к разным видам бизнес-процессов, как в примере выше из «Документооборота».
Адресация задач
Объект «Задача» предоставляет возможность использования вспомогательного регистра сведений, который обеспечивает распределение задач по исполнителям. Этот регистр называется регистром адресации.
Измерениями регистра адресации должны выступать те значения, по которым возможно однозначно определить исполнителя задачи. При этом в качестве одного из измерений чаще всего используется справочник «Пользователи», так как с помощью него удобно связать текущего пользователя программы с его задачами.
Однако использование справочника «Пользователи» как единственного измерения адресации на практике неудобно: например, конкретный пользователь может заболеть или сменить место работы, тогда придется перенастраивать адресацию задач. Таким образом, задачи удобнее привязывать не напрямую к пользователю, а к набору ролей, и одного измерения адресации чаще всего недостаточно.
Поэтому для нашего примера создадим в регистре адресации 2 измерения:
Здесь используется справочник «Роли исполнителей», который имеет следующие предопределенные элементы:
Создадим у задачи реквизиты адресации тех же типов, что и измерения регистра сведений:
Укажем для задачи регистр адресации. Для реквизитов адресации задачи настроим соответствие измерениям выбранного регистра сведений:
Теперь в карте маршрута бизнес-процесса доступна настройка адресации. Укажем для каждой точки действия нужную роль исполнителя:
Чтобы обеспечить ветвление в точке условия, требуется обработчик проверки условия – функция в модуле объекта бизнес-процесса, которая возвращает значение Ложь или Истина. Создадим такой обработчик для точки маршрута ПовторныйПрием:
Чтобы знать, от имени какого пользователя запущен текущий сеанс, нам потребуется параметр сеанса. Создадим его:
Укажем, что созданный параметр сеанса будет хранить текущего исполнителя задач, а также укажем основной реквизит адресации для задачи:
Сделаем так, чтобы при запуске «1С:Предприятия» в параметр сеанса ТекущийПользователь подбиралось нужное значение из справочника «Пользователи». Соответствие будем устанавливать по имени, и если элемент справочника «Пользователи» с нужным именем не найден, то создадим его. Код функции УстановкаПараметровСеанса() в модуле сеанса:
После того, как все нужные элементы справочника «Пользователи» будут созданы, заполним регистр адресации в режиме «1С:Предприятие»:
Отображение задач по исполнителям
Теперь поработаем над формой списка задач. Конечно, пользователю хотелось бы, чтобы по умолчанию в списке задач отображались только его задачи. Для этого создадим форму списка задачи «Задача исполнителя» и в настройках основного реквизита Список поменяем основную таблицу на Задача.ЗадачаИсполнителя.ЗадачиПоИсполнителю:
Также можно оставить только еще не выполненные задачи, добавив в настройку списка соответствующий отбор:
Теперь уже можно попробовать создать экземпляр бизнес-процесса, задачи будут создаваться у нужных пользователей. Для этого под любым пользователем, имеющим права на запись бизнес-процесса «Прием нового сотрудника» (например, под Ивановой А.И.), из раздела «Кадровый учет → Прием нового сотрудника» создаем новый экземпляр бизнес-процесса и стартуем его:
После этого у пользователя Петрова В.П. в списке задач (Кадровый учет → Задача исполнителя) появится новая задача:
Визуализация хода бизнес-процесса
Пока функциональность нашей разработки почти на нуле – только формируются задачи и пользователи вручную отмечают их исполнение.
Для начала хотелось бы иметь возможность отслеживать состояние бизнес-процесса, то есть в какой точке он сейчас находится. Для этого создадим форму бизнес-процесса и добавим на нее реквизит КартаБП типа ГрафическаяСхема, а также выведем элемент управления на форму:
Затем в модуле формы бизнес-процесса создадим процедуру ОбновитьКартуМаршрута:
Вызовем эту процедуру в обработчике события ПриЧтенииНаСервере формы бизнес-процесса:
После этого при открытии формы бизнес-процесса на карте маршрута будет отмечаться текущее положение:
Использовать обработчик ПриСозданииНаСервере для выполнения кода также допустимо, но данный обработчик вызывается и для тех объектов, которые еще не записаны. В нашем случае это приведет к выполнению лишних действий, ведь вновь создаваемый бизнес-процесс еще не стартован, а значит, он всегда находится в своей начальной точке.
Сделаем так, чтобы при нажатии кнопки «Старт» на форме бизнес-процесса карта маршрута обновлялась. Для этого вызовем ту же процедуру ОбновитьКартуМаршрута в обработчике ПослеЗаписиНаСервере:
В таком виде задача может считаться решенной в рамках подготовки к экзамену «1С:Специалист» по платформе. Но мы пойдем немного дальше.
События задач и точек действия бизнес-процессов
Для начала добавим автоматическую запись исполнителя в задачу при ее выполнении, чтобы в будущем можно было отследить, кем именно она была выполнена. Ведь младших кадровиков может быть несколько – баба Нюра и баба Катя. До момента выполнения задачи она будет отображаться в списках всех потенциальных исполнителей.
Итак, добавим в модуль объекта ЗадачаИсполнителя стандартный обработчик ПередВыполнением со следующим кодом:
Теперь добавим в бизнес-процесс реквизиты, которые позволят хранить информацию о выполняемых действиях:
Поработаем и с задачей. Выведем на форму задачи ссылку на родительский бизнес-процесс и его реквизиты:
В наименовании задачи было бы неплохо видеть не только название точки маршрута, но и ФИО человека, которого требуется принять на работу. Для этого в модуле объекта бизнес-процесса определим процедуру УстановитьНаименованиеЗадачи, и будем вызывать ее при создании задач:
Процедуру ОбщаяПриСозданииЗадач привяжем к каждой точке маршрута бизнес-процесса. Это можно сделать через карту маршрута:
На каждой точке маршрута можно задавать отдельные обработчики событий, если требуется выполнять различные действия.
На этапе выполнения задачи добавим контроль над пользователем со стороны системы: не будем позволять отмечать задачу как выполненную, если необходимые данные не внесены. Для этого в модуль объекта бизнес-процесса добавим функцию ПроверитьВыполнениеЗадачи, которую будем вызывать в обработчике ОбщаяПередВыполнением в каждой точке маршрута (привязка осуществляется также через карту маршрута):
Готово, можно тестировать!
Подведем итоги
Мы описали только базовые приемы работы с бизнес-процессами и задачами в 1С:Предприятии 8.3. Как минимум, требуется добавить еще множество проверок введенных данных и «красивостей» на уровне форм.
Но цель статьи – показать, как можно использовать объекты системы при автоматизации бизнес-процессов.
Выгрузку базы готового примера можно скачать в конце статьи и использовать в качестве шаблона.
Есть еще множество нюансов, которые просто невозможно рассмотреть в одной статье: программное создание и выполнение задач, групповые задачи, использование вложенных бизнес-процессов, настройка ролей и прав доступа. Плюс зачастую вместо «унылой» формы задачи вызывается форма определенного объекта конфигурации – документа или справочника.
Если эти темы Вам интересны, оставляйте комментарии – и мы продолжим освещать тему бизнес-процессов. 🙂
Об авторе
Автор статьи – Алина Баринова
Консультант-разработчик, компания “Infosuite” (г. Москва)
Выгрузки ИБ и PDF-версия статьи для участников группы ВКонтакте
Если Вы еще не вступили в нее – сделайте это сейчас, и в блоке ниже (на этой странице) появятся ссылки на скачивание материалов.
Статья в PDF-формате
Вы можете скачать эту статью в формате PDF по ссылке:
Ссылка доступна для зарегистрированных пользователей)
Комментарии / обсуждение (113):
Добрый день. У меня проблема с прохождением условия, сделал все, как показано в курсе. Кнопки всё проставляется как надо… галочка истина проставляется… а когда дело доходит до проверки условия , то там опять стоит Ложь.
Добрый день!
К статье приложены выгрузки баз, демонстрирующихся в материалах. Сравните свой вариант реализации с тем, что приведен в приложенной базе. Это поможет найти причину некорректного поведения.
Добрый день!
Можно ли использовать графическую схему прорисовки бизнес процессов для прорисовки генеалогических деревьев?
При этом необходимо, что бы программно можно было конструировать дерево а не наоборот.
Добрый день!
Считаю, что это будет неудобно, потому что карта маршрута бизнес-процесса разрабатывается в конфигураторе. Кроме того, она составляется вручную, а не программно.
Можно попробовать для отображения дерева использовать табличный документ, но в таком случае придется самостоятельно размещать блоки, рисовать линии между ними.
Здравствуйте! подскажите, пожалуйста, есть независимый регистр, запись в который запускает БП, нужно, чтобы при открытии в режиме предприятия этой записи регистра можно было посмотреть, на каком этапе сейчас запущенный БП. А получается, что запускается новый БП. Что мне посмотреть и настроить, чтобы заработало так, как нужно? И вообще, возможно ли это? Спасибо заранее!
Добрый день, Василий! Спасибо за оперативный ответ! Можете мне немного пояснить, что Вы имеете ввиду? Мне нужно, чтобы в регистре можно было посмотреть на каком этапе сейчас БП. Вы для решения этой задачи предлагаете разместить на форме БП его карту. А как я ее увижу, если я не могу из регистра попасть в этот БП, у меня всегда запускается новый?… И еще, прошла по ссылке и там в первом абзаце написано “…но по ней не получится сказать, в какой точке маршрута сейчас находится бизнес-процесс, какие задачи уже выполнены, а какие еще нужно будет выполнить.” А мне именно это и надо знать…
Основная проблема у меня именно в том, что каждый раз запускается новый БП, а я хочу посмотреть тот, который запустила при создании этой записи в регистре…
Буду очень благодарна за ответ!
Вот две цитаты из Вашего вопроса:
1. >>А как я ее увижу, если я не могу из регистра попасть в этот БП, у меня всегда запускается новый?
2. >>есть независимый регистр, запись в который запускает БП, нужно, чтобы при открытии в режиме предприятия этой записи регистра можно было посмотреть, на каком этапе сейчас запущенный БП
Пока не вижу противоречий. Запись – это одно событие, открытие формы записи регистра сведений – другое событие. При записи создается бизнес-процесс, при открытии формы по какой-то логике находим существующий бизнес-процесс, выводим на форме его карту маршрута. При открытии формы не должен создаваться бизнес-процесс. Предполагаю, что это Вам и нужно доработать.
>>прошла по ссылке и там в первом абзаце написано
Давайте полностью приведем предложение:
На форме бизнес-процесса можно отобразить значения его реквизитов: Номер, Дата, Стартован, Завершен и так далее. Эта информация может быть полезна для идентификации конкретного бизнес-процесса, но по ней не получится сказать, в какой точке маршрута сейчас находится бизнес-процесс, какие задачи уже выполнены, а какие еще нужно будет выполнить.
Да, действительно, при помощи стандартных реквизитов бизнес процесса Номер, Дата, Стартован, Завершен нельзя сказать, в какой точке маршрута сейчас находится бизнес-процесс. Для этого используется карта маршрута бизнес-процесса. В статье как раз и рассказывается, как вывести карту маршрута на форме.
В типовой конфигурации 1С8: Управление торговлей наряду с типовыми 7 бизнес процессами я создал свой бизнес процесс, который связал с типовой задачей ЗадачаИсполнителя. Исполнителю прилетела задача, в Мои задачи она видна. Но под пользователем нельзя открыть ее: пишет Недостаточно прав для создания. Также под этим пользователем список созданных бизнес процессов пустой и пишет Нарушение прав доступа при загрузке списка бизнес процесса. Пользователь имеет стандартные роли: Менеджер по закупкам, Менеджер по обеспечению потребностей и Участник согласования условий закупок (дополнительный).
Подскажите, пожалуйста, какие необходимо добавить пользователю дополнительные права (роли) или куда нужно прописать свой Бизнес процесс, чтобы не только Администратор, но и обычные пользователи могли его использовать и выполнять задачи?
Добрый день!
В таком случае рекомендую обратиться к журналу регистрации. В случае возникновения ошибки в нем будет зафиксировано, на какой объект у пользователя не хватает прав. После этого проверяете, какие роли предоставляют доступ к требуемому объекту, назначаете пользователю недостающие роли, добавляете права в существующие роли или добавляете роли в конфигурацию.
Спасибо! Очень интересует организация подчиненных БП в процессе параллельного согласования.
Простейший пример создания бизнес-процессов
Материал данной статьи предназначен для новичков в мире бизнес-процессов, которые позволяет создавать платформа 1С. На практике они имеются в большинстве типовых конфигураций, но используются не всегда. Конфигурацией, которая используют этот объект по настоящему, являются 1С:Документооборот. Конечно, есть и другие решения с их использованием. Также работу с бизнес-процессами проверяют на экзамене 1С:Специалист по платформе.
В любом случае, материал не несет какой-то уникальной ценности, а призван лишь продемонстрировать последовательность шагов для создания и настройки простейшего бизнес-процесса. С его помощью Вы можете определить для себя дальнейшие шаги по изучению данной темы. Для матерых специалистов, которые работают с ними каждый день, тут вряд ли найдется что-то новое. Все примеры будем делать на пустой конфигурации, чтобы разобраться во всех нюансах без усложнения примеров. В типовых конфигурациях шаги по добавлению некоторых справочников или механизмов будут не нужны.
В случае же, если Вы только начинаете изучение бизнес-процессов, то добро пожаловать! Далее будет очень много картинок! 🙂
Что необходимо
Предположим, что к нам поступил заказ реализовать бизнес-процесс заказа товара и получения последующей оплаты по следующей схеме:
При старте бизнес-процесса способ оплаты (через банк или кассу) должен быть известен, чтобы в процессе выполнения произошел переход на соответствующее действие.
Шаг за шагом
И так, начнем. Мы имеем пустую конфигурацию, поэтому необходимо будет добавить все используемые в дальнейшем объекты самостоятельно. Все действия проделаем в несколько этапов:
Шаг №1: Добавляем справочники
На первом этапе добавим в конфигурацию необходимые справочники с соответствующими предопределенными элементами.
Заполнение предопределенных элементов мы осуществили в соответствии со значениями адресации задач на карте маршрута (см. выше).
Шаг 2: Сохраняем текущего пользователя
На втором этапе нужно реализовать механизм, который будет хранить в системе текущего пользователя, а именно ссылку на элемент справочника "Пользователи" связанного с пользователем информационной базы.
Чтобы не усложнять пример, соответствие между элементом справочника "Пользователи" и пользователем информационной базы будем осуществлять по наименованию. При запуске программы система должна сохранить ссылку на текущего пользователя (элемент справочника "Пользователи") в параметр сеанса "ТекущийПользователь". Тип данного параметра — "СправочникСсылка.Пользователи".
На скриншоте выше показан программный код для инициализации значения параметра сеанса "ТекущийПользователь" для текущего пользователя информационной базы. Поиск в справочнике осуществляется по наименованию. Если элемент не найден, то создается новый. В конце стандартной процедуры "УстановитьПараметрыСенаса", в модуле сеанса конфигурации, полученная ссылка на элемент справочника "Пользователи" записывается в соответствующий параметр сеанса.
Шаг №3: Создаем задачи
На третьем шаге создадим объект конфигурации "Задача", чтобы в дальнейшем бизнес-процесс адресовал задачи установленным пользователям. Для этого добавим объект конфигурации в ветке "Задачи" и дадим ему такое же имя.
Прежде чем настраивать свойства добавленного объекта, нам необходимо создать регистр адресации задач, по содержимому которого система будет определять конечного исполнителя для задачи (пользователя). Для этого добавим регистр сведений "РолиИсполнителейЗадач" с тремя измерениями. Тип измерений понятен по их именам.
Теперь необходимо в свойстве объекта задач выполнить следующие настройки:Описанные настройки на вкладке "Адресация" влияют на поведение системы при присвоении исполнителя задачам, создаваемым бизнес-процессом. Немного подробнее:
- Параметр "Адресация" используется для указания таблицы, в которой настраивается адресация задач.
- Свойство "ТекущийПользователь" ссылается на значение, в котором сохраняется текущий исполнитель для задачи (в нашем примере это текущий пользователь).
- Основной реквизит адресации выбирается из реквизитов адресации задачи. Значение этого реквизита будет заполнятся системой при автоматическом создании задачи из текущего исполнителя.
Стоит отметить еще один важный момент: при создании реквизитов адресации, которые будут заполнятся бизнес-процессом автоматически, необходимо установить соответствие их и измерений таблицы адресации.
На этом настройка объекта "Задачи" завершена. Теперь мы можем перейти непосредственно к созданию бизнес-процесса.
Шаг №4: Создаем бизнес-процесс
Четвертый шаг — он важный самый. Теперь мы начинаем работать непосредственно с бизнес-процессом. Создаем новый объект конфигурации "БизнесПроцесс" в ветке "Бизнес-процессы".
В нем мы добавили реквизит "ОплатаИзКассы" с типом "Булево", чтобы перед стартом бизнес-процесса указать способ выплаты (через банк или кассу). Значение именно этого реквизита будет указывать на какую точку действия необходимо перейти на карте маршрута.
В свойствах бизнес-процесса на вкладке "Основные" укажем для свойства "Задачи" созданный нами ранее объект задач.
Теперь необходимо создать карту маршрута бизнес-процесса в соответствии со схемой, показанной в начале статьи. Для этого перейдем на вкладку "Прочее" и выполним команду "Карта маршрута".
Начертить простую карту маршрута может любой, даже тот, кто впервые зашел сюда. Интуитивно понятная панель инструментов позволяет создавать даже сложные карты маршрута бизнес-процессов. Единственная сложность, которая может возникнуть — это настройка точек маршрута в отношении проделываемых действий. В нашем примере для точек действий нужно установить значения реквизитов адресации.
На скриншоте выше показана точка действия, задачи по которой приходят всем сотрудникам подразделения "Бухгалтерия". Соответственно, настройки адресации для нее будут выглядеть следующим образом:
Мы еще вернемся к настройке адресации. Коснемся точки условия. Для нее нам не нужно настраивать параметры адресации, единственное условие для ее работы — описать обработчик проверки условия.
Программный код обработчика приведен на следующем листинге:
И последний штрих для объекта бизнес-процесса. Добавим собственную основную форму объекта. На ней будем отображать текущее состояние карты маршрута для бизнес-процесса. Для этого добавим новый реквизит формы "Карта" с типом "ГрафическаяСхема" и поместим для него элемент на форму с типом "Поле графической схемы". Для отображения текущего состояния карты маршрута на форму добавим команду "ОбновитьКарту" и соответствующую ей кнопку.
При нажатии на кнопку "Обновить карту" будет выполнен следующий программный код:
Примечание: конвертировать объект формы в объект бизнес-процесса необходимо для вызова метода "ПолучитьКартуМаршрута()", поскольку объект формы не поддерживает его.
Шаг №5: Список задач
На этом этапе выведем на панель рабочего стола список задач для текущего пользователя. Для этого будем использовать виртуальную таблицу объекта задач — "ПоИсполнителю". Создадим новую форму списка "РабочийСтол", при этом не будем устанавливать ее основной. Откроем ее в редакторе форм и в качестве основной таблицы для динамического списка (реквизит формы "Список") изменим основную таблицу.
После этого добавим созданную форму в рабочую область рабочего стола.
Теперь перейдем к последнему этапу — настройки регистра адресации задач в режиме 1С:Предприятие.
Шаг №6: Настройка адресации
6) Настройка регистра адресации задач — очень важный этап. Запустим программу в режиме предприятия и перейдем в таблицу регистра адресации задач. Создадим там следующие записи:
А теперь подробнее. Первая запись с заполненным измерением "Пользователь" говорит системе, что если для точки действия на карте маршрута в качестве исполнителя установлен пользователь "Сидоров", то задача адресуется непосредственно ему. Если бы мы заполнили измерение "Должность" или "Подразделение", то задача бы пришла к пользователю только в том случае, если адресация точки маршрута была настроена аналогичным образом.
Если рассмотрим шестую запись из таблицы, где заполнены все измерения, то мы можем заключить следующее: задача пользователю "Бухгалтер" придет только в том случае, если для точки действия установлены в параметрах адресации подразделение — "Бухгалтерия" и должность — "Кассир". В текущем примере для этого условия удовлетворяет одна точка действия:
Обратите внимание, что поле "Пользователь" не заполнено, поскольку мы точно не знаем какому конкретно пользователю нам необходимо адресовать задачу. В соответствии с данной настройкой, задача придет для пользователей, для которых настроены подобные записи в регистре адресации:
Таким образом, основной принцип работы механизма адресации платформы заключается в следующем: задача адресуется пользователю в соответствии со значением основного реквизита адресации в объекте конфигурации "Задача", если совпадают значения остальных измерений регистра адресации (кроме связанного с основным реквизитом адресации) и значений адресации на точке маршрута бизнес-процесса.
На этом задача решена. Проведем небольшое тестирование.
Тестируем
В режиме предприятия выполним старт нового бизнес-процесса.
В соответствии с правилами адресации точки маршрута "Заказ товара", задача должна поступить пользователям, для которых в регистре адресации создана запись с подразделением "Бухгалтерия" и пустым измерением "Должность". В нашем примере это пользователь "Бухгалтер" и "Кассир". Запустим программу от пользователя "Бухгалтер" и на рабочем столе видим новую задачу.
Тест завершен, все работает.
Механизм бизнес-процессов теперь используется во многих типовых конфигурациях. Даже в задачах для сертификации "1С:Специалист" по платформе имеется отдельный блок задач по бизнес-процессам.
Но несмотря на привлекательность данного механизма, во многом он остается неудобным с точки зрения разработки в таких моментах, как программное формирование карты маршрута и связь объекта бизнес-процесса с другими объектами конфигурации. Конечно, есть способы программной работы с картами маршрута, которые предлагают участники сообщества, но все же они не всегда подходят.
Мы не рассмотрели многие нюансы, так как это уже выходит за рамки публикации. Есть что добавить? Знаете интересные публикации по этой теме? Добро пожаловать в комментарии!
Ставьте лайки, подписывайтесь на канал 🙂
Другие ссылки
Авторские разработки
Анализ производительности APDEX — отчет для просмотра и анализа замеров производительности в конфигурациях на базе БСП.
Путеводитель по истории релизов — отчет по истории выпуска релизов продуктов фирмы "1С" и анализа информации по обновлениям.
Просмотр и анализ структуры базы данных (отчет на СКД) — отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.
Просмотр и анализ журнала регистрации (отчет на СКД) — отчет на базе системы компоновки данных (СКД) для просмотра записей журнала регистрации.
Обозреватель криптографии — отчет для просмотра доступных провайдеров и сертификатов криптографии на сервере и клиенте.
Пакетная выгрузка / загрузка внешних отчетов и обработок — пакетная выгрузка / загрузка внешних отчетов и обработок для массовый манипуляций с ними.
Командный интерпретатор для 1С — инструмент для выполнения команд CMD / PowerShell из 1С.