# ОФС

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

## Основные сведения о справочнике ОФС

Справочник ОФС представляет собой иерархическую структуру должностей, подразделений и других организационных объектов предприятия. Для каждого элемента ОФС определяется список сотрудников, которые к нему относятся.

ОФС используется в системе для следующих задач:
- использование в прикладной логике, где требуется выбор подразделения, должности или другого организационного элемента;
- назначение объектов ОФС в качестве ответственных за выполнение задач, связанных с рассылкой и контролем обработки документов;
- определение управленческой подчиненности между сотрудниками для автоматического определения руководителей и подчиненных;
- разграничение области видимости документов и данных.

Если это предусмотрено настройками системы, сотрудники, находящиеся выше в иерархии ОФС, могут получать доступ к данным, доступным их подчиненным позициям.

ОФС используется для ведения нескольких юридических лиц и организационных контуров в рамках одной системы. Через поле **Организация**, связь с бизнес-единицами, подразделениями, цехами, складами и другими организационными объектами система позволяет описывать структуру группы компаний в едином справочнике.

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

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

**Что может быть объектом ОФС**

ОФС не ограничивается только подразделениями и должностями. Элемент ОФС может ссылаться на разные объекты системы, если это требуется прикладной логикой.

Объектами ОФС могут быть:
- подразделения;
- должности;
- бизнес-единицы;
- цеха;
- склады;
- другие организационные объекты.

За счет этого ОФС используется не только как кадровая иерархия, но и как универсальная организационная структура для прикладных сценариев.

**Где находится ОФС в системе**

Список элементов ОФС хранится в классе `Bs_OFStructure`.

Путь в системе: `Настройки системы > Классы > Bs_OFStructure`.

В этом классе создаются и редактируются элементы ОФС.

## Карточка ОФС

Для работы используется существующая ОФС или создается новая. В карточке ОФС задаются основные параметры элемента структуры.

### Основные поля

**Наименование**
Название элемента ОФС.

**Тип объекта**
Необязательное поле. Используется в случаях, когда справочник ОФС типизирован.

Поле позволяет:
- разделять разные виды ОФС;
- задавать разное отображение карточек;
- использовать разную прикладную логику для разных типов организационных объектов.

Например, тип объекта может использоваться, если для отделов, структурных подразделений и других элементов требуется различное поведение системы.

**Класс**
Определяет класс-источник объекта ОФС.

Элемент ОФС может быть связан с объектом конкретного класса, например:
- `Bs_Department` — подразделение;
- `Bs_BisObj` — бизнес-единица;
- другой класс, если ОФС представляет цех, склад или иной объект.

**Объект**
Конкретный объект выбранного класса.

Поле определяет, какой именно объект системы представлен данным элементом ОФС.

**Организация**
Организация, к которой относится элемент ОФС.

Поле используется для разделения структуры по организациям и в прикладной логике.

**Руководитель**
Сотрудник, являющийся руководителем данного элемента ОФС.

Поле используется:
- при маршрутизации процессов;
- при определении согласующих;
- в логике подчиненности;
- при автоматическом определении руководителя для сотрудников, входящих в данную ОФС.

**Принадлежит ЦО**
Связь с центром ответственности.

Поле используется в сценариях, связанных с финансовой ответственностью, и позволяет сопоставить элемент ОФС с центром ответственности.

**Предок текущей ОФС**
Ссылка на вышестоящий элемент ОФС.

Поле используется для построения иерархии структуры.

### Вкладки

#### Сотрудники

В данной вкладке задается список сотрудников, относящихся к данному элементу структуры.

На этой вкладке:
- отображаются сотрудники, включенные в текущую ОФС;
- можно добавить новых сотрудников.

Через эту связь определяется:
- принадлежность сотрудника к позиции или подразделению;
- участие сотрудника в процессах;
- его место в организационной структуре;
- применение ролей, профилей и других настроек, заданных для ОФС.

#### Характеристики

Это стандартная вкладка объектных характеристик, которая подключается на типе объекта в классе. Конкретный состав полей определяется настройками проекта.

На этой вкладке могут задаваться роли и другие параметры для сотрудников, включенных в данную ОФС.

**Основные поля вкладки:**

