Как найти задачи по бизнес процессу

Здравствуйте.
Установлена 1с документооборот 8.3. Правок в конфигурацию не вносили. Все бизнес процессы настраиваются через пользовательский интерфейс.
5bcb349f0199b059581092.jpeg
Подскажите пожалуйста, как программно получить список задач, которые есть у документа.
Документ нахожу с помощью запроса:

выбрать * из Справочник.ВнутренниеДокументы КАК док где док.РегистрационныйНомер = &ном

Но задач нет.
Нашёл просто задачи тут

ВЫБРАТЬ первые 100 *
ИЗ БизнесПроцесс.Исполнение КАК Исполнение 
Упорядочить по  Дата Убыв

Но как связать не знаю.


  • Вопрос задан

    более трёх лет назад

  • 2588 просмотров

Пригласить эксперта

Ню…
Тебе надо найти какой БП был создан, далее список Задач которые он инициировал.

Для примера открой карточку Внетренного документа, там выводится БП и Задачи.

ВЫБРАТЬ
ЗадачаИсполнителя.БизнесПроцесс,
ЗадачаИсполнителя.Ссылка
ИЗ
Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя


  • Показать ещё
    Загружается…

21 мая 2023, в 17:53

150000 руб./за проект

21 мая 2023, в 17:17

10000 руб./за проект

21 мая 2023, в 17:15

4000 руб./за проект

Минуточку внимания

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

Он должен писать в реквизит из прошлой задачи. Но еще не известно будет ли она в будущем. Ты карту маршрута используешь?

Спасибо за ответ. Но я не понял. 🙂 В реквизите текущий задачи должна быть ссылка на предыдущую? А где и как эту ссылку туда записать?

Конечно карту маршрута использую.

Тогда Методом ПолучитьВходящиеТочки (GetIncomingPoints) Синтаксис: ПолучитьВходящиеТочки Возвращаемое значение: Тип: Массив. Описание: Получает массив точек маршрута бизнес-процесса, входящих в указанную точку. Доступность: Сервер, толстый клиент, внешнее соединение. Получишь входящие точки и затем используя данные по точкам отбирай задачи по свойству ЗадачаОбъект.<Имя задачи> (TaskObject.<Имя задачи>) ТочкаМаршрута (RoutePoint) Использование: Чтение и запись. Описание: Тип: ТочкаМаршрутаБизнесПроцессаСсылка. Содержит ссылку на точку маршрута породившего задачу бизнес-процесса (может быть пустой). Доступность: Сервер, толстый клиент, внешнее соединение.

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

При выполнении предыдущей задачи пиши нужные данные в реквизит бп. При выполнении текущей читай из БП.

так тебе еще в ее озвучили

А я про задачу подумал, а не про БП.

А в каком событии лучше записывать это?

Тэги:

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

jediAlex

4 / 4 / 4

Регистрация: 12.07.2011

Сообщений: 625

1

22.01.2019, 10:36. Показов 6586. Ответов 5

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Здравствуйте. Возникла задача – выбрать все выполненные задачи из 1С Документооборот (ред.2.1) , созданные в отчетном периоде по определенному перечню бизнес-процессов(бизнес-процессы для отбора выбираются пользователем)Например, выгрузить все задачи на “Исполнение” или “Поручение” или “исполнение,Согласование,рассмотрение” . Без отбора по процессам сделал запрос:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ВЫБРАТЬ
    ЗадачаИсполнителя.БизнесПроцесс КАК БизнесПроцесс,
    ЗадачаИсполнителя.Наименование КАК Наименование,
    ЗадачаИсполнителя.Автор КАК Автор,
    ЗадачаИсполнителя.ДатаИсполнения КАК ДатаИсполнения,
    ЗадачаИсполнителя.Исполнитель КАК Исполнитель,
    ЗадачаИсполнителя.Дата КАК Дата,
    ВЫБОР
        КОГДА НАЧАЛОПЕРИОДА(ЗадачаИсполнителя.ДатаИсполнения, ДЕНЬ) = НАЧАЛОПЕРИОДА(ЗадачаИсполнителя.Дата, ДЕНЬ)
            ТОГДА 1
        ИНАЧЕ РАЗНОСТЬДАТ(ЗадачаИсполнителя.ДатаИсполнения, ЗадачаИсполнителя.Дата, ДЕНЬ) + 1
    КОНЕЦ КАК ДнейОтСозданияДоВыполнения
