--- title: Пример создания простого бизнес-процесса slug: примеры-кода-шаблоны-общее-бизнес-процессы-и-задачи/пример-создания-простого-бизнес-процесса --- * Добавьте подсистему Взаимодействие, включив ее в командный интерфейс. * Добавьте определяемый тип ПредметПроцесса, включив в него все документы и справочники. * Добавьте в подсистему Взаимодействие задачу Задача, задав для нее: Достаточно длинное наименование (например, 150 знаков). Реквизит адресации Исполнитель (СправочникСсылка.Сотрудники). Реквизит Предмет (ОпределяемыйТип.ПредметПроцесса) * Добавьте в подсистему Взаимодействие процесс Поручение, задав для него: Обязательный к заполнению реквизит Описание (строка, которая станет наименованием задачи). Обязательный к заполнению реквизит Исполнитель (сотрудник, который станет исполнителем задачи). * Простую схему процесса из одного действия с наименованием задачи по умолчанию "Исполнить поручение". * Для единственного действия переопределите обработчик события ПриСозданииЗадач, заполняя в нем наименования и исполнителей формируемых задач по данным самого процесса: ```bsl Для Каждого ФормируемаяЗадача Из ФормируемыеЗадачи Цикл ФормируемаяЗадача.Наименование = Описание; ФормируемаяЗадача.Исполнитель = Исполнитель; КонецЦикла; ``` * Удостоверьтесь, что создаваемые задачи содержат исполнителя и наименование из процессов-поручений. * Добавьте в задачу Задача реквизит Результат (строка неограниченной длины). * В модуле задачи переопределите обработчик ПередВыполнением, в котором: * При отсутствии результата - установите Отказ в Истина и выведите пользователю разумное сообщение При наличии результата - ничего не делайте * Взведите флаг "Заполнять из данных заполнения" стандартного реквизита ВедущаяЗадача процесса Поручение. * К процессу Поручение добавьте команду ПодчиненноеПоручение, параметризованную типом ЗадачаСсылка.Задача. В модуле команды откройте форму нового поручения, передав в составе параметров открываемой формы структуру ЗначенияЗаполнения со свойством ВедущаяЗадача, заполненным параметром команды (задачей). * Добавьте кнопку для этой команды на форму задачи и в список задач. Удостоверьтесь, что при нажатии создается подчиненный процесс Поручение. * Добавьте справочник Роли Без кода, с наименованием разумной длины * Добавьте регистр сведений ИсполнителиРолей: С измерениями Роль (СправочникСсылка.Роли) и Исполнитель (СправочникСсылка.Сотрудники) Запретив незаполненные значения измерений * В задачу Задача: Добавьте адресацию по регистру ИсполнителиРолей Добавьте реквизит адресации Роль (СправочникСсылка.Роли) Основным реквизитом адресации останется Исполнитель * Свяжите реквизиты адресации Роль и Исполнитель с одноименнными измерениями регистра ИсполнителиРолей * В поле "Текущий исполнитель" выберите параметр сеанса ТекущийСотрудник * В процессе Поручение Расширьте тип реквизита Исполнитель типом СправочникСсылка.Роли. Доработайте обработчик события ПриСозданииЗадач так, чтобы в зависимости от типа исполнителя в задаче заполнялся Исполнитель или Роль. * Добавьте форму списка задач ЗадачиМне Не назначая ее основной формой (основная форма будет содержать все задачи) * Добавьте в нее динамический список по виртуальной таблице Задача.Задача.ЗадачиПоИсполнителю с разумным минимумом реквизитов * Добавьте команду ПринятьКИсполнению, при вызове которой на севере: Получите объект текущей задачи Установите реквизит Исполнитель равным значению параметра сеанса ТекущийСотрудник * Запишите объект текущей задачи * Добавьте этот список в рабочую область начальной страницы * Удостоверьтесь, что пользователи видят на рабочем столе свои задачи, адресованные лично или по роли.