### Взаимодействие

Все добавляемые объекты включаем в новую подсистему **Взаимодействие**, выведенную в командный интерфейс.

1. Добавить определяемый тип **ПредметПроцесса**, включив в него все документы и справочники.

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