Простейший пример создания бизнес-процессов




















Простой пример создания бизнес-процессов в несколько шагов. Может пригодиться при первом знакомстве с ними или для решении задач экзамена 1С:Специалист по платформе.

Начало

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

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

В случае же, если Вы только начинаете изучение бизнес-процессов, то добро пожаловать! Далее будет очень много картинок! 🙂

Что необходимо

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

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

Шаг за шагом

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

Шаг №1: Добавляем справочники

На первом этапе добавим в конфигурацию необходимые справочники с соответствующими предопределенными элементами.

Заполнение предопределенных элементов мы осуществили в соответствии со значениями адресации задач на карте маршрута (см. выше).

Шаг 2: Сохраняем текущего пользователя

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

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

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

Шаг №3: Создаем задачи

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

Прежде чем настраивать свойства добавленного объекта, нам необходимо создать регистр адресации задач, по содержимому которого система будет определять конечного исполнителя для задачи (пользователя). Для этого добавим регистр сведений "РолиИсполнителейЗадач" с тремя измерениями. Тип измерений понятен по их именам.

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

  1. Параметр "Адресация" используется для указания таблицы, в которой настраивается адресация задач.
  2. Свойство "ТекущийПользователь" ссылается на значение, в котором сохраняется текущий исполнитель для задачи (в нашем примере это текущий пользователь).
  3. Основной реквизит адресации выбирается из реквизитов адресации задачи. Значение этого реквизита будет заполнятся системой при автоматическом создании задачи из текущего исполнителя.

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

На этом настройка объекта "Задачи" завершена. Теперь мы можем перейти непосредственно к созданию бизнес-процесса.

Шаг №4: Создаем бизнес-процесс

Четвертый шаг — он важный самый. Теперь мы начинаем работать непосредственно с бизнес-процессом. Создаем новый объект конфигурации "БизнесПроцесс" в ветке "Бизнес-процессы".

В нем мы добавили реквизит "ОплатаИзКассы" с типом "Булево", чтобы перед стартом бизнес-процесса указать способ выплаты (через банк или кассу). Значение именно этого реквизита будет указывать на какую точку действия необходимо перейти на карте маршрута.

В свойствах бизнес-процесса на вкладке "Основные" укажем для свойства "Задачи" созданный нами ранее объект задач.

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

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

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

Мы еще вернемся к настройке адресации. Коснемся точки условия. Для нее нам не нужно настраивать параметры адресации, единственное условие для ее работы — описать обработчик проверки условия.

Программный код обработчика приведен на следующем листинге:

Процедура ОплатаНаличнымиПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат)

// Если параметр "Результат" равен ИСТИНА,
// то процесс подет по ветке "ДА", и наоборот.

// "ОплатаИзКассы" - реквизит
// бизнес-процесса (см. выше)
Результат = ОплатаИзКассы;

КонецПроцедуры

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

При нажатии на кнопку "Обновить карту" будет выполнен следующий программный код:

// Обработчик команды формы
//
&НаКлиенте
Процедура ОбновитьКарту(Команда)
ОбновитьКартуСервер();
КонецПроцедуры

// Серверная контекстная процедура получения карты
//
&НаСервере
Процедура ОбновитьКартуСервер() маршрута
// Конвертируем объект формы в объект бизнес-процесса
ОбъектБП = РеквизитФормыВЗначение("Объект");
// Вызываем метод получения карты
// маршрута текущего бизнес-процесса
Карта = ОбъектБП.ПолучитьКартуМаршрута();
КонецПроцедуры 

Примечание: конвертировать объект формы в объект бизнес-процесса необходимо для вызова метода "ПолучитьКартуМаршрута()", поскольку объект формы не поддерживает его.

Шаг №5: Список задач

На этом этапе выведем на панель рабочего стола список задач для текущего пользователя. Для этого будем использовать виртуальную таблицу объекта задач — "ПоИсполнителю". Создадим новую форму списка "РабочийСтол", при этом не будем устанавливать ее основной. Откроем ее в редакторе форм и в качестве основной таблицы для динамического списка (реквизит формы "Список") изменим основную таблицу.

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

Теперь перейдем к последнему этапу — настройки регистра адресации задач в режиме 1С:Предприятие.

Шаг №6: Настройка адресации

6) Настройка регистра адресации задач — очень важный этап. Запустим программу в режиме предприятия и перейдем в таблицу регистра адресации задач. Создадим там следующие записи:

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

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

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

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

На этом задача решена. Проведем небольшое тестирование.

Тестируем

В режиме предприятия выполним старт нового бизнес-процесса.

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

Тест завершен, все работает.

Итог

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

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

Мы не рассмотрели многие нюансы, так как это уже выходит за рамки публикации. Есть что добавить? Знаете интересные публикации по этой теме? Добро пожаловать в комментарии!

Ставьте лайки, подписывайтесь на канал 🙂

Другие ссылки

Авторские разработки

15 Comments

  1. aximo

    Юрий, в вашей статье вы пояснили решение 5-ой задачи аттестации «специалист по платформе»))))…

    Reply
  2. YPermitin

    (1) возможно)

    Получается они не изменилась за 6 лет???

    Reply
  3. aximo

    (2) ничего там не изменилось — недавно прошел аттестацию я…

    Reply
  4. YPermitin

    (3) поздралвяю)

    Reply
  5. aximo

    (4) спасибо. время и общество требует бумажное подтверждение

    Reply
  6. YPermitin

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

    Ну думаю пригодиться 🙂

    Reply
  7. SirAlexIT

    Наглядная подача материала, впрочем, как и всегда. Плюсую:)

    Reply
  8. YPermitin

    (7) спасибо! 🙂

    Reply
  9. Fox-trot

    очепятка

    Стоит отменить еще один важный момент: при создании реквизитов
    Reply
  10. YPermitin

    (9) fixed

    🙂

    Reply
  11. gradi

    Вот бы 1С реализовала BPMS в платформе…

    Reply
  12. YPermitin

    (11) думаю, рано или поздно это должно случиться.

    Reply
  13. user813581

    Спасибо за статью.

    Reply
  14. rpashkovsky
    «ОплатаИзКассы» с типом «Булево», чтобы перед стартом бизнес-процесса указать способ выплаты (через банк или кассу). Значение именно этого реквизита будет указывать на какую точку действия необходимо перейти на карте маршрута.

    Так же можно проверять при выполнении задачи

    Reply
  15. YPermitin

    (14) тоже верно

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *