Перейти к содержанию

Оргструктура — синхронизация

Оргструктуру можно наполнять и поддерживать несколькими способами: синхронизацией с Active Directory / LDAP, синхронизацией с 1С, импортом из Excel и внешних источников или вручную. Эта страница описывает интеграции; детальная техническая спецификация — Справочник AD Sync.

1. Синхронизация с Active Directory / LDAP

Архитектура

Данные из Active Directory попадают в оргструктуру 1Ф через профиль синхронизации:

AD Server (LDAP)
  └─ OU (Organizational Units)
       └─ Users, Groups
            ↓ задание ADSyncJob / API синхронизации
SynchronizationProfiles
  └─ SynchronizationProfilesADSettings
       ├─ SyncOrganizationUnits (флаг)
       └─ SynchronizationProfilesADOrgUnits (фильтры OU)
            ↓
OrgStructureUnit ← UserOrgStructureUnit ← Users

Ключевые таблицы синхронизации

В синхронизации оргструктуры с AD задействованы следующие таблицы:

Таблица Назначение
SynchronizationProfiles Профиль синхронизации (Id, SyncType, ServiceId, IsActive)
SynchronizationProfilesADSettings Флаги: SyncUserData, SyncGroupData, SyncOrganizationUnits, MaximumADSyncRows, LDAP-фильтры
SynchronizationProfilesADOrgUnits Фильтр OU: OrgUnitPath, OrgUnitName, IncludeNested
LDAPServicesCredentials Учётные данные подключения к домену
ADPropertyMapping Маппинг атрибутов AD → поля 1Формы

Как работает

Синхронизация оргструктуры с AD идёт по такой логике:

  1. Профиль определяет домен и настройки: какие данные синхронизировать (пользователей, группы, оргструктуру).
  2. Фильтр OU (SynchronizationProfilesADOrgUnits) определяет, из каких Organizational Units AD тянуть данные. IncludeNested — включать вложенные OU.
  3. Маппинг свойств — блок «Рабочая информация» в ADPropertyMapping содержит динамические поля OrgUnitType{Id}, связывающие атрибуты AD (department, title, division) с типами оргструктуры 1Формы.
  4. При синхронизации пользователя обновляются его привязки к OrgStructureUnit через UserOrgStructureUnit.

Флаг SyncOnlyADEntity

При включённом SyncOnlyADEntity = true — синхронизируются только те элементы оргструктуры, которые существуют в AD. Элементы, созданные вручную в 1Форме, не затрагиваются.

API синхронизации с AD

Управление AD-синхронизацией доступно через REST API:

Route Назначение
GET/POST /api/sync-ad/profiles/{profileId}/settings Настройки профиля
GET /api/sync-ad/profiles/{profileId}/domain/folders-tree Дерево OU домена
POST /api/sync-ad/profiles/{profileId}/domain/folder Содержимое конкретной OU
POST /api/sync-ad/profiles/{profileId}/domain/unload-users Выгрузка пользователей из AD
POST /api/sync-ad/link-users Привязка AD-пользователей по SID
GET /api/sync-ad/profiles/{profileId}/sync-properties/blocks Блоки маппинга свойств
POST /api/sync-ad/sync-properties/update Обновление маппинга

Ограничения

При настройке синхронизации с AD учитывайте ограничения:

  • Иерархия AD должна быть ясной; тип AD-объекта сопоставляется 1:1 с типом OrgStructureType
  • Должность (IsPosition) обязательна в обеих системах
  • На PostgreSQL отсутствует хранимая процедура tc_NormalizeGroupUsersMembership (только для MS SQL)

2. Синхронизация с 1С

API синхронизации с 1С

Базовый путь API: /api/admin/org-structure/1c-sync/...

Механизм

Синхронизация с 1С настраивается и запускается так:

  1. Создаётся XML-конфигурация маппинга полей 1С ↔ 1Форма
  2. Шаблон конфигурации: GET /api/admin/org-structure/1c-sync/configs/default
  3. Сохранение конфигурации: POST /api/admin/org-structure/1c-sync/configs
  4. Запуск синхронизации: POST /api/admin/org-structure/1c-sync/sync

Поля связи в OrgStructureUnit

Связь единиц 1Ф с объектами 1С хранится в полях:

Поле Назначение
GuidFrom1C GUID объекта в 1С
ParentGuidFrom1C GUID родителя в 1С

При синхронизации сопоставление идёт по GuidFrom1C.

3. Импорт из Excel / внешних источников

Excel-загрузка пользователей

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

Импорт данных

Через механизм импорта данных оргструктуру можно наполнять:

  • Ручной импорт или автоматический по расписанию
  • Внешний источник → OrgStructureUnit (через ExternalID / ParentExternalID)

Поля связи для импорта

Связь единиц 1Ф с внешней системой хранится в полях:

Поле Назначение
ExternalID ID из внешней системы
ParentExternalID ID родителя из внешней системы
IsImported (UserOrgStructureUnit) Признак: привязка пользователя создана импортом

4. Ручное создание

Оргструктуру можно создать и вручную — через интерфейс администратора или Admin API:

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

Последовательность: типы → дерево → должности → пользователи → группы.