Top.Mail.Ru
Центр помощи / Для администратора / 4. Интеграции / Синхронизация пользователей / Синхронизация пользователей из 1С (UnSpot SCIM Adapter)

Синхронизация пользователей из 1С (UnSpot SCIM Adapter)

UnSpot умеет получать сотрудников напрямую из 1С: внешняя обработка «UnSpot SCIM Adapter» выгружает из ЗУП (или другой конфигурации на базе БСП) пользователей, оргструктуру, руководителей и режим работы сотрудников и передаёт их в UnSpot по стандарту SCIM 2.0. В этой статье описано, как устроена синхронизация, что означает каждая настройка обработки, как работает скрипт выборки данных из 1С и код синхронизации, а также как 1С-синхронизация совместно работает с синхронизацией из Active Directory.

Как работает синхронизация

Синхронизация выполняется внешней обработкой 1С «UnSpot SCIM Adapter» (файл 1s-to-scim-adapter-bsp.epf). Обработка устанавливается в вашу информационную базу 1С и работает по расписанию или по кнопке. У неё две составляющие:

1. Скрипт выборки данных — код на встроенном языке 1С, который выбирает данные из вашей информационной базы: сотрудников, подразделения, руководителей, графики работы. Для типовой ЗУП 3.1 скрипт уже встроен в обработку; для нестандартных конфигураций его можно написать самостоятельно прямо в форме настроек (поле «Код выбора данных для синхронизации»).

2. Код синхронизации — часть обработки, которая передаёт выбранные данные в UnSpot по SCIM API: читает текущих пользователей UnSpot, сопоставляет их с данными 1С, создаёт, обновляет и удаляет пользователей, обновляет оргструктуру.

Каждый запуск синхронизации проходит по одному и тому же конвейеру: обработка читает настройки → получает по SCIM список всех пользователей UnSpot → выполняет скрипт выборки данных из 1С → сопоставляет два списка и определяет, кого нужно создать, обновить или удалить → отправляет изменения в UnSpot → при включённой оргструктуре передаёт полное дерево подразделений. Все шаги протоколируются в журнале регистрации 1С.

Требования

Для работы синхронизации понадобится: платформа 1С 8.3 (работа проверена на версии 8.3.27); конфигурация с Библиотекой стандартных подсистем (БСП) — встроенная выборка данных реализована для «Зарплата и управление персоналом» 3.1 (ПРОФ и КОРП), для других конфигураций используется режим «Нестандартная конфигурация» с собственным кодом выборки; файл внешней обработки 1s-to-scim-adapter-bsp.epf — его предоставляет команда UnSpot; права администратора в 1С (обработка подключается без безопасного режима, так как исполняет код выборки данных); подключение SCIM 2.0 в UnSpot — URL и токен доступа (см. следующий раздел). Синхронизируются только сотрудники, у которых в 1С заполнен email: адрес электронной почты — это ключ, по которому UnSpot сопоставляет учётные записи.

Подключение на стороне UnSpot

Токен и адрес для обработки создаются в админ-консоли UnSpot. Понадобится роль Владельца или Администратора интеграций.

Откройте Настройка → Интеграции → Синхронизации и на карточке SCIM 2.0 нажмите «Подключить». UnSpot покажет: URL вида https://ваш-домен.unspot.ru/api/scim — это значение поля «UnSpot API URL» в обработке; секретный токен (строка из 64 символов) — значение поля «Токен доступа». Токен показывается один раз в момент создания — сохраните его сразу. Токен один на компанию: если пересоздать подключение, старый токен перестанет действовать, и его нужно будет заменить в настройках обработки.

В настройках подключения SCIM также доступны: срок работы токена — «Без ограничения» или ограниченный срок (по истечении запросы обработки начнут завершаться ошибкой «Token is expired», а на адреса исходящей подписки с событием «Системные ошибки» в день истечения придёт письмо-предупреждение); тумблер «Отправлять приветственные письма» — если он включён, каждый сотрудник, созданный синхронизацией, получит письмо с приглашением и паролем; по умолчанию тумблер выключен, и пользователей можно пригласить позже вручную.

Установка обработки в 1С

