> For the complete documentation index, see [llms.txt](https://leossnet.gitbook.io/jetcalc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://leossnet.gitbook.io/jetcalc/kontolnye-funkcii/sistema-blokirovok.md).

# 8.2. Система блокировок

**Системой блокировок** в JetCalc называется механизм, обеспечивающий **контроль за своевременностью** ввода и проверки первичных данных в формах ввода ответственными исполнителями.

Система блокировок JetCalc включает в себя следующие **элементы**:

1. Возможность **изменения статуса** документа на одно из следующих трех значений - открыт, заблокирован, проверен.&#x20;
2. Ведение **истории изменений** статуса каждого документа по каждому отчетному периоду с фиксацией исполнителя, даты и времени изменения статуса.&#x20;
3. **Блокировка** возможности **изменения первичных данных** в формах ввода при установлении статуса **заблокировано** или **проверено**.&#x20;
4. Выполнение ряда **проверок**, обеспечивающих целостность и качество первичных данных, перед установлением статуса **заблокирован**.&#x20;

## Демонстрация работы системы блокировок

В качестве демонстрации работы системы блокировок на следующих рисунках представлены последовательные шаги, которые выполняют пользователи **JetCalc** при работе с системой блокировки.

**Шаг 1. Ввод первичных данных**.

Документ имеет статус **Открыт**, первичные ячейки доступны для редактирования.

![](/files/-Lbn4JXSlAZanDO4bb8j)

**Шаг 2. Блокировка документа по окончании ввода** первичных данных.

В документе есть не исправленные контрольные точки. При нажатии на кнопку Заблокировать выходит панель с информацией о не пройденных проверках.

![](/files/-Lbn4JXU7BGPdToDc8-9)

**Шаг 3. Блокировка документа после исправления контрольных точек**.

Документ получает статус **Заблокирован**. Вместо кнопки **Заблокировать документ** на интерфейсе появляются кнопки **Утвердить документ** и **Разблокировать документ**. Первичные ячейки меняют цвет заливки с зеленого на желтый, что свидетельствует о блокировке возможности изменения данных. Документ может быть разблокирован, что возвращает его на **Шаг 1**.

![](/files/-Lbn4JXWttevNdNOPQ2Z)

**Шаг 4. Утверждение документа после проверки введенных данных**.

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

![](/files/-Lbn4JXYXW9loikOdeJc)

Обычно **первые три шага** выполняют пользователи подразделений или дочерних организаций, которые **отвечают за предоставление** управленческой отчетности, **четвертый же шаг** выполняют пользователи головой организации или подразделений сводной отчетности, которые **отвечают за проверку** полученных форм отчетности.

В любой момент можно посмотреть **историю изменений** статуса документа, нажав на кнопку справа от кнопок изменения статуса с иконкой в виде белой буквы i в синем кружке:

![](/files/-Lbn4JX_AePvdIAzsGA5)

## Настройка системы блокировок

Настройка системы блокировок выполняется в административной панели в разделе **Процессы**. Настройка блокировок выполняется в следующем порядке:

1. Настраивается **таблица статусов** документа.&#x20;
2. Определяются **маршруты** изменения статуса.&#x20;
3. Для каждого маршрута настраиваются **проверки**, которые должны выполняться в момент смены статуса.

Таблица статусов настраивается в административной панели в разделе **Процессы > Состояния**. В данной панели необходимо настроить три статуса, определив для каждого следующие атрибуты, которые сведены в следующую таблицу:

| Атрибут              | Открыт | Заблокирован | Проверен |
| -------------------- | ------ | ------------ | -------- |
| Код статуса          | opened | closed       | agreed   |
| Наименование         | Открыт | Заблокирован | Проверен |
| Краткое наименование | Открыт | Заблокирован | Проверен |
| Статус по умолчанию  | да     | -            | -        |
| Открыт               | да     | -            | -        |
| Заблокирован         | -      | да           | -        |
| Утвержден            | -      | -            | да       |

Таблица статусов является единственной в **JetCalc** таблицей настройки, которую необходимо настроить строго в соответствии с вышеприведенными параметрами. Это обусловлено тем, что в этой таблице связываются коды статусов, с которыми выполняется связь с другими атрибутами в базе данных, с логическими атрибутами, на которые завязан программный код **JetCalc**.

Внешний вид настройки статусов документа представлен на следующем рисунке:

![](/files/-Lbn4JXb4YDYG46OcMDJ)

Следующим шагом является **настройка маршрутов** изменения статусов документа, которые определяются возможные варианты изменения одного состояния на другое. Маршруты настраиваются в административной панели на вкладке **Процессы > Маршруты**. Потенциально может быть определено шесть возможных маршрутов, хотя на практике имеет смысле только **четыре** маршрута, приведенные на следующем рисунке:

![](/files/-Lbn4JXdCM-zqfn7M7C1)

Как видно на приведенном выше рисунке в JetCalc используются следующие маршруты изменения статуса документа:

* **Открыт** > **Заблокирован**
* **Заблокирован** > **Утвержден**
* **Заблокирован** > **Открыт**
* **Утвержден** > **Открыт**&#x20;

После создания маршрутов выполнятся настройка каждого из них по следующим **разделам**, каждый из которых может быть настроен как в отдельной вкладке, так и в контексте текущего маршрута:

* **Периоды маршрутов** - определяется перечень периодов, в которых может быть изменен статус документа; обычно это отчетные периоды;
* **Зависимые периоды** - для отдельных периодов маршрутов настраиваются проверки состояний зависимых периодов;
* **Связанные периоды** - для отдельных периодов маршрутов настраиваются автоматическое установление статуса документа для связанных периодов;
* **Файлы** - для отдельных периодов маршрутов настраиваются проверки наличия прикрепленный файлов определенного типа.&#x20;

Далее приведено описание каждого раздела, настраиваемого в режиме контекста текущего маршрута.

### Настройка периодов маршрутов

![](/files/-Lbn4JXfe9gGKPCal-if)

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

* **Тип документа** - определяет, для каких типов документов применяется текущий период маршрута;
* **Группа объектов учета** - определяет, для каких объектов учета применяется текущий период маршрута;
* **Не в группе** - атрибут, исключающий действие объектов учета для группы объектов учета.

### Настройка связанных периодов

![](/files/-Lbn4JXh7FNvzep3PbNE)

Для каждого маршрута настраивается перечень периодов маршрутов и связанных с ним других периодов, для которых автоматически изменяется статус документа одновременно с изменением статуса документа в периоде маршрута.

### Настройка зависимых периодов

![](/files/-Lbn4JXjlXEI33K4835O)

Для каждого периода маршрута определяется период, от статуса которого зависит возможность изменения статуса документа в соответствии с текущим маршрутом.

> На приведенном выше рисунке установленная для периода **Февраль** зависимость от периода **Январь** и его статуса **Заблокирован** означает, что период **Февраль** может быть заблокирован только при условии, что уже заблокирован период **Январь**.

При этом для каждого из периодов определяется набор фильтров:

* **Тип документа** - определяет, для каких типов документов применяется текущий период маршрута;
* **Группа объектов учета** - определяет, для каких объектов учета применяется текущий период маршрута;
* **Не в группе** - атрибут, исключающий действие объектов учета для группы объектов учета.

### Настройка проверки наличия файлов

![](/files/-Lbn4JXlr-E1MFlE7P1C)

Для группы периодов маршрута или отдельного период маршрута определяется для некоторых документов необходимость наличия прикрепленного файла, у которого установлен определенных тип файлов.

> На представленном выше рисунке в квартальных отчетных периодах (март, июнь, сентябрь и декабрь) для документа **Финансовые результаты** проверяется наличие файла с типом **Отчет о финансовых результатах**, а для документа **Бухгалтерских баланс** - с типом **Бухгалтерский баланс**.