ИЗ
    Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
ГДЕ
    ЗадачаИсполнителя.Автор.Недействителен = ЛОЖЬ
    И ЗадачаИсполнителя.Исполнитель.Недействителен = ЛОЖЬ
    И ЗадачаИсполнителя.Дата >= НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ)
    И ЗадачаИсполнителя.Дата <= КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ)
    И ЗадачаИсполнителя.ДатаИсполнения <> ДАТАВРЕМЯ(1, 1, 1)
 
УПОРЯДОЧИТЬ ПО
    Дата УБЫВ

Каждый бизне-процесс – отдельный объект метаданных… как реализовать нужный отбор? помогите пожалуста. Перечень процессов из конфы во вложении.

Миниатюры

Отбор задач по выбранным бизнес-процессам в1С документооборот
 



0



Yulunga

1180 / 721 / 209

Регистрация: 22.04.2013

Сообщений: 5,293

Записей в блоге: 1

22.01.2019, 12:19

2

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

1C
1
 и задачаисполнителя.бизнеспроцесс в (&списокбузинесспроцессоров)

?



0



4 / 4 / 4

Регистрация: 12.07.2011

Сообщений: 625

22.01.2019, 12:22

 [ТС]

3

это не пойдет



0



Orsanka

47 / 39 / 10

Регистрация: 23.04.2018

Сообщений: 139

22.01.2019, 13:25

4

Как-то примерно так:

1C
1
2
3
4
5
6
7
8
9
10
...
Где
<...>
И 
(ЗадачаИсполнителя.БизнесПроцесс ссылка БизнесПроцесс.Исполнение И &Исполнение = Истина)
ИЛИ (ЗадачаИсполнителя.БизнесПроцесс ссылка БизнесПроцесс.Поручение И &Поручение = Истина)
ИЛИ (ЗадачаИсполнителя.БизнесПроцесс ссылка БизнесПроцесс.Рассмотрение И &Рассмотрение= Истина)
ИЛИ (ЗадачаИсполнителя.БизнесПроцесс ссылка БизнесПроцесс.Регистрация И &Регистрация = Истина)
)
<...>

А на форму вывести список бизнес процессов с флагами для отметки нужных, по этим флагам потом устанавливаете значения параметров “Исполнение”, “Поручение” и т.п.



0



4 / 4 / 4

Регистрация: 12.07.2011

Сообщений: 625

22.01.2019, 13:29

 [ТС]

5

ну да, именно так, только юзер не сможет выбирать тип процесса…речь идет именно о типе процесса, а не о конкретном процессе



0



47 / 39 / 10

Регистрация: 23.04.2018

Сообщений: 139

22.01.2019, 14:03

6

jediAlex, Юзер – не может, а вы то можете вывести на форму список со строками “Исполнение”, “Поручение” и т.д., в виде списка с отметками, или в виде таблицы, или в виде нескольких флагов.
А перед формированием отчета эту информацию с формы забирать и устанавливать параметры в вашем запросе.

Добавлено через 10 минут
Добавлю. Если это СКД, можно создать параметры для каждого названия процесса “Исполнение”, “Поручение” и т.д. и сделать их доступными – они будут выводится в параметры отчета и использоваться без какого либо кода.



0



03.06.2022

Активити «Поиск задач, привязанных к смарт-процессу» из Базы Бизнес-процессов Пинол на платформе Пинкит позволит вам получить информацию по количеству задач, которые поставлены в карточке смарт-процесса, а также по статусу их исполнения. Как его найти, настроить и где применять, читайте в статье.