Обработка подключается стандартным механизмом БСП «Дополнительные отчеты и обработки»: запустите 1С:Предприятие (не Конфигуратор) → Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки (если ссылка недоступна, включите одноимённый флажок на этой же странице) → «Добавить из файла…» → выберите файл 1s-to-scim-adapter-bsp.epf. После подключения в списке появится обработка UnSpot SCIM Adapter с двумя командами: UnSpot SCIM Adapter Settings — форма настроек синхронизации; UnSpot SCIM Adapter Sync — серверная команда запуска синхронизации, на которую назначается регламентное задание.

Настройки обработки

Форма «Настройки синхронизации сотрудников в UnSpot» (команда UnSpot SCIM Adapter Settings) содержит следующие поля. Настройки сохраняются внутри информационной базы, поэтому вводятся один раз.

UnSpot API URL

Адрес SCIM API вашей компании — значение URL с карточки SCIM 2.0 в UnSpot, например https://ваш-домен.unspot.ru/api/scim. Обработка сама разбирает адрес: для https используется защищённое соединение (порт 443), для http — порт 80. К этому адресу обработка добавляет пути ресурсов (/Users, /OrgUnits). Если адрес указан не полностью или без протокола, при проверке настроек появится ошибка «Неверный формат URL».

Токен доступа

Секретный токен с карточки SCIM 2.0. Обработка передаёт его в каждом запросе в заголовке Authorization: Bearer. Если токен пустой, неверный или истёк, синхронизация останавливается с ошибкой авторизации (HTTP 401 или сообщение «Token is expired»); в этом случае пересоздайте подключение SCIM 2.0 в UnSpot и обновите токен в настройках обработки.

Конфигурация 1С

Определяет, какой скрипт выборки данных использовать. Два состояния:

«ЗУП 3.1 (ПРОФ/КОРП)» — используется встроенный скрипт выборки для типовой конфигурации «Зарплата и управление персоналом». Поле «Код выбора данных» при этом показывает текст встроенного скрипта только для чтения — его можно изучить, но не изменить. Встроенный скрипт обновляется вместе с обработкой при установке новой версии .epf.

«Нестандартная конфигурация» — используется ваш собственный код выборки: поле «Код выбора данных» становится редактируемым, и написанный вами скрипт сохраняется в настройках в информационной базе. Этот режим предназначен для любых конфигураций, отличных от типовой ЗУП 3.1 (например, отраслевых решений или Бухгалтерии предприятия): за основу можно взять встроенный ЗУП-скрипт и адаптировать имена справочников и регистров под вашу конфигурацию.

Синхронизация пользователей (режим)

Главная настройка, которая определяет, какие операции обработка вправе выполнять с учётными записями в UnSpot. Три режима:

РежимЧто делаетКогда использовать
ПолнаяСоздание, обновление и удаление. 1С — главный источник учётных записей: новые сотрудники создаются в UnSpot, изменившиеся обновляются, а пользователи, ранее созданные синхронизацией и пропавшие из выборки 1С (например, уволенные), удаляются из UnSpot. Сопоставление ведётся по внутреннему идентификатору физлица (externalId), а для новых — по email. При каждом обновлении пользователь активируется (active=true).1С — единственный или основной источник данных о сотрудниках.
Только обновлениеОбновляются только уже существующие в UnSpot пользователи, найденные по email. Никто не создаётся, не удаляется и не активируется; идентификатор externalId не записывается. Обработка дополняет карточки данными из 1С: ФИО, должность, табельный номер, подразделение, руководитель, режим работы.Учётные записи создаёт другой источник (Active Directory, Entra ID, Google Workspace, ручное добавление), а 1С обогащает их кадровыми данными. Рекомендуемый режим при совместной работе с AD.
Только обновление оргструктурыПередаётся дерево подразделений (оргструктура) и обновляется привязка существующих пользователей к подразделениям. Другие поля пользователей не изменяются. Флажок «Оргструктура» в этом режиме включается принудительно, а «Режим работы» — отключается.Нужна только оргструктура из 1С, все остальные данные ведёт другой источник.

Важно про режим «Полная»: обработка удаляет только тех пользователей UnSpot, у которых заполнен externalId — то есть тех, кого она сама (или другой SCIM-источник) когда-то создала. Пользователи, добавленные вручную или каталожной синхронизацией (AD/LDAP), при полной синхронизации из 1С не удаляются.

Оргструктура

