Инструкция по первичной настройке
--------------------------------------------------

В конфигураторе
~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. Внести организационную структуру. 

Обязательно должны присутствовать сотрудники с ролями:

* Диспетчер
* Исполнитель

2. В организационной структуре обязательно должна присутствовать должность Клиент с кодом ``service_clients``

4. Добавить пользователей в группы ``service_admin_group`` и ``service_client_group`` и/или настроить и разграничить права на реестры по потребности (как минимум, должен быть доступ на просмотр для реестра ``service_registry_service``.

5. Создать формы и реестры на виды услуг в папке ``orders`` в конфигурации

6. Для реестров ``orders`` создать фильтры реестров (например, по статусам заявок), по которым будут автоматически сформированы фильтры в личном кабинете на портале. Рекомендуется использовать условие "содержит текущего пользователя".


.. note::

    Не рекомендуется использовать созданные для примере order1...order6 так как при обновлении ваши изменения на этих формах могут быть потеряны.

7. Создать формы завершения (В дополнительных настройках конфигуратора), ссылаясь на созданные формы: Форма завершения заявки, Форма принятия в работу и Форма подтверждения заявки (формы созданные по-умолчанию расположены в папке ``orders``).

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

9. Заполнить справочник Режимы рабочего времени и реестр Режимы работы.

10. Для реестров ``orders`` при необходимости настроить блокирующие процессы (пример настроен для ``service_registry_order_1``):

* ``event.blocking.interpreter.completion_time``: копирует время завершения с ФЗ заявки; с учетом режима обслуживания ``service_form_order_timemode`` вычисляет затраченное на выполнение время (в часах) в ``service_form_order_spenttime``; в ``service_form_order_overdue`` записывает, просрочено ли решение.
* ``event.blocking.interpreter.set.8wh.timer``: заполняет дату таймера ``service_form_order_timerDate`` в 8 рабочих часов от времени запуска.
* ``event.blocking.interpreter.closingby.timer``: закрывает работу подтверждения пользователем решения по заявке, если наступает таймер - т.е. пользователь за отведенное время не ответил.
* ``event.blocking.interpreter.email.auth.notification``: отправляет уведомление о смене статуса на емэйл инициатора (установить в нужных местах маршрута);
* ``event.blocking.interpreter.matching``, ``event.blocking.interpreter.matching.acceptexec``, ``event.blocking.interpreter.matching.approve``, ``event.blocking.interpreter.matching.executor``: сопоставление из форм завершения на форму заявки.
* ``event.blocking.interpreter.set.planFinishDateWM``: заполняет плановую дату ``service_form_order_planFinishDate = service_form_order_date + service_form_order_duration (время SLA в часах)`` с учетом режима обслуживания ``service_form_order_timemode`` (ссылается на режим работы из реестра *Режимы работы*).

**При использовании Производственного плана:**

11. При необходимости дополнить форму Реестра ресурсов полями (не изменяя кодов имеющихся полей).

12. Нужным вам образом поменять *элементы* (не меняя кодов) справочника **Справочник групп ресурсов**.

Разграничение доступа к услугам
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Для разграничения доступа к услугам на портале необходимо:

1. Дать нужным группам доступ на создание в реестре соответствующей услуги.

2. Дать нужным группам доступ на просмотр на фильтры соответствующих реестров (при необходимости создать фильтры).

В пользовательской подсистеме SYNERGY
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


1. Заполнить реестр **Услуги**, указав коды форм и реестров, созданных в конфигураторе.

2. Заполнить реестр **Группы услуг** (``service_registry_service_group``) и выбрать услуги, которые будут входить в группы. Услуги, которые не будут входить ни в одну группу, не будут отображаться на портале.

3. Заполнить реестры **Типы активов, Активы, Исполнители, Локации**.

**При использовании Производственного плана:**

4. Создать одну запись реестра **Настройки производственного плана** и, при необходимости, указать там коды статусов и цвета (в шестнадцатеричном формате) для обозначения просроченных заявок и заявок, исполняемых в срок. 

5. Создать записи реестра **Реестр ресурсов**


В Конструкторе (при использовании Производственного плана)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. Открыть приложение ``ServiceARM`` (код ``service-arm``)

2. В Ресурсах js в скрипте ``main_page.js``:

* массив ``appRegistryCodes`` можно через запятую дополнить кодами реестров заявок для Производственного плана. Пример

    .. code-block:: html 
    
        appRegistryCodes: ['service_registry_resourceOrders1', 'service_registry_resourceOrders2', 'service_registry_resourceOrders3'],
        

.. note::

    Коды и типы соответствующих ключевых полей (``статус``, ``ссылка на ресурсы``, ``поле группировки ресурсов``, ``номер``, ``дата создания``, ``дата начала``, ``дата завершения``, ``фактическое время завершения``) в реестрах заявок должны совпадать.

* массив ``appRegistryFields`` можно дополнить отображаемыми полями (типа текст ``type: 'text'``) в блоке заявки. Пример (после строки с полем Статус):

    .. code-block:: html 
    
        {title: 'Краткое описание', code: 'service_form_resourceOrder_descr', type: 'text'},