Алексей Окара

Сервис «Пинкит» – это незаменимый инструмент для обмена данными между CRM, BPM-системами (Битрикс24, Creatio (Terrasoft), amoCRM, Мегаплан) и различными внешними веб-сервисами (Unisender, CallbackHunter, LiveTex, База бизнес-процессов Пинол).

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

Установите Пинкит от Пинол на свой Битрикс24:

Установить приложение для России

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

Установить приложение для Белоруссии

Установить приложение для Казахстана

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

Перейти в Личный кабинет

Ознакомиться с API

Алексей Окара,
учредитель Пинол

Активити «Поиск задач, привязанных к смарт-процессу»

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

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

Рассмотрим пример, который позволит узнать, какое количество задач сейчас находится в статусе «Выполняется». 

Поиск задач, привязанных к смарт-процессу

Настройка

Шаг 1. Устанавливаем Базу бизнес-процессов ПИНОЛ на платформе передачи данных PINKIT.

Для этого выбираем нужный регион и устанавливаем приложение базу бизнес-процессов от Пинол на свой Битрикс24:

в доменной зоне RU в доменной зоне UA в доменной зоне BY в доменной зоне KZ в доменной зоне COM

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

Шаг 2. Настраиваем активити.

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

  • Идентификатор элемента смарт-процесса в формате {{ID}}
  • Статус задач: Все, Ждет выполнения, Выполняется, Ожидает контроля, Завершена, Отложена.

Настройка активити «Поиск задач, привязанных к смарт-процессу»

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

Вывод комментария в таймлайн смарт-процесса

Вывод комментария в таймлайн смарт-процесса

Итог:

Использование активити “Поиск задач привязанных к смарт-процессу” из Базы бизнес-процессов ПИНОЛ на платформе ПИНКИТ позволяет быстро и без использования ручного труда сотрудников получить информацию о количестве и статусе задач, привязанных к смарт-процессу. Также активити позволяет ускорить процесс контроля выполнения задач и автоматизировать дальнейшие шаги по факту завершения поставленных задач.

Полезные ссылки 

1. Больше информации о приложениях на платформе Пинкит по ссылке.
2. Плейлист по работе платформы Пинкит.
3. Установить приложения на платформе Пинкит.
4. Инструкция по установке приложений.
5. Найти готовый ответ на ваш вопрос.

Не нашли ответ на вопрос? Заполните форму, мы свяжемся с вами в ближайшее рабочее время.

Задавайте ваши вопросы и специалисты с радостью ответят на них в кратчайшее время.
Время работы специалистов Пн.–Пт.: с 9:30 до 18:30; Сб.-Вс.: выходные.

0

Елена Хажина
16.06.2022 14:35:48

Пинкит – это API платформа.
Мы интегрируем сервисы между собой и с CRM системами за счет наличия API методов, а также поддерживаем и развиваем свои API методы,
с которыми вы можете ознакомиться

здесь

0

Елена Хажина
16.06.2022 14:36:37

Облегчите себе работу – синхронизируйте CRM между собой и веб-сервисами. Об остальном позаботится Пинкит!

Оставьте заявку

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

0

Елена Хажина
16.06.2022 14:36:45

Рекомендуем ознакомиться с нашими готовыми кейсами по автоматизации бизнес процессов.

Любой кейс можем повторить на вашем портале или адаптировать под вас.

Для этого отправляйте нам заявку на почту order@pinall.ru.

Наш менеджер свяжется с вами в ближайшее рабочее время для согласования всех вопросов.

0

Елена Хажина
16.06.2022 14:36:53

Сервис ПИНКИТ – это незаменимый инструмент для обмена данными с внешними web-сервисами.

Самые востребованные интеграции по API: Google, UniSender, CallbackHunter, СберБанк, HH.ru, Контур.Фокус, GetCourse, Банки, iiko.