Флажок «Оргструктура» (подсказка в форме: «список подразделений и подразделения пользователей») управляет синхронизацией дерева отделов. Когда он включён: каждому сотруднику передаётся полный путь его подразделения через косую черту, например «Компания/Департамент продаж/Отдел по работе с партнёрами» — по этому пути UnSpot автоматически создаёт недостающие подразделения и привязывает к ним сотрудника; кроме того, после обновления пользователей обработка передаёт в UnSpot полное дерево подразделений одним запросом (включая пустые подразделения и их руководителей). Когда флажок выключен, сотруднику передаётся только название его подразделения как текстовое поле «Отдел» (department) без построения дерева.

В типовой ЗУП в дерево попадают справочники «Организации» и «Подразделения организаций»; расформированные подразделения исключаются. Если в базе несколько головных организаций (холдинг), название организации включается в начало пути каждого подразделения, чтобы одноимённые отделы разных юрлиц не конфликтовали; если головная организация одна, её название в пути не участвует. Синхронизация оргструктуры — односторонняя: 1С является источником истины, и подразделения, созданные предыдущими синхронизациями, но пропавшие из выборки 1С, будут удалены из UnSpot (сотрудники при этом не удаляются — у них просто очищается привязка к подразделению). Подразделения, созданные в UnSpot вручную, синхронизация не трогает.

Состояния флажка: в режиме «Только обновление оргструктуры» он включён принудительно и недоступен для изменения; в остальных режимах включается по желанию.

Менеджер

Флажок «Менеджер» включает передачу руководителя каждого сотрудника. Для типовой ЗУП руководитель определяется автоматически: у сотрудника это руководитель его подразделения (из регистра руководителей подразделений; заполнение руководителей подразделений доступно в ЗУП КОРП), у подразделений верхнего уровня — руководитель организации из настроек ответственных лиц. В UnSpot поле «Руководитель» влияет на согласования, отчёты «по подчинённым» и права руководителя.

Особенности: сотрудник не может быть руководителем самого себя — в этом случае руководитель не передаётся; руководителем в UnSpot может быть назначен только активный пользователь, поэтому если руководитель появляется в UnSpot в этом же запуске синхронизации, обработка назначит его руководителем подчинённых отложенно, после создания. Если email руководителя в 1С не заполнен, руководитель не синхронизируется.

Режим работы

Флажок «Режим работы» включает расчёт и передачу показателя attendance — доли офисных дней сотрудника, от 0 (полностью удалённая работа) до 100 (полностью офисная). Для типовой ЗУП показатель считается «на основании графика работы за текущий месяц»: обработка берёт график работы сотрудника за текущий календарный месяц (индивидуальный график, если он есть, полностью замещает общий), учитывает дни с видом времени «Явка» (код Я) как офисные и «Дистанционная работа» (код Д) как удалённые, дополнительно учитывает признак дистанционной работы из кадровых документов (регистр «Дистанционная работа сотрудников»), и делит число офисных дней на общее число рабочих дней месяца.

Пример: в июле у сотрудника по графику 20 рабочих дней, из них 15 отмечены «Явка» и 5 — «Дистанционная работа». Attendance = 15 / 20 × 100 = 75, в UnSpot сотрудник получит гибридный режим работы. Дни отпуска, больничного, командировок и других видов времени в расчёте не участвуют — они не считаются ни офисными, ни удалёнными. Если данных о графике за месяц нет, режим работы передаётся неопределённым.

В UnSpot значение attendance отображается в карточке сотрудника как режим работы (0 — «удалённый», 1–99 — «гибридный», 100 — «офисный», не задано — «свободный») и учитывается в аналитике гибридного офиса и отчётах. Состояния флажка: недоступен в режиме «Только обновление оргструктуры»; в остальных режимах включается по желанию.

Код выбора данных для синхронизации

Многострочное поле со скриптом выборки данных — второй составляющей обработки (см. раздел «Как работает скрипт выборки данных из 1С»). Состояния поля: при выборе «ЗУП 3.1 (ПРОФ/КОРП)» — только чтение, показывается встроенный скрипт с комментариями; при выборе «Нестандартная конфигурация» — редактируемое, и если своего кода ещё нет, поле заполняется шаблоном-инструкцией с перечнем обязательных и необязательных полей. Ваш код сохраняется вместе с остальными настройками в информационной базе.

Кнопки «Сохранить», «Сохранить и проверить», «Сохранить и запустить»

