Бизнес процессы в 1С

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

Для простоты предположим, что метод оплаты указывается в задаче: если в задаче установлен флаг «оплата наличными, значит, оплата пойдет через кассира.

Создание форм бизнес-процесса

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

Для этого сформируйте форму справочника по умолчанию. Затем в реквизиты формы добавьте реквизит с типом «ГрафическаяСхема». Этот реквизит перенесите на форму:

И последнее для формы — процедура отображения бизнес-процесса:

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

Ее нужно выполнять при открытии элемента бизнес-процесса и назначить на команду «Обновить карту».

Форма списка задач бизнес-процесса

Форма списка задач по условию задачи должна отображать только открытые задачи текущего исполнителя. Сделать это очень просто.

Достаточно создать форму списка задач по умолчанию. После этого в динамическом списке выбрать Основную таблицу — Задача.Задача.ЗадачиПоИсполнителю. Эта настройка позволит указать отбор по исполнителю задач:

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

Настройка адресации в пользовательском режиме 1С 8.2

Последний этап, но не последний по значимости — настройка адресации в пользовательском режиме в регистре «Адресации».

В этом регистре необходимо указать всех участников бизнес-процесса и прописать членов того или иного подразделения, должности и т.д:

Вот и всё! Настройка бизнес-процесса готова!

Другие статьи по 1С:

  • Администрирование
  • Программирование 1С
  • Обучение 1С

Если Вам всё же не понятно, рекомендую следующее видео:

Основа ведения учета в 1С – это операция ввода документа пользователем. Один документ оформляет одну произошедшую хозяйственную операцию (например – продали три утюга).

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

Примеры бизнес-процессов 1С — оформление покупателем заказа с последующей оплатой и отгрузкой:

  • Принять заказ (девочка оператор)
  • Ожидание поступление денежных средств (платежку загружают из клиент банка в бухгалтерии)
  • Формирование сбора заказа на складе (складские работники)
  • Согласование отгрузки (начальнег)
  • Отгрузка (грузчики).

Каждую из этих операций возможно оформить в 1С. Каждую оформляют разные сотрудники разных отделов.

Вопросы:

  • Как сообщить каждому следующему пользователю, что ему пора выполнять действия в этом бизнес процессе 1С?
  • Как связать события в одну цепочку и оставить для истории потомкам?
  • Как проконтролировать цепочку от начала до конца и понять когда все ок?

Бизнес процессы 1С

Сначала разберемся в терминах.

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

В 1С бизнес-процесс означает организованную цепочку точек, в которых платформа 1С обеспечивает автоматически (варианты):

  • Постановка задачи пользователю на выполнение чего-либо
  • Выполнение программы на языке 1С (например в случае, когда нужно создать автоматически какой-либо документ)
  • Автоматически выбрать путь, по которому пойдет цепочка далее, в зависимости от условий.

Хозяйственные операции (вернее их оформление) при ходе бизнес-процесса 1С выполняется:

  • Или автоматически создаются и проводятся документы (выполняемой часть программы)
  • Или пользователем вручную, когда ему ставится такая задача.

Бизнес-процессы 1С и задачи 1С

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

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

При старте формируется задача первому пользователю. Он отметил ее как выполненную. Система автоматически создает вторую задачу другому пользователю. И так далее.

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

Обычно в конфигурации создают один вид задач – универсальный и все бизнес-процессы 1С использует ее.

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

Из этого находят следующий выход:

  • В задаче создают универсальную форму
  • В событии ПередОткрытием() этой формы задачи:
    o Определяют какой бизнес-процесс 1С выполняется
    o Определяют какая точка бизнес-процесса 1С выполняется
    o Открывают нужную форму этого бизнес процесса 1С.

Карта маршрута бизнес-процесса 1С

Итак бизнес-процесс 1С состоит из цепочки точек выполнения. Цепочка точек настраивается на карте маршрута бизнес-процесса 1С. Чтобы открыть карту маршрута нужно нажать правой кнопкой на бизнес-процесс 1С и выбрать пункт меню Открыть карту маршрута.

Чтобы создать новую точку – просто перетащите ее на карту маршрута со специальной панели снизу.