0

Елена Хажина
29.06.2022 12:49:18

Вот полезное видео о настройке и использованию смарт-процессов с помощью

активити Пинкит.

Больше видео на канале YouTube,

подписывайтесь

, чтобы ничего не пропустить!

В этой статье мы рассмотрим объекты «Бизнес-процессы» и «Задачи».

С одной стороны, подзадача по реализации бизнес-процессов является обязательной на Аттестации 1С:Специалист по платформе.

С другой стороны, во многих типовых решениях бизнес-процессы используются редко. Хотя фактически бизнес-процессов в конфигурациях автоматизировано множество, а сами эти объекты появились аж в 2004 году (с момента выхода «1С:Предприятие 8.0»).

Поэтому, чтобы понимать работу механизмов «Бизнес-процессов» и «Задач», недостаточно просто «подсмотреть в типовой». Возможности данных объектов нужно именно изучать.

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

Что такое бизнес-процессы в 1С

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

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

Для наглядной автоматизации бизнес-процессов в платформе «1С:Предприятие 8» существует объект «Бизнес-процесс». Он позволяет выстроить цепочку действий разных пользователей программы, которая приведет к определенному результату. Таким результатом может быть формирование отчетности, утверждение документа, заполнение карточки контрагента.

Объект «Бизнес-процесс» имеет графическое отображение, называемое картой маршрута. Это не что иное, как блок-схема, составленная из «кирпичиков»:

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

Вот пример бизнес-процесса «Закрытие месяца» из 1С:УПП, где встречаются практически все возможные элементы:

Рисунок 1

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

Использование объектов «Бизнес-процесс» для пользователя похоже на работу с документами:

  • Разные бизнес-процессы соответствуют различным действиям в системе (продажа товара, закрытие месяца, согласование заказа, …). То есть объект «Бизнес-процесс» в конфигурации определяет вид операции.
  • При старте пользователем нового бизнес-процесса создается несколько экземпляров, например – продажа вентиляторов контрагенту А, продажа холодильников контрагенту Б и так далее. То есть пользователь создает любое количество объектов информационной базы для каждого бизнес-процесса.

Практический пример

Рассмотрим практический пример. Необходимо автоматизировать процесс приема сотрудника на работу из 3 последовательных этапов:

  1. Младший кадровик заполняет личные данные сотрудника.
  2. Старший кадровик оформляет приказ о приеме сотрудника в статусе «Проект».
  3. Расчетчик проводит приказ о приеме в статусе «Утвержден».

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

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

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

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

Рисунок 2

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

Начнем с создания нового бизнес-процесса:

Рисунок 3

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

Изобразим карту маршрута бизнес-процесса для поставленной задачи:

Рисунок 4

Рисунок 5

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

В точке условия нужно определить, работал ли принимаемый сотрудник в нашей организации ранее. Если это так, то в базе уже заведен нужный элемент справочника «Физические лица» и заполнены личные данные. Добавим в бизнес-процесс реквизит (тип Булево), который позже обработаем в точке условия (то есть считаем, что пользователь сам определяет при приеме – новый это сотрудник или нет):

Рисунок 6

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

Объект конфигурации «Задача»

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

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

Для наглядности рассмотрим, как выглядит список задач в демонстрационной базе конфигурации «Документооборот 8 ПРОФ, редакция 2.1». При запуске программы от имени пользователя Федоров О.П. (директор) на начальной странице открывается список всех невыполненных задач пользователя:

Рисунок 7

Вернемся к нашей конфигурации, создадим новый объект:

Рисунок 8

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

Свяжем бизнес-процесс с задачей:

Рисунок 9

Обратите внимание! Несмотря на то, что в разных точках бизнес-процесса могут создаваться и редактироваться различные объекты системы, тип создаваемых задач на каждом из этапов будет одинаковым. Например, для решаемой задачи будут создаваться элементы справочников “Физические лица” и “Сотрудники”, а также документы “Прием на работу”. При этом в каждой точке бизнес-процесса будут создаваться задачи “Задача исполнителя”.