Сохранить — проверяет заполненность обязательных полей (URL, токен, выбор данных, режим синхронизации) и сохраняет настройки. Сохранить и проверить — дополнительно выполняет пробную выборку и пробное обращение к UnSpot без изменения данных; при успехе выводятся сообщения: «Настройки сохранены», «Проверка настроек..», «Выбрано пользователей 1С: N», при включённой оргструктуре «Выбрано подразделений 1С: N», «Проверен выбор пользователей UnSpot», «Проверка завершена». Если числа отличаются от ожидаемых (например, ноль пользователей), проверьте, заполнены ли email сотрудников. Сохранить и запустить — сохраняет настройки и сразу выполняет полную синхронизацию; ход выполнения записывается в журнал регистрации.

Регулярный запуск и журнал

Для регулярной синхронизации назначьте регламентное задание: откройте Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки, дважды щёлкните по обработке UnSpot SCIM Adapter и в строке команды UnSpot SCIM Adapter Sync отметьте флажок в колонке с часами — откроется окно «Расписание», в котором задаётся периодичность запуска (например, ежедневно, один раз в день). Здесь же синхронизацию можно запустить вручную: выделите команду и нажмите «Выполнить». Рекомендуемая частота — не чаще одного раза в час: обновление оргструктуры на стороне UnSpot ограничено сервером примерно одним запросом в час, и более частые запуски с включённой оргструктурой будут завершаться ошибкой «Организационные подразделения не могут быть обновлены. Пожалуйста, попробуйте позже».

Все шаги синхронизации записываются в журнал регистрации: Администрирование → Обслуживание → Журнал регистрации, события с именем вида «UnSpot#ггммдд». По каждому пользователю фиксируются отправленные данные и код ответа сервера — это основной инструмент диагностики.

Как работает скрипт выборки данных из 1С

Скрипт выборки — это код на встроенном языке 1С, который обработка исполняет в начале каждой синхронизации. Его задача — сформировать массив структур СотрудникиДляUnspot (и, при включённой оргструктуре, массив ОргструктураДляUnspot). Всё, что скрипт положит в эти массивы, код синхронизации передаст в UnSpot. Скрипту доступны настройки формы в виде переменных (СинхронизироватьОргструктуру, СинхронизироватьМенеджера, СинхронизироватьРежимРаботы, СинхронизацияПользователей), поэтому один и тот же скрипт корректно работает во всех режимах.

Встроенный скрипт для ЗУП 3.1 выполняет следующие шаги:

1. Выборка действующих сотрудников. Используется стандартный метод ЗУП КадровыйУчет.СотрудникиОрганизации с параметрами на текущую дату — он возвращает только не уволенных сотрудников. Запрашиваются кадровые данные: сотрудник, физлицо, подразделение, должность, количество ставок, вид занятости, фамилия, имя, email, табельный номер, дата приёма. Дополнительно накладывается отбор «email заполнен»: сотрудники без электронной почты в синхронизацию не попадают.

2. Дедупликация совместителей. Если одно физлицо занимает несколько позиций (основное место плюс совместительство), в UnSpot нужно передать одну учётную запись. Скрипт выбирает «лучшую» позицию по приоритету вида занятости (основное место работы → внутреннее совместительство → совместительство → подработка), а при равном приоритете — позицию с большей ставкой.

3. Формирование структуры сотрудника. Для каждого физлица собирается структура с полями для UnSpot: уникальный идентификатор физлица (externalId — используется как надёжный ключ сопоставления при полной синхронизации), email в нижнем регистре (userName), фамилия и имя, наименование должности (title), табельный номер (employeeId), подразделение — полным путём (orgUnit) или названием (department), в зависимости от флажка «Оргструктура».

4. Руководители. При включённом флажке «Менеджер» скрипт собирает руководителей: для организаций — из настроек ответственных лиц (функция ПодписиДокументов.ОтветственныеЛицаОрганизации), для подразделений — из данных руководителей подразделений (РуководителиПодразделений.ДанныеРуководителей по структуре предприятия; заполняется в ЗУП КОРП). Email руководителя определяется по контактной информации физлица. Каждому сотруднику в поле manager записывается email руководителя его подразделения.

5. Режим работы. При включённом флажке «Режим работы» вызывается встроенная функция ЗаполнитьРежимРаботыСогласноГрафикуРаботы, которая по регистрам графиков (ГрафикРаботыСотрудников, ГрафикиРаботыПоВидамВремени, ДанныеИндивидуальныхГрафиковСотрудников) и регистру «Дистанционная работа сотрудников» вычисляет attendance каждого сотрудника за текущий месяц, как описано в разделе «Режим работы».

