#### Завершение работы {#sec.offline_work_end_work}

Исходное поведение [здесь](#sec.workflow_work_end) и 
[здесь](#sec.workflow_work_result).

В режиме оффлайн доступны, при наличии, кнопки "Завершить"
(идентификаторы операции PROGRESS, POINT_RESULT, RESOLUTION_ACTION), 
"Ответить" (идентификатор операции PROCESS), "Результат" (идентификатор 
действия RESULT) и ползунок прогресса работы для выставления 100%. 
Необходимо фиксировать время завершения на устройстве. Применение 
статуса завершенности работы должно происходить по следующему алгоритму.

1.  Для работ без формы завершения: если на стороне сервера данная 
    работа была завершена (хоть статусом, хоть прогрессом), то 
    действие не выполнять. В журнал синхронизации при этом должна 
    произойти запись в формате:

    -   условно успешная синхронизация:

        `Завершение работы "название_работы" не синхронизировано:
        Действие не может быть выполнено, так как процесс завершен`

        `ГГГГ-ММ-ДД ЧЧ:ММ`

    -   неуспешная синхронизация:

        `Завершение работы "название_работы": ошибка синхронизации`

        `ГГГГ-ММ-ДД ЧЧ:ММ`

2.  Для работ с формой завершения "файл": если на стороне сервера данная
    работа была завершена (хоть статусом, хоть прогрессом), то действие
    выполнять частично: этот файл или форму необходимо добавить в
    "Прочие". В журнал синхронизации при этом должна произойти запись в
    формате:

    -   условно успешная синхронизация:

        `Завершение работы "название_работы" не синхронизировано:
        Действие не может быть выполнено, так как процесс завершен (в
        "Прочие" добавлен файл формы завершения)`

        `ГГГГ-ММ-ДД ЧЧ:ММ`

    -   неуспешная синхронизация:

        `Завершение работы "название_работы": ошибка синхронизации`

        `ГГГГ-ММ-ДД ЧЧ:ММ`

    > **Замечание**
    >
    > Файл в "Прочие" должен добавляться в любом случае. Если файл с
    > таким же названием существует в "Приложениях", то он должен просто
    > добавиться в "Прочие". Если же в "Прочих" существует файл с таким
    > названием, то он все равно должен добавиться как отдельный файл с
    > обновленным названием *'исходное-имя-файла_ГГГГ-ММ-ДД
    > ЧЧ_ММ.расширение'*.

3.  Для работ с формой завершения "комментарий": если на стороне сервера
    данная работа была завершена (хоть статусом, хоть прогрессом), то
    действие выполнять частично: этот комментарий необходимо добавить к
    работе как "обычный" комментарий. В журнал синхронизации при этом
    должна произойти запись в формате:

    -   условно успешная синхронизация:

        `Завершение работы "название_работы" не синхронизировано:
        Действие не может быть выполнено, так как процесс завершен
        (комментарий добавлен к работе как обычный)`

        `ГГГГ-ММ-ДД ЧЧ:ММ`

    -   неуспешная синхронизация:

        `Завершение работы "название_работы": ошибка синхронизации`

        `ГГГГ-ММ-ДД ЧЧ:ММ`

4.  Для работ без формы завершения: если на стороне сервера данная 
    работа была удалена, то действие не выполнять. В журнал 
    синхронизации при этом должна произойти запись в формате:

    -   условно успешная синхронизация:

        `Завершение работы "название_работы" не синхронизировано:
        Действие не может быть выполнено, так как процесс завершен`

        `ГГГГ-ММ-ДД ЧЧ:ММ`

    -   неуспешная синхронизация:

        `Завершение работы "название_работы": ошибка синхронизации`

        `ГГГГ-ММ-ДД ЧЧ:ММ`

5.  Для работ с формой завершения "файл": если на стороне сервера данная
    работа была удалена, то действие выполнять частично: этот файл или
    форму необходимо добавить в "Прочие". В журнал синхронизации при
    этом должна произойти запись в формате:

    -   условно успешная синхронизация:

        `Завершение работы "название_работы" не синхронизировано:
        Действие не может быть выполнено, так как процесс завершен (в
        "Прочие" добавлен файл формы завершения)`

        `ГГГГ-ММ-ДД ЧЧ:ММ`

    -   неуспешная синхронизация:

        `Завершение работы "название_работы": ошибка синхронизации`

        `ГГГГ-ММ-ДД ЧЧ:ММ`

    > **Замечание**
    >
    > Файл в "Прочие" должен добавляться в любом случае. Если файл с
    > таким же названием существует в "Приложениях", то он должен просто
    > добавиться в "Прочие". Если же в "Прочих" существует файл с таким
    > названием, то он все равно должен добавиться как отдельный файл с
    > обновленным названием *'исходное-имя-файла_ГГГГ-ММ-ДД
    > ЧЧ_ММ.расширение'*.

6.  Для работ с формой завершения "комментарий": если на стороне сервера
    данная работа была удалена, то действие не выполнять. В журнал
    синхронизации при этом должна произойти запись в формате:

    -   условно успешная синхронизация:

        `Завершение работы "название_работы" не синхронизировано:
        Действие не может быть выполнено, так как процесс завершен
        (комментарий не добавлен к работе)`

        `ГГГГ-ММ-ДД ЧЧ:ММ`

    -   неуспешная синхронизация:

        `Завершение работы "название_работы": ошибка синхронизации`

        `ГГГГ-ММ-ДД ЧЧ:ММ`

7.  Работы с формой завершения "форма" в режиме оффлайн завершить 
    никак нельзя, т.к. содержимое файлов по форме никогда не 
    синхронизируется.

8.  Для всех остальных случаев:

    -   необходимо фиксировать время применения действия на сервере;

    -   должен примениться статус завершенности со всеми сопутствующими
        параметрами завершения:

        -   идентификаторы операции PROGRESS / RESOLUTION_ACTION: 
            результат операции (завершено);

        -   идентификаторы операции POINT_RESULT: форма завершения
            комментарий, файл (в т.ч. выбранный из работы, добавленный с
            устройства или с камеры);

            *Примечание:* в список завершения работы "Из работы" (для
            формы завершения - файла) попадают как синхронизированные
            данные, так и файлы, добавленные в режиме оффлайна (пункт
            "Перепорученные" при этом недоступен, нельзя выбрать
            результат перепорученных работ).

        -   идентификаторы операции PROCESS: добавлены ли подпись и
            комментарий и результат операции (ознакомился, согласен/не
            согласен, утвердил/не утвердил);

        -   идентификатор действия RESULT: результат действия
            подтверждено или отклонено (включая измененные сроки и
            прогресс, комментарий-причина);

    -   в качестве времени изменения прогресса считать время применения
        действия на сервере;

    -   в журнал синхронизации при применении должна произойти запись в
        формате:

        -   успешная синхронизация:

            `Завершение работы "название_работы" синхронизировано`

            `ГГГГ-ММ-ДД ЧЧ:ММ`

        -   неуспешная синхронизация:

            `Завершение работы "название_работы": ошибка синхронизации`

            `ГГГГ-ММ-ДД ЧЧ:ММ`
            
            