Более того, в типовых решениях 1С («Документооборот», «Управление торговлей, ред. 11») в разных бизнес-процессах используется один и тот же тип задач, чаще всего он называется «Задача исполнителя». Это делается для того, чтобы пользователь мог видеть общий список своих задач, относящихся к разным видам бизнес-процессов, как в примере выше из «Документооборота».

Адресация задач

Объект «Задача» предоставляет возможность использования вспомогательного регистра сведений, который обеспечивает распределение задач по исполнителям. Этот регистр называется регистром адресации.

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

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

Поэтому для нашего примера создадим в регистре адресации 2 измерения:

Рисунок 10

Здесь используется справочник «Роли исполнителей», который имеет следующие предопределенные элементы:

Рисунок 11

Создадим у задачи реквизиты адресации тех же типов, что и измерения регистра сведений:

Рисунок 12

Укажем для задачи регистр адресации. Для реквизитов адресации задачи настроим соответствие измерениям выбранного регистра сведений:

Рисунок 13

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

Рисунок 14

Чтобы обеспечить ветвление в точке условия, требуется обработчик проверки условия – функция в модуле объекта бизнес-процесса, которая возвращает значение Ложь или Истина. Создадим такой обработчик для точки маршрута ПовторныйПрием:

Рисунок 15

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

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

Рисунок 16

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

Рисунок 17

Сделаем так, чтобы при запуске «1С:Предприятия» в параметр сеанса ТекущийПользователь подбиралось нужное значение из справочника «Пользователи». Соответствие будем устанавливать по имени, и если элемент справочника «Пользователи» с нужным именем не найден, то создадим его. Код функции УстановкаПараметровСеанса() в модуле сеанса:

Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) ИмяПольз = ИмяПользователя(); ТекПользователь = Справочники.Пользователи.НайтиПоНаименованию(ИмяПольз, Истина); Если Не ЗначениеЗаполнено(ТекПользователь) Тогда НовыйПользователь = Справочники.Пользователи.СоздатьЭлемент(); НовыйПользователь.Наименование = ИмяПольз; НовыйПользователь.Код = ИмяПольз; НовыйПользователь.Записать(); ТекПользователь = НовыйПользователь.Ссылка; КонецЕсли; ПараметрыСеанса.ТекущийПользователь = ТекПользователь; КонецПроцедуры

После того, как все нужные элементы справочника «Пользователи» будут созданы, заполним регистр адресации в режиме «1С:Предприятие»:

Рисунок 18

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

Отображение задач по исполнителям

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

Рисунок 19

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

Рисунок 20

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

Рисунок 21

Рисунок 22

После этого у пользователя Петрова В.П. в списке задач (Кадровый учет → Задача исполнителя) появится новая задача:

Рисунок 23

Визуализация хода бизнес-процесса

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

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

Рисунок 24

Затем в модуле формы бизнес-процесса создадим процедуру ОбновитьКартуМаршрута:

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

Вызовем эту процедуру в обработчике события ПриЧтенииНаСервере формы бизнес-процесса:

&НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) ОбновитьКартуМаршрута(); КонецПроцедуры

После этого при открытии формы бизнес-процесса на карте маршрута будет отмечаться текущее положение:

Рисунок 25

Мы используем обработчик ПриЧтенииНаСервере, т.к. он вызывается самым первым в процессе открытия управляемой формы объекта и выполняется только для уже записанных объектов.

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

Сделаем так, чтобы при нажатии кнопки «Старт» на форме бизнес-процесса карта маршрута обновлялась. Для этого вызовем ту же процедуру ОбновитьКартуМаршрута в обработчике ПослеЗаписиНаСервере:

&НаСервере Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) ОбновитьКартуМаршрута(); КонецПроцедуры

В таком виде задача может считаться решенной в рамках подготовки к экзамену «1С:Специалист» по платформе. Но мы пойдем немного дальше.

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

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