6. Оргструктура. При включённом флажке «Оргструктура» скрипт обходит справочники «Организации» и «Подразделения организаций», строит для каждого элемента полный путь (функции ПолучитьИерархиюПодразделенийВСтроке и ПолучитьИерархиюОрганизацийВСтроке), исключает расформированные подразделения и добавляет руководителя и описание. Результат кладётся в массив ОргструктураДляUnspot.

Для нестандартной конфигурации вы пишете аналогичный код сами. Контракт простой: заполнить массив СотрудникиДляUnspot структурами со следующими полями (и ОргструктураДляUnspot — структурами с полями path, manager, description, если оргструктура включена):

ПолеОбязательностьЧто это в UnSpot
userNameобязательноEmail сотрудника — ключ сопоставления учётных записей
externalIdдля режима «Полная»Уникальный идентификатор физлица (до 36 символов) — ключ сопоставления, не зависящий от смены email
familyName, givenNameдля режима «Полная»Фамилия и имя
titleнетДолжность
employeeIdнетТабельный номер
departmentнетНазвание отдела (текст, без дерева подразделений)
orgUnitнетПолный путь подразделения через «/», от корневого к дочернему
managerнетEmail руководителя (должен быть активным пользователем UnSpot)
attendanceнетРежим работы: целое от 0 (удалённый) до 100 (офисный) или Неопределено

Пример формирования одной записи на встроенном языке 1С:

// каждый элемент массива СотрудникиДляUnspot — это Структура
Сотрудник = Новый Структура;
Сотрудник.Вставить("userName", "i.petrov@company.ru");
Сотрудник.Вставить("externalId", "f81d4fae-7dec-11d0-a765-00a0c91e6bf6");
Сотрудник.Вставить("familyName", "Петров");
Сотрудник.Вставить("givenName", "Иван");
Сотрудник.Вставить("title", "Менеджер по продажам");
Сотрудник.Вставить("employeeId", "0000-00042");
Сотрудник.Вставить("orgUnit", "Компания/Департамент продаж/Отдел продаж");
Сотрудник.Вставить("manager", "a.sidorov@company.ru");
Сотрудник.Вставить("attendance", 75);
СотрудникиДляUnspot.Добавить(Сотрудник);

В коде выборки доступны вспомогательные функции обработки: ПолучитьКонтактФизическогоЛица (email физлица), ПолучитьИерархиюПодразделенийВСтроке и ПолучитьИерархиюОрганизацийВСтроке (построение пути), ПолучитьКоличествоЭлементовСправочника, а также ЗаполнитьРежимРаботыСогласноГрафикуРаботы для расчёта attendance по графикам (требует, чтобы в структуре сотрудника было служебное поле entity со ссылкой на элемент справочника «Сотрудники»).

Как работает синхронизация выбранных данных с UnSpot

После того как скрипт выборки сформировал данные, код синхронизации сопоставляет их с UnSpot и применяет изменения по SCIM API (подробное описание API — в справочнике SCIM API UnSpot).

Чтение. Обработка постранично загружает всех пользователей компании (GET /Users, по 20 записей за запрос), включая деактивированных. Для каждого запоминаются идентификатор, email, ФИО, должность, подразделение, руководитель и режим работы — это «текущее состояние», с которым сравниваются данные 1С.

Сопоставление. В режиме «Полная» пользователи сопоставляются сначала по externalId (идентификатор физлица, устойчивый к смене email), затем оставшиеся — по email. В режимах «Только обновление» и «Только обновление оргструктуры» — только по email. В обновление попадают лишь те пользователи, у которых хотя бы одно синхронизируемое поле реально изменилось, поэтому повторные запуски без изменений в 1С не создают лишних запросов.

Создание (только режим «Полная»). Для сотрудников 1С, не найденных в UnSpot, выполняется POST /Users. Новый пользователь получает роль «Сотрудник»; если в UnSpot включён тумблер приветственных писем, ему уходит приглашение. Если email принадлежит ранее удалённому (архивированному) пользователю, UnSpot восстанавливает его вместо создания дубля. Пример запроса:

POST /api/scim/Users
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
              "urn:ietf:params:scim:schemas:extension:Unspot:2.0:User"],
  "externalId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
  "userName": "i.petrov@company.ru",
  "name": { "familyName": "Петров", "givenName": "Иван" },
  "active": true,
  "title": "Менеджер по продажам",
  "extensionUser": { "employeeId": "0000-00042",
                     "orgUnit": "Компания/Департамент продаж/Отдел продаж",
                     "attendance": 75 },
  "enterpriseUser": { "manager": { "value": "a.sidorov@company.ru" } }
}
HTTP

