Синхронизация пользователей из 1С: как устроена
UnSpot получает сотрудников напрямую из 1С: внешняя обработка «UnSpot SCIM Adapter» выбирает из ЗУП (или другой конфигурации на базе БСП) сотрудников, оргструктуру, руководителей и режим работы и передаёт их в UnSpot по стандарту SCIM 2.0. В этой статье описано, как устроен обмен: кто его инициирует, по какому протоколу и какие именно данные покидают информационную базу, где хранятся токен и настройки, что попадает в журнал регистрации и какие права нужны обработке. Статью можно передать службе информационной безопасности при согласовании интеграции. Пошаговая настройка описана в статье Настройка синхронизации пользователей из 1С (SCIM Adapter).
Содержание
Направление и инициатор обмена
Как работает скрипт выборки данных из 1С
Как работает синхронизация выбранных данных с UnSpot
Где хранятся токен и настройки
Что попадает в журнал регистрации и что кэшируется
Требования к правам в 1С и к сети
Как работает синхронизация
Синхронизация выполняется внешней обработкой 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С. Обработка сама подключается к серверу UnSpot и отправляет запросы, а UnSpot к вашей информационной базе не обращается.
- Инициатор — 1С. Обработка создаёт исходящее соединение с сервером UnSpot в момент запуска: по регламентному заданию либо по кнопке в форме настроек. Постоянного соединения, вебхуков и подписки на события у интеграции нет.
- Входящих подключений нет. Внешняя обработка не содержит ни одного сервиса, который принимал бы входящие запросы: в БСП она регистрирует только две команды — открытие формы настроек и серверный запуск синхронизации. UnSpot не знает адреса вашей информационной базы и не получает к ней учётных данных.
- Обратный поток — только чтение. В начале каждого запуска обработка читает из UnSpot список всех пользователей компании, чтобы сравнить его с данными 1С. Прочитанное живёт в оперативной памяти сеанса на время запуска и в информационную базу не записывается.
- Данные UnSpot в 1С не переносятся. Брони, статусы присутствия, аналитика и любые другие сведения из UnSpot в 1С не попадают: обработка использует карточки пользователей и только для сопоставления.
Протокол, адреса и шифрование
Обработка обращается к единственному внешнему адресу — к SCIM API вашего рабочего пространства UnSpot. Адрес задаётся администратором в поле «UnSpot API URL».
| Параметр | Как устроено |
|---|---|
| Протокол | HTTPS, если адрес в поле «UnSpot API URL» начинается с https://. Соединение устанавливается защищённым, сертификат сервера проверяется по списку удостоверяющих центров платформы 1С. Отключить проверку сертификата в обработке нельзя — такой настройки нет. |
| Порт | 443 для адреса, начинающегося с https://, и 80 — для http://. Порт определяется только протоколом: указать в адресе нестандартный порт нельзя. |
| Адрес назначения | Домен вашего рабочего пространства UnSpot, например ваш-домен.unspot.ru. К нему обработка добавляет пути ресурсов: • /Users — карточки сотрудников; • /OrgUnits — дерево подразделений. Других внешних адресов обработка не вызывает. |
| Аутентификация | Заголовок Authorization: Bearer с токеном подключения SCIM 2.0 — в каждом запросе. Ни пары «логин — пароль», ни клиентского сертификата, ни взаимного TLS обработка не использует. |
| Формат данных | application/scim+json в запросах на создание, обновление и передачу оргструктуры. |
| Таймаут | 60 секунд. |
| Прокси | Поля для прокси в форме настроек нет, и при создании соединения прокси не задаётся. |
Что учитывать. Адрес, начинающийся с http://, обработка примет: соединение будет установлено по порту 80 без шифрования, и токен вместе с персональными данными уйдёт открытым текстом. Указывайте адрес только с https://. Адрес без протокола обработка отклонит с ошибкой «Неверный формат URL».
Что передаётся в UnSpot
Наружу уходят только перечисленные ниже поля. Их состав зависит от режима синхронизации и трёх флажков формы настроек — «Оргструктура», «Менеджер» и «Режим работы»; что означает каждый из них, описано в статье Настройка синхронизации пользователей из 1С (SCIM Adapter).
| Поле в UnSpot | Что это | Откуда берётся в 1С | Когда передаётся |
|---|---|---|---|
| userName | Адрес электронной почты сотрудника, приводится к нижнему регистру | Кадровые данные ЗУП, реквизит EMailПредставление | Всегда |
| externalId | Уникальный идентификатор физлица (36 символов) — ключ сопоставления, не зависящий от смены адреса почты | Идентификатор элемента справочника «Физические лица» | Режим «Полная» |
| name.familyName | Фамилия | Кадровые данные ЗУП, реквизит Фамилия | Кроме режима «Только обновление оргструктуры» |
| name.givenName | Имя. Отчество не передаётся | Кадровые данные ЗУП, реквизит Имя | Кроме режима «Только обновление оргструктуры» |
| title | Должность | Наименование элемента справочника «Должности» | Кроме режима «Только обновление оргструктуры» |
| employeeId | Табельный номер | Кадровые данные ЗУП, реквизит ТабельныйНомер | Кроме режима «Только обновление оргструктуры» |
| orgUnit | Полный путь подразделения через «/» | Иерархия справочников «Организации» и «Подразделения организаций» | Флажок «Оргструктура» включён |
| department | Название подразделения текстом, без дерева | Наименование подразделения сотрудника | Флажок «Оргструктура» выключен |
| manager | Адрес электронной почты руководителя | Контактная информация физлица-руководителя подразделения или организации | Флажок «Менеджер» |
| attendance | Доля офисных дней, целое от 0 до 100 | Расчёт по графикам работы за текущий месяц | Флажок «Режим работы» |
| active | Признак активности учётной записи, всегда истина | Не из 1С — проставляется обработкой | Режим «Полная» |
При включённой оргструктуре отдельным запросом уходит дерево подразделений. На каждое подразделение передаются три значения: путь, адрес электронной почты руководителя и описание — для организации это её полное наименование, для подразделения — наименование для записей о трудовой деятельности.
Персональные данные, которые покидают контур 1С: фамилия и имя, адрес электронной почты, должность, подразделение, табельный номер, адрес электронной почты руководителя и рассчитанная доля офисных дней. Отчество, телефон, фотография и любые другие сведения о человеке не передаются.
Что учитывать. Адрес почты руководителя берётся из контактной информации физлица — используется первый элемент с типом «Адрес электронной почты». Если у руководителя в 1С заполнен личный адрес, в UnSpot уйдёт он.
Что не передаётся
Раздел важен именно отрицаниями — обработка не отправляет в UnSpot ничего, кроме полей предыдущего раздела.
- Пароли и любые аутентификационные данные. Обработка не читает пароли пользователей 1С и не передаёт их; учётные данные для входа в UnSpot создаёт сам UnSpot.
- Телефоны, фотографии и аватары, дата рождения, паспортные данные, СНИЛС, ИНН, адреса. Список кадровых реквизитов, которые запрашивает встроенный скрипт, закрыт и этих полей не содержит.
- Сведения о зарплате, начислениях, отпусках, больничных и командировках. В расчёт режима работы попадают только виды учёта времени «Явка» и «Дистанционная работа», остальные не учитываются и наружу не уходят.
- Дата приёма, количество ставок и вид занятости. Они читаются из 1С, но нужны только для того, чтобы у совместителя выбрать одну позицию, и удаляются из структуры сотрудника до отправки.
- Ссылки на объекты информационной базы. Служебная ссылка на элемент справочника «Сотрудники» удаляется из структуры перед отправкой; наружу уходит только идентификатор физлица в поле externalId.
- Уволенные сотрудники и сотрудники без адреса почты. Они не попадают в выборку, а значит и в запросы к UnSpot.
- Обратный поток в 1С. 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.Добавить(Сотрудник);1СВ коде выборки доступны вспомогательные функции обработки: ПолучитьКонтактФизическогоЛица (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" } }
}HTTPSОбновление. Изменившиеся пользователи обновляются точечными операциями 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 }
]
}HTTPSОтложенное назначение руководителей. Руководителем в UnSpot может стать только активный пользователь. Если руководитель сотрудника сам создаётся в этом же запуске, обработка сначала создаёт всех пользователей, а затем вторым проходом назначает руководителей тем, у кого назначение было отложено.
Удаление (только режим «Полная»). Пользователи UnSpot с заполненным externalId, не сопоставленные ни с одним сотрудником 1С, удаляются запросом DELETE /Users/{id}. Удаление в UnSpot — это архивация, а не безвозвратное стирание: пользователь исчезает из активных списков, все его брони отменяются, закреплённые столы, парковочные места и ячейки локеров освобождаются; если сотрудник вернётся, синхронизация восстановит учётную запись по email. Пользователь, деактивированный через active=false, отличается от удалённого: он сохраняет externalId и восстанавливается простой активацией. Особый случай: пользователя с календарём, привязанным к переговорной, UnSpot удалить не даст — сначала отвяжите календарь.
Пользователи, добавленные в UnSpot вручную или каталожной синхронизацией (AD/LDAP), при этом не удаляются: у них не заполнен externalId.
Оргструктура. При включённом флажке «Оргструктура» обработка передаёт полное дерево подразделений одним запросом 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 }
]
}HTTPSСводка запросов, которые выполняет обработка (все — с заголовком Authorization: Bearer и Content-Type: application/scim+json):
| Запрос | Когда выполняется |
|---|---|
| GET /Users | Каждый запуск — постраничное чтение всех пользователей компании |
| POST /Users | Создание сотрудника (режим «Полная») |
| PATCH /Users/{id} | Обновление изменившихся полей и отложенное назначение руководителя |
| DELETE /Users/{id} | Удаление пропавших из 1С сотрудников (режим «Полная») |
| PUT /OrgUnits | Полная синхронизация дерева подразделений (флажок «Оргструктура») |
Где хранятся токен и настройки
Все настройки обработки — адрес API, токен доступа, режим синхронизации, состояния флажков и ваш код выборки данных — хранятся внутри информационной базы 1С. Ни файлов на диске, ни ключей в реестре Windows обработка не создаёт.
- Место хранения. Элемент справочника «Файлы» с наименованием UnSpotSettings в папке «Шаблоны», тип хранения — «В информационной базе». Это штатный механизм хранения файлов БСП.
- Форма хранения. Значение записывается как хранилище значения со сжатием. Сжатие — это не шифрование: токен лежит в информационной базе в открытом виде. Любой пользователь 1С, которому доступен этот элемент справочника «Файлы», может получить токен, а вместе с ним — доступ к SCIM API вашего рабочего пространства UnSpot.
- Что с этим делать. Ограничьте доступ к справочнику «Файлы» и папке «Шаблоны» ролями 1С, а резервные копии информационной базы храните как носитель секрета. При компрометации пересоздайте подключение SCIM 2.0 в UnSpot: старый токен перестанет действовать сразу.
- Поле ввода. «Токен доступа» в форме настроек — обычное текстовое поле, без режима пароля: значение видно на экране целиком.
- Журнал. Токен в журнал регистрации не записывается — туда попадает только адрес API.
От чьего имени выполняется обработка. Отдельной служебной учётной записи операционной системы у интеграции нет: код исполняется в сеансе 1С — при ручном запуске от имени пользователя, нажавшего кнопку, при запуске по расписанию — в фоновом задании на сервере 1С:Предприятия. Исходящее соединение к UnSpot устанавливается оттуда же.
Безопасный режим выключен. Обработка регистрируется в БСП с выключенным безопасным режимом, потому что исполняет код выборки данных методом Выполнить. Это значит, что содержимое поля «Код выбора данных» выполняется с полными правами того сеанса, в котором запущена синхронизация. Тот, кто может редактировать этот код, фактически может выполнить в вашей информационной базе любой код 1С, поэтому доступ к форме настроек должен быть только у администратора.
Что попадает в журнал регистрации и что кэшируется
Единственное, что обработка сохраняет за пределами оперативной памяти, — это записи журнала регистрации 1С и элемент настроек UnSpotSettings. Имя события в журнале имеет вид «UnSpot#ггммдд».
| Что записывается | Состав записи |
|---|---|
| Чтение пользователей UnSpot | Адрес API и количество прочитанных записей. Сами прочитанные карточки в журнал не пишутся |
| Итог сопоставления | Сколько записей отобрано на создание, обновление и удаление и сколько подразделений выбрано |
| Создание и обновление пользователя | Полное тело отправленного запроса в формате JSON: email, фамилия и имя, должность, табельный номер, путь подразделения, email руководителя, режим работы. Отдельной записью — код ответа и тело ответа UnSpot |
| Назначение руководителя | Тело запроса с адресом почты руководителя, код и тело ответа |
| Удаление пользователя | Идентификатор пользователя в UnSpot, код и тело ответа |
| Передача оргструктуры | Количество переданных подразделений, код и тело ответа |
Что учитывать. Журнал регистрации становится вторым местом, где хранятся персональные данные, уходящие в UnSpot: тела запросов пишутся в него целиком. Срок хранения журнала и доступ к нему настраиваются штатными средствами 1С — учтите это при определении сроков хранения персональных данных. Токен доступа в журнал не попадает.
Кэша у обработки нет. Список пользователей UnSpot, выборка из 1С и промежуточные соответствия существуют только в памяти рабочего процесса на время одного запуска и после его завершения не сохраняются. Временных файлов, служебных справочников и таблиц обработка не создаёт. Единственная её запись в базу — элемент UnSpotSettings: чтобы стереть сохранённый токен, удалите этот элемент справочника «Файлы».
Требования к правам в 1С и к сети
Обработке нужны права на чтение кадровых данных и на запись одного служебного элемента. Права на изменение кадровых данных, документов и расчётов ей не требуются.
| Что нужно | Зачем |
|---|---|
| Подключение обработок | Право администратора на добавление дополнительных отчётов и обработок: обработка регистрируется механизмом БСП «Дополнительные отчеты и обработки» с выключенным безопасным режимом |
| Кадровые данные | Чтение сотрудников организаций: сотрудник, физлицо, подразделение, должность, количество ставок, вид занятости, фамилия, имя, email, табельный номер, дата приёма |
| Справочники оргструктуры | Чтение справочников «Организации», «Подразделения организаций», «Структура предприятия» — построение дерева подразделений и поиск руководителей |
| Контактная информация | Чтение контактной информации физических лиц — адреса почты руководителей |
| Регистры графиков | Чтение регистров графиков работы сотрудников, графиков по видам времени, данных индивидуальных графиков и регистра «Дистанционная работа сотрудников» — расчёт режима работы |
| Справочник «Файлы» | Чтение и запись элемента UnSpotSettings — хранение настроек и токена |
| Исходящее соединение | Разрешение на исходящее соединение по HTTPS (TCP 443) к домену вашего рабочего пространства UnSpot. Соединение устанавливает сервер 1С:Предприятия (в файловом варианте — машина, на которой запущено 1С:Предприятие). Входящие правила для UnSpot не нужны |
Принцип минимальных привилегий. Заведите для регулярного запуска отдельного пользователя 1С с правами только на перечисленные объекты. Учитывайте при этом, что безопасный режим у обработки выключен: единственным ограничителем служат права роли 1С, под которой она работает, поэтому давать ей роль полного администратора для регулярных запусков не следует.
Совместная работа с синхронизацией из 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С (SCIM Adapter) — требования, подключение, поля формы, регулярный запуск и диагностика.
- Справочник SCIM API UnSpot — описание всех SCIM-эндпоинтов и атрибутов.
- Синхронизация пользователей с AD LDAP.
- Настройка синхронизации с Active Directory (AD LDAP / OpenLDAP).
- Синхронизация из on-premise AD через сервис LDAP-SCIM.
- Синхронизация с Entra ID (Azure AD) через SCIM.
- Настройка синхронизации по SCIM 2.0 (Entra ID, Okta).