Виды точек:

  • Старт
    Первая точка маршрута. Чтобы карта была корректной, на ней должна быть хотя бы одна точка старта. У сложных бизнес-процессов 1С точек маршрута может быть несколько.

    Точка старта (и завершения) не формирует задач никому.

  • Завершение
    Это точка, на которой ход бизнес-процесса 1С автоматически завершается. Несколько точек (вариантов) завершения используются достаточно часто (например, успешный вариант или отказ).
  • Точка действия (желтый квадрат)
    Означает, что будет создана задача 1С и адресована пользователю.

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

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

    Адресацию задачи (т.е. направить ее нужно пользователю или группе пользователей) можно установить двумя способами:
    o Динамически в обработчике ПриСозданииЗадач() заполнять из кода 1С
    o Если в задаче 1С уже созданы реквизиты адресации, в бизнес-процессе 1С уже указана Задача 1С, то в свойствах точки внизу, в разделе Адресация будут отображены все реквизиты адресации задачи, где можно выбрать тот набор реквизитов адресации, который нужен; ограничение – возможно выбирать только предопределенные элементы справочников.

    Если установить галочку Групповая в свойствах, то это означает, что задач может быть создано несколько. Сами задачи (кроме первой) нужно генерировать самостоятельно, в обработчике ПередСозданиемЗадач(), однако система должна знать, что задач будет несколько, чтобы дождаться выполнения всех, а не двинуться дальше по маршруту после выполнения первой.

  • Точка условия
    Данная точка выбирает куда дальше двинется бизнес-процесс 1С. Выбор производится в обработчике точки ПроверкаУсловия(), который нужно создать в ее свойствах.

    Чтобы бизнес-процесс 1С пошел далее по условию «Да», нужно в обработчике установить значение Результат = Истина.

  • Точка выбора варианта
    То же условие, только многовариантное (больше двух вариантов ветвей). По умолчанию добавляется три варианта, их можно как убавить, так и добавить, нажав на них и используя кнопки Del и Ins. Для каждого варианта задается наименование.

    Отличия в обработчике состоят в том, что Результат должен быть равен конкретному варианту, например:
    Результат = ТочкаВыбораВарианта.Варианты.Вариант1;

  • Точки разделения и слияния
    Позволяет распараллелить выполнение задач и слить потом обратно.
  • Точка обработки
    Позволяет в обработчике Обработка() выполнить произвольные действия, например сформировать документ или провести его.
  • Точка вложенного бизнес-процесса 1С
    На этом месте создается другой бизнес-процесс 1С и начинает выполняться. Этот же бизнес-процесс 1С ожидает полного завершения вложенного.

Начало и завершение бизнес-процесса 1С

Бизнес-процесс 1С может быть просто создан и записан, также как и непроведенный документ.

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

После завершения у бизнес-процесса 1С будет установлена галочка Завершен.

Бизнес-процессы 1С и роботы

Некоторые скептически относятся к бизнес-процессам 1С по причине их построения на основе задач – информационных напоминалок пользователям.

Они говорят — как напоминалка такая задача работает – пользователь увидел ее в списке и сделал, но:

  • всем будет лень отмечать факт ее выполнения (или будут забывать)
  • могут нажать, чтоб задача выполнена (для отчетности), а сами ничего не сделать.

Другие на таких скептиков придумали варианты участия роботов в бизнес-процессах 1С. Роботом на сленге 1С называют регламентное задание.

Регламентное задание – это задача, автоматически по расписанию выполняемая сервером 1С или специально запущенным клиентом 1С. Важно – что оно выполняется автоматически, само собой.

Такого робота можно запустить по расписанию с частотой раз в минуту (раз в десять секунд) и адресовать ему задачи также.

Вариант использования:

  • У каждой задачи ставить галочку Групповая
  • Формировать две задачи
  • Одну задачу адресовать пользователю, другую – роботу
  • Робот каждые N минут проверяет условие, что задача была выполнена (например, документ введен) и если это так указывает выполненными обе задачи, и за пользователя в том числе.

Другой вариант использования – когда в цепочке есть точка ожидания. Например ожидание оплаты заказа. Эта задача может быть адресована роботу, который проверяет ее наличие раз в день/час и выполняет когда оплата поступила.

