1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2024-11-24 08:02:20 +02:00
1c-homeworks/diploma-c-howto-collaboration.md
2020-09-16 17:51:17 +03:00

53 lines
5.1 KiB
Markdown

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