Обновление. Изменившиеся пользователи обновляются точечными операциями PATCH /Users/{id} (стандарт SCIM PatchOp): заменяются email, фамилия и имя, должность, табельный номер, подразделение, руководитель, режим работы; в режиме «Полная» дополнительно проставляются externalId и active=true. Пустое подразделение передаётся операцией Remove — привязка сотрудника к отделу снимается. Пример запроса:

PATCH /api/scim/Users/6d1a...c204
{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    { "op": "Replace", "path": "title", "value": "Руководитель отдела продаж" },
    { "op": "Replace",
      "path": "urn:ietf:params:scim:schemas:extension:Unspot:2.0:User:orgUnit",
      "value": "Компания/Департамент продаж" },
    { "op": "Replace",
      "path": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager",
      "value": "d.ivanov@company.ru" },
    { "op": "Replace",
      "path": "urn:ietf:params:scim:schemas:extension:Unspot:2.0:User:attendance",
      "value": 100 }
  ]
}
HTTP

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

Удаление (только режим «Полная»). Пользователи UnSpot с заполненным externalId, не сопоставленные ни с одним сотрудником 1С, удаляются запросом DELETE /Users/{id}. Удаление в UnSpot — это архивация, а не безвозвратное стирание: пользователь исчезает из активных списков, все его брони отменяются, закреплённые столы, парковочные места и ячейки локеров освобождаются; если сотрудник вернётся, синхронизация восстановит учётную запись по email. Пользователь, деактивированный через active=false, отличается от удалённого: он сохраняет externalId и восстанавливается простой активацией. Особый случай: пользователя с календарём, привязанным к переговорной, UnSpot удалить не даст — сначала отвяжите календарь.

Оргструктура. При включённом флажке «Оргструктура» обработка передаёт полное дерево подразделений одним запросом PUT /OrgUnits. Это полная замена синхронизируемой части дерева: недостающие подразделения создаются, изменившиеся руководители и описания обновляются, а синхронизированные ранее подразделения, отсутствующие в новой выгрузке, удаляются вместе с вложенными. Руководитель подразделения указывается email’ом и назначается, только если такой пользователь существует и активен в UnSpot. Пример запроса:

PUT /api/scim/OrgUnits
{
  "items": [
    { "path": "Компания", "manager": "ceo@company.ru", "description": "ООО Компания" },
    { "path": "Компания/Департамент продаж", "manager": "d.ivanov@company.ru", "description": null },
    { "path": "Компания/Департамент продаж/Отдел продаж", "manager": "a.sidorov@company.ru", "description": null }
  ]
}
HTTP

Сводка запросов, которые выполняет обработка (все — с заголовком Authorization: Bearer и Content-Type: application/scim+json):

ЗапросКогда выполняется
GET /UsersКаждый запуск — постраничное чтение всех пользователей компании
POST /UsersСоздание сотрудника (режим «Полная»)
PATCH /Users/{id}Обновление изменившихся полей и отложенное назначение руководителя
DELETE /Users/{id}Удаление пропавших из 1С сотрудников (режим «Полная»)
PUT /OrgUnitsПолная синхронизация дерева подразделений (флажок «Оргструктура»)

Совместная работа с синхронизацией из Active Directory

Синхронизацию из 1С можно использовать одновременно с синхронизацией пользователей из корпоративного каталога — AD LDAP, OpenLDAP, Entra ID (Azure AD) или Google Workspace. Типовой сценарий: каталог отвечает за сами учётные записи (кто имеет доступ), а 1С обогащает их кадровыми данными, которых в каталоге нет — табельными номерами, должностями, оргструктурой, руководителями и режимом работы.

Как UnSpot различает источники: пользователи, созданные каталожной синхронизацией, помечаются как «синхронизируемые» — их основные поля и email нельзя редактировать вручную в консоли, ими управляет каталог. Пользователи, созданные из 1С по SCIM, такой блокировки не имеют (их можно править вручную), а признаком их принадлежности к 1С служит заполненный externalId. Каталожная синхронизация может быть подключена только одна (AD LDAP, OpenLDAP, Entra ID или Google Workspace — на выбор), SCIM-подключение для 1С работает параллельно с любой из них.