Регламентные задания — это общие объекты конфигурации. Они являются частью механизма заданий и позволяют автоматически выполнять процедуры на встроенном языке по расписанию.

Для каждого регламентного задания может быть задано расписание, в соответствии с которым регламентное задание будет автоматически запущено на исполнение. В системе 1С:Предприятие 8 поддерживаются однократные и периодические расписания. Можно задать дату начала и окончания выполнения, дневное, недельное и месячные расписания. Расписание можно задать как на этапе конфигурирования, так и на этапе выполнения (в режиме 1С:Предприятие).

В процессе запуска регламентное задание порождает фоновое задание, которое и выполняет реальную обработку. Регламентное задание может выполняться от имени заданного пользователя и имеет возможность перезапуска (например, в случае непредвиденного завершения работы).

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

Учебный курс: Подготовка на 1С:Специалист по платформе 1С:Предприятие 8.3

Введение в раздел «Задачи и механизмы оперативного учета”

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

  • Справочники
  • Документы
  • Регистры сведений
  • Планы видов характеристик
  • Отчеты и обработки.

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

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

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

  • Учет партий товаров
  • Адресное хранение номенклатуры
  • Учет взаиморасчетов
  • Сборка комплектов.

Первым делом рассмотрим особенности учета услуг в аттестационных задачах.

Во многих экзаменационных задачах по оперативному учету встречается условие об оказываемых услугах. Такое условие встречается в следующих задачах сборника для подготовки к экзамену «1С:Специалист по платформе»: № 1.1, 1.2, 1.3 и других.

В данной главе рассмотрим, как учесть это условие при решении задач.

Постановка задачи:

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

Отличия учета услуг от учета товаров

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

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

Важно. При формировании движений по регистру накопления, в котором хранятся данные по продажам номенклатуры, должны учитываться как товары, так и услуги.

Решение задачи

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

Справочник «Номенклатура» в конфигурации уже присутствует. Добавим для справочника реквизит ВидНоменклатуры с типом ПеречислениеСсылка.ВидыНоменклатуры. Требуемое перечисление со значениями «Товар» и «Услуга» в конфигурации уже имеется:

Рисунок 1 – Закладка Данные справочника «Номенклатура»

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

Из условия задачи следует, что в компанию услуги не поступают. Для того чтобы пользователи не смогли в документе «Приходная накладная» выбрать услугу у реквизита Номенклатура, настроим параметры выбора: Отбор.ВидНоменклатуры = Товар:

Рисунок 2 – Настройка параметров выбора

Перейдем к документу «Расходная накладная». Для решения задачи необходимо скорректировать запрос в процедуре ОбработкаПроведения.

К сожалению, у Вас недостаточно прав для дальнейшего просмотра.

Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.

Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.

Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.

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

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

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

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

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

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

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

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

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

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

Элемент схемы Графическое представление Описание
Точка старта Начало бизнес-процесса, является обязательным
Стрелка Показывает последовательность переходов между точками
Точка действия Соответствует конкретному действию конкретного пользователя (или одного из пользователей с определенной ролью) в программе.
Точка условия Отвечает за проверку выполнения определенного условия, у которого может быть только 2 состояния: «Выполнено” или «Не выполнено”
Точка выбора варианта Дает возможность выбрать дальнейшие действия исходя из проверки условия, у которого может быть более двух состояний (аналог – Если-ИначеЕсли-…)
Точка разделения Соответствует моменту, начиная с которого разные пользователи должны выполнять разные действия параллельно и независимо друг от друга
Точка слияния Соответствует моменту, начиная с которого параллельные процессы вновь объединяются в один
Точка обработки Отвечает за выполнение определенного алгоритма системой
Точка вложенного бизнес-процесса Соответствует выполнению другого бизнес-процесса, который является составной частью текущего

Таблица 1

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

Вот пример бизнес-процесса «Закрытие месяца» из 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. Как минимум, требуется добавить еще множество проверок введенных данных и «красивостей» на уровне форм.

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

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

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

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

Об авторе

Автор статьи – Алина Баринова

Консультант-разработчик, компания «Infosuite” (г. Москва)

E-mail: barinovaaa@yandex.ru
Facebook: www.facebook.com/barinovaaa

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