Итак, добавим в модуль объекта ЗадачаИсполнителя стандартный обработчик ПередВыполнением со следующим кодом:

Процедура ПередВыполнением(Отказ) Исполнитель = ПараметрыСеанса.ТекущийПользователь; КонецПроцедуры

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

Рисунок 26

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

Рисунок 27

В наименовании задачи было бы неплохо видеть не только название точки маршрута, но и ФИО человека, которого требуется принять на работу. Для этого в модуле объекта бизнес-процесса определим процедуру УстановитьНаименованиеЗадачи, и будем вызывать ее при создании задач:

Процедура УстановитьНаименованиеЗадачи(ТочкаМаршрутаБизнесПроцесса, Задача) Задача.Наименование = ТочкаМаршрутаБизнесПроцесса.НаименованиеЗадачи + " " + СокрЛП(ФизЛицо.Наименование); КонецПроцедуры Процедура ОбщаяПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ) Для каждого НоваяЗадача Из ФормируемыеЗадачи Цикл УстановитьНаименованиеЗадачи(ТочкаМаршрутаБизнесПроцесса, НоваяЗадача); КонецЦикла; КонецПроцедуры

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

Рисунок 28

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

Функция ПроверитьВыполнениеЗадачи(ТочкаМаршрутаБизнесПроцесса, Задача) БП = Задача.БизнесПроцесс; Результат = Ложь; Если ТочкаМаршрутаБизнесПроцесса = БизнесПроцессы.ПриемНовогоСотрудника.ТочкиМаршрута.ВводПервичныхДанныхФизлица Тогда Если ЗначениеЗаполнено(БП.ФизЛицо) И ЗначениеЗаполнено(БП.Сотрудник) Тогда Результат = ЗначениеЗаполнено(БП.ФизЛицо.ДатаРождения) И ЗначениеЗаполнено(БП.ФизЛицо.Пол); КонецЕсли; ИначеЕсли ТочкаМаршрутаБизнесПроцесса = БизнесПроцессы.ПриемНовогоСотрудника.ТочкиМаршрута.ВводПриемаНаРаботу Тогда Результат = ЗначениеЗаполнено(БП.ПриемНаРаботу); ИначеЕсли ТочкаМаршрутаБизнесПроцесса = БизнесПроцессы.ПриемНовогоСотрудника.ТочкиМаршрута.УтверждениеПриемаНаРаботу Тогда ДокПрием = БП.ПриемНаРаботу; Результат = ЗначениеЗаполнено(ДокПрием.Оклад) И ДокПрием.Статус = Перечисления.СтатусыДокументов.Утвержден; КонецЕсли; Возврат Результат; КонецФункции Процедура ОбщаяПередВыполнением(ТочкаМаршрутаБизнесПроцесса, Задача, Отказ) Если Не ПроверитьВыполнениеЗадачи(ТочкаМаршрутаБизнесПроцесса, Задача) Тогда Сообщить("Не выполнены действия, необходимые для выполнения задачи!", СтатусСообщения.Важное); Отказ = Истина; КонецЕсли; КонецПроцедуры

Готово, можно тестировать!

Подведем итоги

Мы описали только базовые приемы работы с бизнес-процессами и задачами в 1С:Предприятии 8.3. Как минимум, требуется добавить еще множество проверок введенных данных и «красивостей» на уровне форм.

Но цель статьи – показать, как можно использовать объекты системы при автоматизации бизнес-процессов.

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

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

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

Об авторе

Выгрузки ИБ и PDF-версия статьи для участников группы ВКонтакте

Мы ведем группу ВКонтакте – http://vk.com/kursypo1c.

Если Вы еще не вступили в нее – сделайте это сейчас, и в блоке ниже (на этой странице) появятся ссылки на скачивание материалов.

Ссылка доступна для зарегистрированных пользователей)

Ссылка доступна для зарегистрированных пользователей)

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