Бизнес-процессы в 1С:Предприятии предназначены для
объединения отдельных операций в цепочки взаимосвязанных действий, приводящих к
достижению конкретной цели. Например, цепочку по выписке счета, приему наличной
оплаты и отпуску товара со склада можно представить как бизнес-процесс «Продажа
товара за наличный расчет».
Бизнес-процессы в
1С:Предприятии позволяют формализовать процедуры обработки тех или иных
событий, возникающих в деятельности организации и обеспечить участие в них
исполнителей.
Применение
механизмов бизнес-процессов в прикладных решениях позволяет повысить их
эффективность, улучшить конечный результат и получить новые возможности.
Бизнес-процессы
дают возможность перейти к процессному управлению и качественно улучшить
деятельность предприятия за счет реинжиниринга и автоматизации
бизнес-процессов.
Наиболее
эффективно автоматизация ключевых бизнес-процессов, которые начинаются и
заканчиваются во внешней, по отношению к организации среде.
Цепочки
взаимосвязанных действий бизнес-процесса представляются с помощью карты маршрута бизнес-процесса. Карта маршрута описывает
логику бизнес-процесса и весь его жизненный цикл от точки старта до точки
завершения в виде схематического изображения последовательности прохождения
взаимосвязанных точек маршрута.
Точка маршрута — отражает этап жизненного цикла бизнес-процесса, связанный
с выполнением как правило одной автоматической или ручной операции.
Задачи в 1С:Предприятии позволяют вести учет заданий по
исполнителям и служат отражением продвижения бизнес-процессов по точкам
маршрута. При этом задачи могут создаваться не только бизнес-процессами, но и
другими объектами информационной базы и непосредственно пользователями.
Механизм
бизнес-процессов в 1С:Предприятии обеспечивается сразу несколькими объектами
конфигурирования:
·
Бизнес-процессы
·
Задачи
·
Регистр сведений
·
Параметр сеанса
Как правило, типы
реквизитов адресации задачи и измерений регистра сведений имеют ссылочный тип
(например, СправочникСсылка, поэтому к четырем вышеперечисленным видам
добавляется еще справочники).
Основные
объекты – бизнес-процессы и задачи взаимодействуют с друг другом
(например, бизнес-процесс создает задачи, а задача в процессе выполнения
приводит к продвижению его по маршруту).
Вспомогательные
объекты – параметр сеанса, регистр сведений и справочники не используют
друг друга и основные объекты.
При создании карты
маршрута бизнес-процесса используются справочники с предопределенными данными
(ролями, подразделениями и пр.) для установки их значений в свойства адресации
точек маршрута. Бизнес-процессы создают задачи при переходе на точки маршрута и
используют Адресацию (регистр сведения, см. ниже)
для обработки групповых точек.
Задачи сообщают
бизнес-процессам о своем выполнении, чем вызывают их продвижение дальше по
маршруту. Регистр сведения используется ими для отбора задач для текущего
исполнителя в соответствии с установленным параметром сеанса.
Бизнес-процессы в
1С:Предприятии допускают следующие виды маршрутизации:
·
Жесткая. Бизнес-процесс имеет строгую карту маршрута, не
включающую в себя условных и параллельных переходов, с жестко определенными
адресатами для каждой точки маршрута. Данный вид не допускает свободной и
условной маршрутизация.
·
Свободная. Адресаты точки карты маршрута бизнес-процесса не
установлены и определяются программно или интерактивно в течении жизненного
цикла бизнес-процесса.
·
Условная. Карта маршрута предусматривает проверку
условий и переход по соответствующим ветвям. Переходы могут быть как
бинарными (условие), так и множественными (выбор варианта).
·
Параллельная. Карта маршрута предусматривает разделение
бизнес-процесса на параллельные ветви с возможностью последующего слияния
(ожидания). Продвижение бизнес-процесса по каждой из параллельных ветвей
происходит независимо по мере выполнения соответствующих задач.
Как правило, в
реальных картах бизнес-процессов встречаются все эти типы маршрутизации.
Ключевым понятием
в механизме бизнес-процессов и задач в 1С:Предприятии является система
адресации. Основное назначение системы адресации — обеспечить возможность
не только персональной, но и ролевой адресации задач участникам
бизнес-процессов.
Ролевая адресация (ролевая маршрутизация) — набор
правил и соглашений, зафиксированных в настройках объектов метаданных, который
позволяет определять конечного адресата (исполнителя), исходя из назначенных
ему ролей, принадлежности к подразделению, а также других реквизитов адресации.
Реквизиты
адресации задачи задают размерность адресного пространства в контексте
автоматизируемой предметной области и используются для определения
принадлежности задач конкретным исполнителям.
Определение
конкретного исполнителя осуществляется с помощью свойств задачи – Адресация, Основной реквизит адресации
и Текущий исполнитель.
Процесс
определения основного реквизита адресации из остальных реквизитов адресации
называется разыменованием.
Адресация — регистр сведений, который хранит
актуальную на текущий момент информацию о соответствии исполнителей (основной
реквизит адресации) структурным подразделениям, рабочим группам, выполняемым
функциям и т.д., т.е. всем остальным реквизитам адресации задач.
Один из реквизитов
адресации задачи является основным и означает
конкретного сотрудника – исполнителя заданий.
Поясним на примере
работу системы адресации.
Допустим, что есть регистр сведений, состоящий из двух
измерений – роль и сотрудник, в который внесены следующие записи:
Роль |
Сотрудник |
Кассир |
Иванов |
Менеджер |
Петров |
Допустим, что есть бизнес-процесс (например, «Принять
наличную оплату»), в одной из точек которого в свойствах адресации установлена
только роль «Кассир». При переходе бизнес-процесса на эту точку будет
сформирована одна задача:
Свойство задачи |
Значение |
Наименование |
Принять наличную оплату |
Роль |
Кассир |
Сотрудник |
- |
При
просмотре сотрудником Ивановым списка задач для себя система адресации покажет
ему эту задачу, т.к. в регистре сведений есть запись о том, что для Иванова установлена
роль «Кассир». Сотрудник Петров эту задачу не увидит.
Приведем примерную
последовательность действий для создания двух различных бизнес-процессов.
Будем исходить из
того, что выбрана 3-х мерная система адресации – сотрудник, роль, подразделение.
1. Создадим справочники для каждого из планируемых
измерений адресации (Сотрудники, Роли, Подразделения) и заполним их
предопределенными значениями, например:
Сотрудники |
Роли |
Подразделения |
Иванов |
Кассир |
Бухгалтерия |
Петров |
Менеджер |
Отдел продаж |
Сидоров |
Руководитель отдела |
Склад |
1.
Создадим регистр сведений и
добавим к нему измерения, по одному для каждого из ранее созданных
справочников. Тип измерений следует установить как ссылку на соответствующий
справочник, например:
Измерение |
Тип |
Сотрудник |
СправочникСсылка.Сотрудники |
Роль |
СправочникСсылка.Роль |
Подразделение |
СправочникСсылка.Подразделения |
2. Создадим параметр сеанса «Текущий Исполнитель» и
установим ему тип СправочникСсылка.Сотрудники.
3. Проинициализируем параметр сеанса при запуске
системы, например:
Процедура
ПриНачалеРаботыСистемы()
ПараметрыСеанса.ПараметрТекущийИсполнитель =
Справочники.Исполнители.НайтиПоНаименованию(ИмяПользователя());
КонецПроцедуры
4. Создадим задачу.
5. Установим созданный ранее регистр сведений в свойство
задачи Адресация.
6. Добавим к задаче реквизиты адресации аналогично
измерениям регистра сведений – Сотрудник, Роль, Подразделение.
7.
Установим для созданных
реквизитов адресации задачи тип в виде ссылки на соответствующий справочник, и
в свойстве Измерение адресации установим ссылку на измерение регистра
сведений.
Реквизит адресации |
Тип |
Измерение адресации |
Сотрудник |
СправочникСсылка.Сотрудники |
Сотрудник |
Роль |
СправочникСсылка.Роль |
Роль |
Подразделение |
СправочникСсылка.Подразделения |
Подразделение |
8. Выберем реквизит «Сотрудник» в качестве главного
реквизитом адресации, установив его в соответствующем свойстве задачи.
9. Создадим первый бизнес-процесс и установим у него
ссылку на созданную ранее задачу (свойство Задача).
10. Спроектируем маршрутную карту бизнес-процесса
устанавливая нужные реквизиты адресации для точек маршрута, выбирая их из
предопределенных данных соответствующих справочников.
11. Создадим следующий бизнес-процесс и установим у него
ссылку на эту же задачу.
12. Спроектируем маршрутную карту созданного
бизнес-процесса. И так далее...
В дальнейшем будем
использовать этот пример для комментирования ключевых особенностей
бизнес-процессов в 1С:Предприятии.
Рассмотрим
подробнее несколько ключевых особенностей механизма бизнес-процесса.
Задачи формируются
только при поступлении бизнес-процесса на точки действия или точки вложенных
бизнес-процессов. При прохождении других точек (условный перехода, разделение,
слияние, обработка и пр.) бизнес-процесс автоматически выполняет
предусмотренные действия и переходит к следующей точке в соответствии с картой
маршрута.
Рассмотрим,
например процесс перехода бизнес-процесса на первую точку действия в результате
вызова у него метода Старт().
При прохождении
маршрута бизнес-процесс на точках действия или точках вложенных
бизнес-процессов может создавать одну или несколько задач. Несколько задач
будут сформированы в том случае, если у точки маршрута установлен признак
«групповая». В этом случае бизнес-процесс отбирает в регистре сведений (Адресация) все записи, соответствующие установленным в
данной точке реквизитам адресации, и для каждой из них формирует свою задачу.
Например, если в точке маршрута установлена адресация только по роли «Кассир»,
а в регистре сведений имеется две записи вида:
Сотрудник |
Роль |
Подразделение |
Иванов |
Кассир |
|
Петров |
Кассир |
|
то будут
сформированы две задачи у которых будут установлены оба реквизита адресации – и
роль, и конечный исполнитель.
Таким образом для
групповых точек маршрута ролевая маршрутизация применяется только один раз – в
момент формирования списка задач.
Рассмотрим
последовательность вызова обработчиков событий на встроенном языке в момент
перехода на первую точку маршрута «Выписка счета»:
№ |
Внутренний механизм |
Обработчики на
встроенном языке |
1 |
Начало транзакции |
|
2 |
|
Вызов обработчика ПередСозданиемЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, СтандартнаяОбработка) |
3 |
Формирование списка задач |
|
4 |
|
Вызов обработчика ПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ) |
5 |
Запись всех сформированных задач |
|
6 |
|
Вызов обработчика ПередЗаписью() у
задачи |
7 |
Запись задачи |
|
8 |
|
Вызов обработчика ПриЗаписи() у задачи |
9 |
Завершение транзакции |
|
На 2-ом
шаге происходит вызов обработчика ПередСозданиемЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, СтандартнаяОбработка).
Этот обработчик вызывается до формирования списка задач самим бизнес-процессом,
поэтому ему передается пустой массив формируемых задач с тем, чтобы его можно
было сформировать самостоятельно и отказаться от стандартной обработки.
На 3-ем
шаге бизнес-процесс проверяет если предыдущий обработчик вернул СтандартнаяОбработка = Истина, то производится
разыменование установленных в точке маршрута реквизитов адресации и формируется
одна задача или список задач (для групповой точки) по количеству результатов
разыменования (например количество сотрудников отдела). При этом каждой
сформированной задаче устанавливается наименование, ссылка на бизнес-процесс и
точку маршрута и соответствующие реквизиты адресации.
На 4-ом шаге
осуществляется вызов обработчика ПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ). В этот
обработчик передается список задач сформированный ранее в обработчике ПередСозданиемЗадач()
или самим бизнес-процессом. Задачи еще не записаны. В этом обработчике можно
предусмотреть тонкую настройку сформированных задач – установку контрольного
срока, приоритета и других дополнительных реквизитов. Также в этом обработчике
можно добавить к массиву сформированных задач новые задачи.
На 5-ом шаге
проверяется нормальное завершение обработчика ПриСозданииЗадач().
Если обработчик в параметре Отказ
вернул значение Истина, то процесс
создания задач прерывается и вызывается исключение. В нашем случае это приведет
к отмене выполнения метода Старт().
Если же Отказ = Ложь, то производится запись
всех задач из сформированного массива с вызовом обработчиков ПередЗаписью()
и ПриЗаписи() у каждой
отдельной задачи (шаги 6 и 8 соответственно).
При формировании
бизнес-процессом массива задач них автоматически заполняются следующие
реквизиты:
·
наименование устанавливается
равным наименованию соответствующей точки маршрута, например «Выписка счета»;
·
ссылка на экземпляр
бизнес-процесса, породившего эту задачу;
·
ссылка на точку маршрута
бизнес-процесса;
·
реквизиты адресации задачи
устанавливаются равными реквизитам адресации соответствующей точки
маршрута. Например точка маршрута адресована роли «Кассир», то в реквизит
адресации задачи «Роль» будет установлено «Кассир».
Интерактивная
активация бизнес-процесса происходит в следующих случаях:
·
Нажатие кнопки «ОК»
в форме нового объекта бизнес-процесса, что приводит к записи, старту и
интерактивной активации бизнес-процесса;
·
Выбор пункта «Действия —
Активировать»;
·
Вызов метода АктивироватьИнтерактивно() у объекта бизнес-процесса на встроенном языке.
При
этом выполняется следующая последовательность действий:
№ |
Внутренний механизм |
Обработчики на
встроенном языке |
1 |
|
Вызов обработчика ОбработкаИнтерактивнойАктивации(СтандартнаяОбработка)
у бизнес-процесса. Если СтандартнаяОбработка
изменена, то дальнейшая обработка прекращается. |
2 |
Получение списка всех невыполненных задач по данному
бизнес-процессу и по текущему исполнителю. |
|
3 |
|
Вызов обработчика ОбработкаИнтерактивнойАктивации(СтандартнаяОбработка) у
задачи. Если СтандартнаяОбработка
изменена, то дальнейшая обработка прекращается. |
4 |
|
Вызов обработчика ОбработкаИнтерактивнойАктивации(ТочкаМаршрутаБизнесПроцесса, Задача, СтандартнаяОбработка) у соответствующей точки
маршрута. |
Использование
интерактивной активации бизнес-процесса позволяет упростить переход к
выполнению задач при работе со список м бизнес-процессов или при старте новых
бизнес-процессов.
Интерактивная
активация задачи происходит в следующих случаях:
·
Двойной щелчок мыши или нажатие
клавиши Enter в списке задач (если иное
не предусмотрено в конфигурации).
·
Выбор пункта «Действия —
Активировать» списка задач;
·
Вызов метода АктивироватьИнтерактивно() у объекта задачи на встроенном языке
·
Вызов метода АктивироватьИнтерактивно() у соответствующего бизнес-процесса задачи на
встроенном языке (см. выше).
При
этом выполняется следующая последовательность действий:
№ |
Внутренний механизм |
Обработчики на
встроенном языке |
1 |
|
Вызов обработчика ОбработкаИнтерактивнойАктивации(СтандартнаяОбработка)
у задачи. Если СтандартнаяОбработка
изменена, то дальнейшая обработка прекращается. |
2 |
|
Вызов обработчика ОбработкаИнтерактивнойАктивации(ТочкаМаршрутаБизнесПроцесса, Задача, СтандартнаяОбработка) у
соответствующей точки маршрута. Если СтандартнаяОбработка изменена, то дальнейшая
обработка прекращается. |
3 |
Открытие формы объекта или переход к редактированию
объекта в списке. |
|
Как правило, «ОбработкаИнтерактивнойАктивации»
указывается в точке маршрута при проектировании карты бизнес-процесса и
используется для открытия форм документов (например, счет) или других объектов
информационной базы, обработка которых предусмотрена данной задачей (например,
согласование скидки по счету).
Интерактивное
выполнение задач происходит при вызове команды «Выполнить» в списке задач или
форме объекта задачи, если иное не предусмотрено конфигурацией.
При этом
выполняется следующая последовательность действий:
№ |
Внутренний механизм |
Обработчики на
встроенном языке |
1 |
|
Вызов обработчика ПередИнтерактивнымВыполнением(Отказ) у задачи. |
2 |
|
Вызов обработчика ПередИнтерактивнымВыполнением(ТочкаМаршрутаБизнесПроцесса, Задача, Отказ) у
соответствующей точки маршрута. |
3 |
Начало транзакции |
|
4 |
|
Вызов обработчика ПередВыполнением(Отказ) у задачи. |
5 |
|
Вызов обработчика ПередВыполнением(ТочкаМаршрутаБизнесПроцесса, Задача, Отказ) у
соответствующей точки маршрута. |
6 |
Установка свойства Выполнена у задачи равным «Истина» |
|
7 |
|
Вызов обработчика ПриВыполнении(Отказ) у задачи. |
8 |
Запись объекта задачи |
|
9 |
|
Вызов обработчика ПриВыполнении(ТочкаМаршрутаБизнесПроцесса, Задача, Отказ) у
соответствующей точки маршрута. |
10 |
Завершение транзакции |
|
Если
хоть в одном из обработчиков Отказ
установлен равным Истине, то
дальнейшая обработка выполнения прекращается и задача не помечается как
выполненная. Если при этом были начаты транзакции, то они отменяются.
Видно, что до
начала транзакции вызываются два обработчика ПередИнтерактивнымВыполнением() для задачи и
точки маршрута. В этих обработчиках можно предусмотреть интерактивное
взаимодействие с пользователем для получения дополнительной информации,
необходимой для выполнения задачи или продвижения бизнес-процесса дальше по
маршруту.
Вызов
неинтерактивного метода Выполнить()
у объекта задачи из встроенного языка приводит к выполнению шагов с 3-го по
10-ый из приведенной выше таблицы.
Выполнение задач
осуществляется не только пользователями, но и автоматизированными процедурами.
Например, если задача предусматривает проведение документа, то автоматическая
процедура слежения за такими задачами может определять, что нужный документ уже
проведен и помечать задачу как выполненную путем вызова у нее метода Выполнить().
Для организации
такого рода автоматизированных процедур предназначен метод ПроверкаВыполнения() у задачи и
соответствующие ему обработчики у точек маршрута.
Рассмотрим
последовательность действий, которая произойдет в результате работы
следующего кода на встроенном языке:
Если
Задача.ПроверитьВыполнение() Тогда
Задача.ВыполнитьЗадачу();
КонецЕсли
№ |
Внутренний механизм |
Обработчики на
встроенном языке |
1 |
Обработка вызова метода ПроверитьВыполнение() |
|
2 |
|
Вызов обработчика ОбработкаПроверкиВыполнения(Результат) у задачи.
Если Результат равен Ложь, то метод ПроверитьВыполнение()
сразу возвращает Ложь. |
3 |
|
Вызов обработки ОбработкаПроверкиВыполнения(ТочкаМаршрутаБизнесПроцесса, Задача, Результат) у
соответствующей точки маршрута. |
4 |
Возврат результат вызова обработчика из предыдущего
пункта и, если он равен Истина,
то вызов метода ВыполнитьЗадачу() |
|
Один из
способов использования автоматизированного выполнения задач описан в параграфе
«Обратная связь».
При проектировании
маршрутной карты можно предусматривать старт вложенных бизнес-процессов. В этом
случае основной бизнес-процесс ждет завершения вложенного бизнес-процесса и
только после этого переходит к следующей точке маршрута.
При переходе на
точку маршрута вида «Вложенный бизнес-процесс» выполняется следующая
последовательность действий
№ |
Внутренний механизм |
Обработчики на
встроенном языке |
1 |
Начало транзакции |
|
2 |
|
Вызов обработчика ПередСозданиемЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, СтандартнаяОбработка)
для точки маршрута. |
3 |
Если СтандартнаяОбработка,
то формируется массив задач. |
|
4 |
|
ПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ) |
5 |
Запись массива сформированных задач и создание массива
вложенных бизнес-процессов. |
|
5 |
|
ПриСозданииВложенныхБизнесПроцессов(ТочкаМаршрутаБизнесПроцесса, ФормируемыеПроцессы, Отказ) |
6 |
Запись и страт сформированных бизнес-процессов |
|
7 |
Завершение транзакции |
|
Рассмотрим
подробнее.
На 2-ом шаге
происходит вызов обработчика ПередСозданиемЗадач.
В него передается пустой, еще не сформированный массив задач. Если этот
обработчик не изменит СтандартнуюОбработку,
то сформированный им массив задач будет очищен ан 3-ем шаге и заполнен одной
задачей с установленным наименование и ссылками на бизнес-процесс и точку
маршрута.
На 4-ом шаге можно
донастроить сформированные задачи и добавить к ним новые, в случае необходимости.
На 5-ом шаге
происходит запись сформированных задач, после чего по каждой из них создается
вложенный бизнес-процесс установленного в точке маршрута типа. У созданных
бизнес-процессов устанавливается дата и ссылка на ведущую задачу.
Завершение
является последним этапом в жизненном цикле бизнес-процесса. Бизнес-процесс
автоматически становится завершенным (свойству Завершен
устанавливается значение Истина)
при достижении точки завершения и при условии отсутствия невыполненных задач по
этому бизнес-процессу.
Если у
бизнес-процесса установлено свойство ведущая задача, т.е. он является
вложенным, то при своем завершении он помечает эту задачу как выполненную. Это,
в свою очередь, приводит к продвижению основного бизнес-процесса дальше по
маршруту.
При переходе на
точку завершения вызывается обработчик ПриЗавершении(ТочкаМаршрутаБизнесПроцесса, Отказ). Если он
установит Отказ равным Истине, например если не выполнены
все необходимые условия завершения бизнес-процесса, то обработка прерывается.
Задача по точке маршрута, выполнение которой привело к переходу на точку
завершения при этом остается невыполненной.
Установка свойству
Завершен значения Истина (средствами встроенного языка или
интерактивно) может использоваться для прерывания хода бизнес-процесса или для
исключения его из списка активных (незавершенных) бизнес-процессов. При этом
никакие обработчики кроме ПередЗаписью
и ПриЗаписи не вызываются.
Выполнение ведущей задачи при этом не производится.
Предопределенные
реквизиты бизнес-процессов:
Реквизит |
Тип |
ПометкаУдаления |
Булево |
Номер |
Строка
или Число |
Дата |
Дата |
Завершен |
Булево |
ВедущаяЗадача |
ЗадачаСсылка.<Имя задачи> |
Предопределенные
реквизиты задач:
Реквизит |
Тип |
ПометкаУдаления |
Булево |
Номер |
Строка
или Число |
Дата |
Дата |
Наименование |
Строка |
Выполнена |
Булево |
БизнесПроцесс |
Любая ссылка |
ТочкаМаршрута |
Любая ссылка |
Наличие нескольких
точек старта предполагает, что выбор конкретной точки для старта определяется
внешними, по отношению к бизнес-процессу условиями.
Если же
бизнес-процесс обладает всей необходимой информацией чтобы при старте
самостоятельно принять решение о выборе того или иного маршрута, то достаточно
одной точки старта, следом за которой будет идти точка проверки
условия или точка выбора варианта.
Если
бизнес-процесс имеет несколько точек старта, то при вызове метода Старт
необходимо указать конкретную точку, в противном случае будет выдано сообщение
об ошибке. Поэтому при создании бизнес-процесса с несколькими точками старта
необходимо:
·
Переопределить команду Старт в
форме списка и в форме объекта бизнес-процесса
·
Переопределить кнопку «ОК» в
форме объекта бизнес-процесса
·
Если данный бизнес-процесс
является вложенным для других бизнес-процессов, то в соответствующих точках
маршрута нужно прописать обработчик
ПриСозданииВложенныхБизнесПроцессов(ТочкаМаршрутаБизнесПроцесса,
ФормируемыеПроцессы, Отказ) так, чтобы записывать и стартовать с нужной точки
все бизнес-процессы из массива сформированных. Например:
Процедура ВложенноеСогласованиеПриСозданииВложенныхБП(ТочкаМаршрутаБП,
ФормируемыеПроцессы, Отказ)
Для каждого БизнесПроцесс из ФормируемыеПроцессы
БизнесПроцесс.Записать();
Точки =
БизнесПроцессы.СогласованиеДокумента.ТочкиМаршрута;
БизнесПроцесс.Старт(Точки.УпрощенноеСогласование);
КонецЦикла
КонецПроцедуры
В остальном
использование бизнес-процессов с несколькими точками старта ничем не отличается
от обычных бизнес-процессов.
Другие объекты
информационной базы (документы, элементы справочников) вовлекаются в
бизнес-процессы и влияют на них.
Для эффективного
использования механизма бизнес-процессов возникает необходимость автоматически
выполнять соответствующие задачи при выполнении требуемых операций с другими
объектами информационной базы (например, при проведении документа, при
установке скидки по выписанному счету, при резервировании товара на складе и
т.д.)
Важной
особенностью механизма бизнес-процессов в 1С:Предприятии является то, что он не
требует существенного изменения используемых прикладных решений. Поэтому
реакция бизнес-процессов и задач на изменение других объектов информационной
базы может настраивается без существенного изменения этих объектов.
Рассмотрим
сказанное на примере. Допустим, что задача требует проведения документа и нужно
чтобы при проведении документа она выполнялась автоматически и пользователю не
требовалось открывать список задач, находить в нем нужную задачу и выполнять
ее.
Для этого
последовательно выполним следующие действия:
1. Добавим
оповещение в форму документа:
Процедура
ПослеЗаписи(Отказ)
Если БылоПроведение Тогда
Оповестить("ПроведениеДокумента", , ЭтотОбъект.Ссылка);
КонецЕсли;
КонецПроцедуры
2. Создадим
обработчик ожидания:
Процедура
ОбработчикПроведенияДокумента(ИмяСобытия,
Параметр, Источник) Экспорт
Если ИмяСобытия = "ПроведениеДокумента" Тогда
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Парам", Источник);
Запрос.Текст =
"ВЫБРАТЬ
| Ссылка
|ИЗ
| Задача.Задача.ЗадачиПоИсполнителю
|
|ГДЕ
| Документ = &Парам";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ТекущаяЗадача =
Выборка.Ссылка.ПолучитьОбъект();
Если ТекущаяЗадача.ПроверитьВыполнение()
Тогда
ТекущаяЗадача.ВыполнитьЗадачу();
КонецЕсли
КонецЦикла;
КонецЕсли;
КонецПроцедуры
3. Зарегистрируем
обработчик оповещения, например в момент открытия списка задач:
ПодключитьОбработчикОповещения("ОбработчикПроведенияДокумента");
Другим способом
автоматизированного выполнения задач является создание и подключение
обработчика оповещения, который будет отбирать все задачи по нужному
исполнителю, проверять их выполнение и, в случае успешной проверки, автоматически
выполнять их.
Рассмотрим
специфические особенности конфигурирования объектов бизнес-процессов и задач.
В процессе
конфигурирования может быть создано произвольное количество видов
бизнес-процессов. Назначение каждого бизнес-процесса определяет его структуру и
свойства, которые описываются в конфигурации.
Конфигуратор
позволяет описать структуру бизнес-процесса, создать формы и карту маршрута
бизнес-процесса.
Свойства
бизнес-процессов редактируются в палитре свойств или окне редактирования
объекта (см. параграф «Окно редактирования объекта»).
Наряду с общими
свойствами, присущими всем объектам метаданных, бизнес-процессы обладают рядом
специфических свойств.
Задачи. Свойство определяет ссылку на сконфигурированный ранее
объект задачи. Бизнес-процессу обязательно должна быть назначена одна задача из
числа уже существующих в конфигурации. Задачи используются бизнес-процессом для
формирования заданий по исполнителям или для запуска вложенных
бизнес-процессов. Если задач не назначена, то при сохранении конфигурации базы
данных будет выдана ошибка «Не выбрана задач бизнес-процесса». Редактирование
этого свойства в секции «Данные» палитры свойств или на закладке «Основные»
окна редактирования объекта.
Автонумерация. Установка свойства приводит к тому, что
вновь введенному бизнес-процессу номер будет присваиваться автоматически.
Автоматически присвоенный номер можно исправить.
Длина номера. Устанавливает максимальную длину номера
бизнес-процесса. Конфигуратор позволяет установить длину номера равной 0, если
в бизнес-процессе данного вида номер не используется.
Тип номера. Свойство позволяет выбрать тип значения для
номера бизнес-процесса — Число или Строка. Это свойство аналогично свойству «Тип номера»
документа (см. параграф «Индексирование реквизитов объектов»).
Выбор строкового
типа кода бывает полезен, когда используется сложная система нумерации, и номер
может включать, помимо цифр, также буквы и символы-разделители.
Контроль уникальности. Если это свойство установлено, то
при вводе нового бизнес-процесса его номер проверяется на уникальность в
пределах, установленных в свойстве Периодичность.
Периодичность. Свойство устанавливает пределы контроля
уникальности номеров бизнес-процессов и период повторяемости номеров. Если свойство
Контроль уникальности, то в свойстве Периодичность указывается, в каких пределах будет
осуществляться этот контроль.
При установленном
свойстве Автонумерация система «1С:Предприятие»
будет присваивать очередной порядковый номер каждому новому бизнес-процессу.
После завершения периода, установленного в свойстве Периодичность,
нумерация бизнес-процессов начнется с 1.
Помимо основных
реквизитов, можно создать набор реквизитов,
позволяющих хранить дополнительную информацию.
Если объект предметной
области, которой соответствует бизнес-процесс, имеет не только такие «простые»
свойства, как, например, дату, номер важность или контрольный срок, но и
составные (списочные) свойства как, например, список документов на
согласование, список резолюций, список участников бизнес-процесса,
бизнес-процессу может быть создан набор табличных частей.
Карта маршрута
описывает логику бизнес-процесса и весь его жизненный цикл от точки старта до
точки завершения в виде схематического изображения последовательности
прохождения взаимосвязанных точек маршрута.
Для редактирования
карты маршрута на закладке «Прочее» окна редактирования бизнес-процесса нажмите
кнопку «Карта маршрута».
Объекты типа
«Задачи» предназначены для выдачи и исполнения заданий пользователями системы.
Задания могут формироваться как самими пользователями так и конкретными
бизнес-процессами.
Задачи могут
применяться самостоятельно или использоваться для обеспечения функционирования
бизнес-процессов разного вида. Нельзя создать бизнес-процесс, не выбрав для
него ссылку вид задач которые он будет использовать для формирования конкретных
заданий по исполнителям.
В процессе
конфигурирования может быть создано произвольное количество видов задач,
однако, как правило, задача создается одна для всех видов бизнес-процессов.
Описываемые в
конфигурации структура и свойства задачи определяются особенностями
автоматизируемой предметной области.
Для каждой задачи
может быть создано несколько форм списка, выбора, просмотра и редактирования.
Все задачи
характеризуются номером, датой, временем и наименованием. При формировании
задач бизнес-процессами наименование устанавливается аналогичным наименованию
соответствующей точки маршрута бизнес-процесса.
Свойства задачи
редактируются в палитре свойств или окне редактирования объекта (см. параграф
«Окно редактирования объекта»).
Наряду с общими
свойствами, присущими всем объектам метаданных, задачи обладают рядом
специфических свойств.
Адресация. Задаче может быть назначен непериодический
регистр сведений, с измерениями которого можно связать реквизиты адресации
задачи. Это связывание позволяет определять значение основного реквизита
адресации задачи на основании данных, содержащихся в соответствующем регистре
сведений, что делает возможным не только прямую адресацию задач конкретным
исполнителям, но и ролевую.
Основной реквизит адресации. Один из реквизитов адресации
задачи может быть назначен основным. В этом случае именно в этом реквизите
адресации необходимо будет указывать конкретного исполнителя задания. Если
исполнитель не будет указан, то значение этого реквизита адресации будет
определяться из связанного с задачей регистра сведений (см. свойство Адресация).
Текущий исполнитель. Это свойство устанавливает ссылку на
параметр сеанса в котором будет хранится текущий исполнитель. Это свойство
используется, например, как значение по умолчанию для свойства Исполнитель табличного поля списка задач.
Группа подчиненных объектов Реквизиты адресации
устанавливает набор реквизитов, которые определяют тип и размерность системы
адресации задач этого вида в контексте автоматизируемой предметной области.
Один из этих реквизитов может быть установлен основным (см. свойство Основной реквизит адресации). Реквизиты адресации можно
связать с измерениями регистра сведений. Это связывание используется системой
для определения значения основного реквизита адресации, если оно не указано и
делает возможным не только прямую, но и ролевую адресацию.
Длина номера. Устанавливает максимальную
длину номера задачи.
Тип номера. Свойство позволяет выбрать тип значения для
номера задачи — Число или Строка.
Выбор строкового типа кода бывает полезен, когда используется сложная система
нумерации, и номер может включать, помимо цифр, также буквы и
символы-разделители.
Контроль уникальности. Если это свойство
установлено, то при вводе новой задачи ее номер проверяется на уникальность.
Автонумерация. Установка свойства приводит к тому, что
вновь введенной задаче номер будет присваиваться автоматически. Автоматически
присвоенный номер можно исправить.
Если объект
предметной области, которой соответствует задача, имеет не только такие
«простые» свойства, как, например, дату, номер, важность или контрольный срок
исполнения, но и составные (списочные) свойства как, например, список
документов для согласования, то может быть создан набор табличных частей.