mirror of
https://github.com/netology-code/1c-homeworks.git
synced 2024-11-24 08:02:20 +02:00
53 lines
5.1 KiB
Markdown
53 lines
5.1 KiB
Markdown
### Взаимодействие
|
|
|
|
Все добавляемые объекты включаем в новую подсистему **Взаимодействие**, выведенную в командный интерфейс.
|
|
|
|
1. Добавить определяемый тип **ПредметПроцесса**, включив в него все документы и справочники.
|
|
|
|
2. Добавить справочник **Роли**:
|
|
* без кода, с наименованием разумной длины.
|
|
|
|
3. Добавить регистр сведений **ИсполнителиРолей**:
|
|
* с измерениями **Роль** (СправочникСсылка.Роли) и **Исполнитель** (СправочникСсылка.Сотрудники);
|
|
* запретить незаполненные значения измерений.
|
|
|
|
4. Добавить задачу **Задача**:
|
|
* с адресацией по регистру **ИсполнителиРолей**;
|
|
* с реквизитами адресации **Исполнитель** (СправочникСсылка.Сотрудники) и **Роль** (СправочникСсылка.Роли), связав их с одноименнными измерениями регистра **ИсполнителиРолей**;
|
|
* с основным реквизитом адресации **Исполнитель**;
|
|
* текущий исполнитель определяется по значению параметра сеанса **ТекущийСотрудник**;
|
|
* с наименованием разумной длины и строковым реквизитом **ПодробноеОписание** неограниченной длины;
|
|
* с разумной формой задачи, включающей только прикладные реквизиты в режиме «Только просмотр».
|
|
|
|
5. Добавить процесс **Поручение**:
|
|
* с задачей **Задача**;
|
|
* с реквизитами:
|
|
* **НаименованиеЗадачи** (обязательный; строка такой же длины, как наименование задачи);
|
|
* **ПодробноеОписание** (строка неограниченной длины);
|
|
* **Исполнитель** (обязательный; составной тип: СправочникСсылка.Сотрудники, СправочникСсылка.Роли);
|
|
* **Предмет** (ОпределяемыйТип.ПредметПроцесса);
|
|
* со схемой, состоящей из точки старта, точки действия и точки завершения;
|
|
* в точке действия переопределить обработчик **ПриСозданииЗадач**, дозаполнив созданные задачи реквизитами процесса:
|
|
|
|
```bsl
|
|
Для Каждого ФормируемаяЗадача Из ФормируемыеЗадачи Цикл
|
|
ФормируемаяЗадача.Наименование = НаименованиеЗадачи;
|
|
ФормируемаяЗадача.ПодробноеОписание = ПодробноеОписание;
|
|
ФормируемаяЗадача.Исполнитель = ?(ТипЗнч(Исполнитель) = Тип("СправочникСсылка.Сотрудники"),
|
|
Исполнитель, Неопределено);
|
|
ФормируемаяЗадача.Роль = ?(ТипЗнч(Исполнитель) = Тип("СправочникСсылка.Роли"),
|
|
Исполнитель, Неопределено);
|
|
КонецЦикла;
|
|
```
|
|
* создать разумную форму процесса, содержащую только прикладные реквизиты, с возможностью заполнить их и стартовать процесс.
|
|
|
|
6. Добавить форму списка задач **ЗадачиМне**:
|
|
* не назначать её основной формой (основная форма будет содержать все задачи);
|
|
* добавить команду **ПринятьКИсполнению**, при вызове которой на севере нужно:
|
|
* получить объект текущей задачи;
|
|
* установить реквизит **Исполнитель** равным значению параметра сеанса **ТекущийСотрудник**;
|
|
* записать объект текущей задачи;
|
|
* добавить в нее динамический список по виртуальной таблице **Задача.Задача.ЗадачиПоИсполнителю** с разумным минимумом реквизитов;
|
|
* добавить этот список в рабочую область начальной страницы;
|
|
* удостовериться, что пользователи видят на рабочем столе свои задачи, адресованные им как непосредственно, так и посредством ролей.
|