**Роль уровня доступа к позиции ОФС**
Роль, которая задает права доступа для сотрудников данной позиции ОФС. Это базовая роль, действующая в пределах текущего элемента ОФС.

**Роль доступа, включающая подчиненные позиции ОФС**
Роль, которая действует с учетом иерархии ОФС. Она используется в случаях, когда сотрудник должен иметь доступ не только в рамках своей позиции, но и к подчиненным элементам структуры.

Например, такая роль может использоваться для руководителя подразделения, который должен иметь доступ к данным подчиненных ему позиций ОФС.

**Профиль позиции ОФС**
Профиль, назначаемый для данной ОФС. Используется для комплексной настройки доступа и других параметров, применяемых к сотрудникам, входящим в эту ОФС.

**Уровень контроля**
Параметр, используемый в прикладной логике. Может применяться в сценариях контроля документов, маршрутизации и других процессах. Конкретное поведение определяется настройками проекта.

#### Адреса

На вкладке **Адреса** можно указать адрес, связанный с элементом ОФС.

#### Функциональные возможности ОФС

На вкладке **Функциональные возможности ОФС** задаются признаки, которые могут использоваться в прикладной логике системы.

С их помощью можно определить, какую функцию может выполнять данный элемент ОФС в конкретных сценариях.

Подробное описание применения и настройки этого механизма приведено в разделе [Ограничения по функциональным возможностям ОФС](#ограничения-по-функциональным-возможностям-офс).

## Связь ОФС с LDAP-синхронизацией

ОФС используется при назначении прав и других настроек для пользователей, загружаемых через LDAP-синхронизацию.

Для этого в системе настраивается [соответствие между доменной группой и объектом ОФС](https://help.globalerp.ru/books/GlobalUserGuideSystemWide/SNAPSHOT/html/service/0080_%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F.html#id7). Карточка объекта ОФС должна быть предварительно заполнена: для нее должны быть заданы сотрудники, роли, профили и другие параметры, которые требуется применять при синхронизации.

После настройки такого соответствия пользователи, входящие в доменную группу, при синхронизации связываются с указанным объектом ОФС. За счет этого к ним применяются настройки, заданные для данной ОФС.

Это позволяет централизованно назначать права и другие параметры через ОФС, а не настраивать их отдельно для каждого пользователя.

Подробное описание синхронизации приведено в статье [LDAP-синхронизация](https://help.globalerp.ru/books/GlobalUserGuideSystemWide/SNAPSHOT/html/service/0080_%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F.html).

**Иерархия ОФС и применение прав**

Иерархия ОФС используется для определения подчиненности элементов структуры, но сама по себе не приводит к автоматическому наследованию прав.

Права и профили применяются только для того элемента ОФС, с которым связан пользователь.

Если для данного элемента ОФС не заданы роли или профили:
- пользователь не получает дополнительные права;
- права не применяются автоматически ни от вышестоящих, ни от подчиненных элементов структуры.

Использование иерархии при доступе определяется настройками ролей и прикладной логикой. Например, роль может предусматривать доступ к данным подчиненных элементов ОФС.

Таким образом, иерархия ОФС задает структуру подчиненности и используется в логике системы, но не является механизмом автоматического наследования прав.

## Ограничения по функциональным возможностям ОФС

### Основная информация

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

С помощью этого механизма можно определить, какие элементы ОФС могут использоваться в конкретной роли, и ограничить их выбор в атрибутах, ссылающихся на ОФС.

Например, можно указать, что в атрибуте **Инициатор закупки** доступны только те ОФС, для которых задана функциональная возможность **Ответственное подразделение**. В этом случае пользователь сможет выбрать только подходящие элементы ОФС.

Чтобы ограничение работало для конкретного атрибута, ссылочного на ОФС, требуется участие разработчика. Последующая настройка выполняется через пользовательский интерфейс.

### Настройка ограничений по функциональным возможностям

Настройка выполняется в приложении **Управление закупками и складом** в меню `Настройки > Настройка ОФС`.

Настройка состоит из двух этапов.

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

![](../img/basic_039_functionality.jpg)

2. В интерфейсе **Установка функциональных возможностей для ОФС** нужным элементам ОФС назначаются требуемые функциональные возможности.

![](../img/basic_040_officecapabilities.jpg)