Правила и ограничения совместной работы:

СитуацияПоведение и рекомендация
Каталог создаёт учётные записи, 1С дополняетРекомендуемая схема. В обработке 1С включите режим «Только обновление»: 1С найдёт пользователей по email и дополнит их должностями, табельными номерами, оргструктурой, руководителями и режимом работы, не создавая и не удаляя никого. Email в 1С и в каталоге должны совпадать.
Один сотрудник есть и в AD, и в 1СОба источника обновляют одну и ту же учётную запись (сопоставление по email). Общие поля (имя, фамилия, должность, отдел, руководитель) перезаписываются тем источником, который синхронизировался последним. Чтобы данные не «мигали», настройте пересекающиеся поля только в одном источнике: например, отключите синхронизацию должности и руководителя в настройках AD-синхронизации, если их ведёт 1С. Поля, которых в AD-синхронизации нет (табельный номер, режим работы), всегда остаются за 1С.
Режим «Полная» в 1С при подключённом каталогеДопустимо, но осторожно: 1С не удалит пользователей каталога (удаляются только учётные записи с externalId, а каталожная синхронизация его не заполняет), однако будет создавать в UnSpot сотрудников, которых нет в каталоге, и повторно активировать деактивированных вручную пользователей (полная синхронизация проставляет active=true при каждом обновлении). Уволенных сотрудников при такой схеме нужно убирать из обеих систем.
Удаление и блокировкаКаталожная синхронизация архивирует пользователей, пропавших из каталога или заблокированных в нём, — включая пользователей, созданных 1С, если их email попал в выборку каталога. Команда удаления из 1С для «каталожного» пользователя выполняет деактивацию, а не удаление. Восстановить архивированного пользователя SCIM-активацией нельзя — он восстанавливается при следующем появлении в своём источнике.
Оргструктура из двух источниковНе включайте синхронизацию оргструктуры одновременно в 1С и в каталожной синхронизации: дерево подразделений в UnSpot общее, и каждый источник при своём запуске удаляет синхронизированные подразделения, отсутствующие в его собственной выгрузке, — источники будут перетирать друг друга. Выберите один источник оргструктуры (обычно 1С, где она полнее).
1С вместе с Entra ID (Azure AD) SCIM-провижинингомНе рекомендуется совмещать два SCIM-источника в режиме «Полная»: оба записывают externalId в одно и то же поле (Entra ID — objectId, 1С — идентификатор физлица) и будут перетирать его друг у друга, а несопоставленные пользователи другого источника могут удаляться. Если Entra ID уже провижинит пользователей по SCIM, используйте для 1С режим «Только обновление» или «Только обновление оргструктуры».

Ошибки и диагностика

Первый инструмент диагностики — журнал регистрации 1С (события «UnSpot#ггммдд»): в нём видны отправленные данные и коды ответов UnSpot по каждому пользователю. Типичные ситуации:

Код / сообщениеПричина и что делать
401Токен не передан или не совпадает. Проверьте поле «Токен доступа» и актуальность подключения SCIM 2.0 в UnSpot.
400 Token is expiredИстёк срок работы токена. Пересоздайте подключение SCIM 2.0 и обновите токен в обработке.
409Конфликт при создании: email или externalId уже занят другим пользователем. Обычно означает дубль сотрудника или пересечение с другим источником синхронизации.
404Пользователь не найден (например, удалён вручную между чтением и записью). При следующем запуске состояние выровняется.
400 при PUT /OrgUnitsОргструктура обновляется чаще, чем раз в час, либо неверный формат пути. Уменьшите частоту регламентного задания.
«Выбрано пользователей 1С: 0»У сотрудников не заполнены email, либо код выборки не подходит вашей конфигурации.
«Настройки не установлены»Синхронизация запущена до первого сохранения настроек. Откройте форму настроек и сохраните их.

Связанные статьи: справочник SCIM API UnSpot — описание всех SCIM-эндпоинтов и атрибутов; синхронизация пользователей с AD LDAP; синхронизация из on-premise AD через сервис LDAP-SCIM; синхронизация с Entra ID (Azure AD) через SCIM.

Оставьте заявку, и мы свяжемся с вами в течение 30 минут.

Loading

Как улучшить работу офиса?

Оставьте контакт - покажем на демо как уйти от таблиц, двойных бронирований и путаницы с рабочими местами.

Loading