Сценарий "Интеграция Business Central и HCM & LMS"
Extension — SMART Payroll and SMART HCM & LMS Connector (дополнение к SMART Payroll)
В системе есть возможность настроить интеграцию между Business Central и SMART HCM & LMS (Human Capital Management & Learning Management System). Интеграция обеспечивает автоматическую синхронизацию кадровых и зарплатных данных между двумя системами.
Основные возможности:
- синхронизация организационной структуры (подразделения, должности, позиции, категории работников)
- синхронизация данных физ. лиц и трудовых договоров со строками
- синхронизация причин отсутствия и групп временных активностей
- передача зарплатных документов и статусов табелей
- получение заявлений на отсутствие из HCM & LMS в Business Central
- поддержка кросс-компанийных физ. лиц
Синхронизация работает по событийной модели: при изменении данных в Business Central автоматически создается запись в очереди интеграции, которая затем обрабатывается очередью задач и отправляется в HCM & LMS.
Шаг 1: Настройка интеграции
Путь: HCM & LMS Setup
На странице настройки доступны следующие блоки полей:
Блок «Общее»
| Поле | Описание | Зависимости и особенности |
|---|---|---|
| HCM Company Id | Идентификатор (GUID) компании в системе HCM & LMS. Используется как AccountId во всех запросах интеграции. | Заполняется автоматически при первом открытии страницы настройки (берется из Company.Id). Обязательное для активации. |
| HCM Company Code | Код компании в системе HCM & LMS. | Обязательное для активации. Используется при создании записи компании в HCM. При удалении значения — очищается очередь интеграции. |
| Active | Включает или выключает обмен данными между системами. | При первой активации система автоматически генерирует начальные записи интеграции для всех сущностей (подробнее в Шаге 2). Для активации обязательно должны быть заполнены: HCM Company Id, HCM Company Code, HCM User ID. |
| Integration Token | Токен авторизации для API HCM & LMS. | Хранится в защищенном (маскированном) поле. Присваивается индивидуально. |
| Integration URL | Базовый URL-адрес API HCM & LMS. | Не следует включать пути /create, /update, /delete — они добавляются автоматически. Присваивается индивидуально. |
| Restore Integration Func. | Автоматическое восстановление очереди задач интеграции при неожиданной остановке. | Если включено, система автоматически перезапускает очередь задач при входе пользователя, если очередь остановилась из-за ошибки. |
Блок «Администрирование»
| Поле | Описание | Зависимости и особенности |
|---|---|---|
| Default Taxpayer Document Type | Тип документа, удостоверяющего лицо, по умолчанию. Используется для передачи паспортных данных физ. лиц. | Зависит от справочника «Типы документов физ. лица» (SMA Person Document Type). Если заполнено — при синхронизации физ. лица передаются серия, номер, дата выдачи и кем выдан документ указанного типа. |
| HCM User ID | Код пользователя Business Central, изменения которого НЕ синхронизируются в HCM. | Зависит от таблицы Users. Обязательное для активации. Используется для предотвращения циклов синхронизации — изменения, внесенные этим пользователем (например, со стороны HCM), не создают записей интеграции. |
| API TimeZone | Часовой пояс Windows для форматирования дат и времени в запросах. | Например: «FLE Standard Time» для Киева. |
| Enable Payroll Documents | Синхронизировать ли зарплатные документы в HCM & LMS. | По умолчанию включено. Если выключено — зарплатные документы не передаются. |
| Enable Between Payroll Docs | Включать ли межпериодные зарплатные документы в синхронизацию. | По умолчанию включено. Работает вместе с Enable Payroll Documents. |
| Enable Employee Timesheet | Синхронизировать ли статусы табелей в HCM & LMS. | По умолчанию включено. Передаются только табели со статусом «Выпущен». |
Блок «Фильтры»
| Поле | Описание | Зависимости и особенности |
|---|---|---|
| Labor Contract Filter | Фильтр для таблицы «Трудовой договор». | Ограничивает, какие трудовые договора синхронизируются в HCM. Редактируется через AssistEdit — открывается конструктор фильтров. Если пустой — синхронизируются все договора. |
| Position Filter | Фильтр для таблицы «Позиция». | Ограничивает, какие позиции синхронизируются в HCM. Редактируется через AssistEdit. По умолчанию позиции со статусом «Планируемая» и бюджетные позиции не синхронизируются. |
Блок «Портал»
| Поле | Описание | Зависимости и особенности |
|---|---|---|
| Paid Leave Group Code | Код группы временной активности для оплачиваемых отпусков. | Зависит от справочника «Группы временных активностей» (SMA Time Activity Group). Используется для расчета дней табеля на портале HCM. |
| Unpaid Leave Group Code | Код группы временной активности для неоплачиваемых отпусков. | Зависит от справочника «Группы временных активностей». |
| Sick Leave Group Code | Код группы временной активности для больничных. | Зависит от справочника «Группы временных активностей». |
| Other Leave Group Code | Код группы временной активности для других типов отсутствий. | Зависит от справочника «Группы временных активностей». |
Шаг 2: Активация интеграции
При установке поля Active = Да, система автоматически создает начальные записи интеграции для передачи всех текущих данных в HCM & LMS. Записи создаются в следующем порядке:
- Информация об организации — создается одна запись для текущей компании
- Должности (справочник Job Titles) — все должности
- Категории работников (Employee Categories) — все категории
- Причины отсутствия (Causes of Absence) — только те, где включен флажок «Export to HCM»
- Подразделения (Organizational Units) — все подразделения
- Группы временных активностей (Time Activity Groups) — только те, где включен флажок «Export to HCM»
- Физ. лица (Persons) — только те, у которых поле «Основная компания HCM» пустое
- Позиции (Positions) — с учетом фильтра Position Filter, исключая позиции со статусом «Планируемая» и бюджетные позиции
- Трудовые договора (Labor Contracts) — с учетом фильтра Labor Contract Filter, только с заполненным номером сотрудника. Для каждого договора также создаются:
- строки договора (утвержденные)
- зарплатные документы (если Enable Payroll Documents включено, за последний год)
- статусы табелей (если Enable Employee Timesheet включено, только со статусом «Выпущен»)
Обратите внимание: порядок создания важен — справочники (должности, категории, причины отсутствия, подразделения) создаются первыми, чтобы при обработке зависимых сущностей (позиции, договора) справочные данные уже были в HCM & LMS.
После активации необходимо запустить очередь задач (Job Queue) для фактической отправки данных. Очередь задач создается автоматически при установке дополнения со статусом «На удержании» — её нужно активировать вручную. Рекомендуемый интервал: 1–5 минут.
Шаг 3: Страницы между которыми интегрируются системы
Ниже приведен маппинг полей для каждой сущности, которая синхронизируется. Стрелка указывает направление передачи данных:
- → Business Central в HCM & LMS
- ← HCM & LMS в Business Central
- ↔ двусторонний обмен
Для каждой сущности указано, какие изменения полей в Business Central инициируют синхронизацию и какие операции поддерживаются (создание, изменение, удаление).
3.1. Информация об организации (Business Central) → Название организации (HCM & LMS)
Операции: изменение
Синхронизация инициируется при изменении любого из полей: Название, Адрес, Телефон, Веб-сайт, Эл. почта.
| Поле Business Central | Поле HCM & LMS | Опис ание и зависимости |
|---|---|---|
| — | id | Берется из HCM Company Id в настройках |
| — | Code | Берется из HCM Company Code в настройках |
| Название (Name) | Название организации (Name) | Название компании |
| Телефон (Phone No.) | Телефон (Telephone1) | Телефон компании |
| Адрес (Address) | Адрес (Address) | Адрес компании |
| Веб-сайт (Home Page) | Веб-сайт (WebSiteUrl) | Домашняя страница компании |
| Основная деятельность (SMA Principal Activity) | Описание (Description) | Передается только если заполнено |
| Эл. почта (E-Mail) | Эл. почта (Emailaddress1) | Электронная почта компании |
3.2. Должности (Business Central) → Должности (HCM & LMS)
Операции: создание, изменение, удаление
Синхронизация инициируется при: создании, изменении полей Название или Статус, удалении, переименовании кода.
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| Код (Code) | Код (Code) | Код должности |
| Название (Name) | Название (Name) | Название должности |
| Статус (Status) | Состояние (State) | Если Статус = «Закрыта» → «Inactive», иначе → «Active» |
3.3. Категории работников (Business Central) → Уровень Должности (HCM & LMS)
Операции: создание, изменение, удаление
Синхронизация инициируется при: создании, изменении поля Описание, удалении, переименовании кода.
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| Код (Code) | Код (Code) | Код категории |
| Описание (Description) | Название (Name) | Название уровня должности |
3.4. Подразделения (Business Central) → Подразделение (HCM & LMS)
Операции: создание, изменение, удаление
Синхронизация инициируется при: создании, изменении полей Название, Полное название, Статус, Менеджер, Родительское подразделение или Дата начала, удалении.
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| Код (Code) | Код (Code) | Код подразделения |
| Название (Name) | Название (Name) | Краткое название подразделения |
| Полное название (Full Name) | Описание (Description) | Полное название подразделения |
| Менеджер (Manager No.) | Руководитель подразделения (HeadOfSubdivisionId) | Зависит от: Сотрудник → Физ. лицо. Передается SystemId физ. лица менеджера. Для кросс-компанийных лиц используется SystemId из основной компании. |
| Позиция менеджера | Позиция руководителя (HeadOfSubdivisionPositionId) | Зависит от: Сотрудник → Позиция (SMA Position No.). Передается SystemId позиции менеджера. |
| Родительское подразделение (Parent Code) | Главное подразделение (MainSubdivisionId) | Зависит от: родительское подразделение. Передается SystemId родительского подразделения. |
| Дата начала (Starting Date) | Дата создания (CreatedOn) | Дата создания подразделения |
| Статус (Status) | Состояние (State) | Если Статус = «Закрыта» → «Inactive», иначе → «Active» |
3.5. Позиции (Business Central) → Позиции (HCM & LMS)
Операции: создание, изменение, удаление
Синхронизация инициируется при: создании, изменении контролируемых полей, удалении. Позиции из фильтра Position Filter и со статусом «Планируемая» или бюджетные не синхронизируются.
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| Номер (No.) | Код (Code) | Номер позиции |
| Должность (Job Title Code) | Название (Name) | Зависит от: справочник Должности. Передается название должности (Job Title.Name). |
| Работник на позиции | Работник (employeeId) | Определяется авт оматически: ищется активный сотрудник, назначенный на эту позицию через трудовой договор. Передается SystemId физ. лица. Если работника нет — null. |
| Дата назначения | Дата назначения (positionAssignmentDate) | Определяется автоматически: дата начала последней утвержденной строки трудового договора для этой позиции. |
| Является руководителем | Руководитель подразделения (IsHeadOfSubdivision) | Определяется автоматически: true, если этот сотрудник является менеджером какого-либо подразделения. |
| Дата начала (Starting Date) | Дата открытия позиции (PositionOpeningDate) | Дата открытия позиции. Пустая, если не заполнена. |
| Дата окончания (Ending Date) | Дата закрытия позиции (PositionClosingDate) | Дата закрытия позиции. Пустая, если не заполнена. |
| Ставка (Rate) | Эквивалент полной занятости (FullTimeEquivalency) | Ставка позиции (например, 1.0 или 0.5) |
| Дата утверждения (Approval Date) | Дата утверждения (ApprovalDate) | Дата утверждения позиции. Пустая, если не заполнена. |
| Статус (Status) | Статус (Status) | Текстовое значение статуса |
| Статус (Status) | Состояние (State) | Если Статус = «Закрыта» → «Inactive», иначе → «Active» |
| Должность (Job Title Code) | Должность (jobId) | Зависит от: справочник Должности. Передается SystemId должности. |
| Подразделение (Org. Unit Code) | Подразделение (SubdivisionId) | Зависит от: справочник Подразделения. Передается SystemId подразделения. |
| Родительская позиция (Parent Position No.) | Позиция руководителя (ManagerPositionId) | Зависит от: родительская позиция. Передается SystemId родительской позиции. |
| Подразделение + Должность | Профиль должности (jobProfileId) | Составное поле: формируется как комбинация SystemId подразделения и SystemId должности через «/». |
3.6. Физ. лица (Business Central) → Сотрудники (HCM & LMS)
Операции: создание, изменение, удаление
Синхронизация инициируется при: создании, изменении полей (имя, фамилия, отчество, пол, дата рождения, эл. почта, телефоны, ИНН, семейное положение), удалении. Также инициируется при изменении документа физ. лица типа, указанного в Default Taxpayer Document Type.
Кросс-компанийное взаимодействие: зачем оно нужно
В Business Central каждая компания имеет свою отдельную карточку физического лица. Один и тот же человек (например, Иванов Иван Иванович) может иметь запись физ. лица в Компании A и отдельную запись в Компании B. Это стандартное поведение BC — данные каждой компании изолированы.
В HCM & LMS, напротив, существует одна единственная запись сотрудника на каждое физическое лицо — независимо от того, в скольких компаниях оно работает.
Поэтому коннектор должен определить, из какой именно компании BC брать данные для синхронизации каждого физического лица в HCM & LMS, и обеспечить, что все компании ссылаются на одну и ту же запись в HCM & LMS.
Поле «Основная компания HCM» (SMAHCM Primary Company Name)
Это ключевое поле на карточке физ. лица, которое определяет роль этой записи в кросс-компанийной синхронизации:
- Пустое значение — эта запись является первичной (основной). Именно из неё данные физ. лица отправляются в HCM & LMS.
- Заполненное значение (название другой компании) — эта запись является вторичной (копией). Она не синхронизируется самостоятельно в HCM & LMS. Значение указывает, в какой компании находится первичная запись этого физ. лица.
Как поле заполняется автоматически:
При создании или изменении карточки физ. лица система автоматически ищет совпадения во всех компаниях, где активна интеграция HCM & LMS:
- Поиск по ИНН + Дата рождения: система проверяет все другие компании с активной интеграцией. Если находит физ. лицо с таким же ИНН и датой рождения, где поле «Основная компания HCM» пустое (то есть это лицо является первичным в той компании), — текущая запись отмечается как вторичная (заполняется название той компании).
- Резервный поиск по документу физ. лица: если ИНН пуст, система ищет совпадение по серии и номеру документа физ. лица (обозначенного как документ по умолчанию).
- Первое совпадение выигрывает: если совпадение найдено в нескольких компаниях, используется первое найденное.
Поле также можно заполнить вручную. При ручной установке система предложит скопировать все данные из первичной карточки физ. лица.
На что влияет поле «Основная компания HCM»:
- Синхронизация физ. лица: только записи с пустым полем отправляются в HCM & LMS. Вторичные записи пропускаются.
- Подстановка SystemId: когда другие сущности (трудовые договоры, строки договоров, табели, позиции, подразделения) ссылаются на вторичное физ. лицо, система автоматически подставляет SystemId первичного физ. лица из основной компании. Это обеспечивает, что в HCM & LMS все ссылки ведут к одной записи сотрудника.
- Активация интеграции (Шаг 2): при начальном создании записей интеграции система пропускает физ. лиц с заполненным полем «Основная компания HCM».
Как определяется сотрудник (Employee) для физ. лица
Для заполнения полей, связанных с сотрудником (номер сотрудника, подразделение, должность, профиль должности, дата приёма), система ищет первичного сотрудника среди всех компаний с активной интеграцией по такому приоритету:
- Основное место работы — наивысший приоритет. Ищется утверждённый трудовой договор с режимом работы «Основное место».
- Внутреннее совместительство — если основное место не найдено, ищется договор с режимом «Внутреннее совместительство».
- Внешнее совместительство — наименьший приоритет. Ищется договор с режимом «Внешнее совместительство».
Поиск сначала выполняется в текущей компании. Если не найдено — ищется в других компаниях, где есть первичная запись этого физ. лица. Учитывают ся только утверждённые трудовые договоры.
Источник данных для полей контакта
- Персональные данные (имя, фамилия, дата рождения, пол, телефоны, эл. почты, ИНН, семейное положение, паспортные данные) — берутся из первичной записи физ. лица (где поле «Основная компания HCM» пустое).
- Данные, связанные с сотрудником (employeeId, subdivisionId, jobProfileId, employmentStartDate) — берутся от найденного первичного сотрудника по приоритету, описанному выше.
- Если первичный сотрудник находится в другой компании, чем первичное физ. лицо, система переключается на запись физ. лица из компании сотрудника для получения контактных данных.
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| Код (No.) | Код (code) | Код физ. лица |
| Фамилия (Last Name) | Фамилия (lastName) | Фамилия |
| Имя (First Name) | Имя (firstName) | Имя |
| Отчество (Middle Name) | Отчество (middleName) | Отчество |
| Пол (Gender) | Пол (gender) | Маппинг значений: Мужской → «Male», Женский → «Female», Небинарный → «Nonbinarygenderdiverse», Самоопределенный → «SelfDescribed», Не желаю отвечать → «Idontwishtoanswer». Передается только если заполнено. |
| Дата рождения (Birth Date) | День рождения (birthdate) | Дата рождения в формате ГГГГ-ММ-ДД |
| Дата приема на работу (Employment Date) | Дата начала работы (employmentStartDate) | Зависит от: Сотрудник (Employee). Дата первого трудоустройства. Передается только если заполнено. |
| Рабочий E-Mail (Company Email) | Email (email) | Рабочая электронная почта |
| Мобильный телефон (Mobile Phone No.) | Мобильный (mobilePhone) | Мобильный телефон |
| Телефон (Phone No.) | Телефон (telephone) | Личный телефон |
| Эл. почта (E-Mail) | Личная эл. почта (personalEmail) | Личная электронная почта |
| Рабочий телефон (Company Phone No.) | Рабочий телефон (businessPhoneNo) | Телефон компании |
| Семейное положение (Person Family Status) | Семейное положение (maritalStatus) | Маппинг значений: Не женат/не замужем → «Single», Разведен(а) → «Divorced», Женат/замужем → «Married», В довец/вдова → «Widowed», Гражданский брак → «CivilMarriage». Передается только если заполнено. |
| ИНН (VAT Registration No.) | ИНН (VATRegistration) | Индивидуальный номер налогоплательщика. Обязательное поле. |
| Серия документа | Серия паспорта (passportSeries) | Зависит от: поле Default Taxpayer Document Type в настройках. Берется из документа физ. лица указанного типа, действительного на текущую дату. |
| Номер документа | Номер паспорта (passportNumber) | Зависит от: поле Default Taxpayer Document Type в настройках. |
| Дата выдачи документа | Дата выдачи паспорта (passportIssueDate) | Зависит от: поле Default Taxpayer Document Type в настройках. Передается только если заполнено. |
| Кем выдан документ | Кем выдан паспорт (passportIssuedBy) | Зависит от: поле Default Taxpayer Document Type в настройках. |
| Подразделение сотрудника | Подразделение (subdivisionId) | Зависит от: Сотрудник → Подразделение. Передается SystemId подразделения. |
| Подразделение + Должность сотрудника | Профиль должности (jobProfileId) | Зависит от: Сотрудник → Подразделение + Должность. Составное поле. |
| Номер сотрудника | Номер сотрудника (employeeId) | Зависит от: поиск первичного сотрудника по трудовым договорам. Приоритет: основное место → внутреннее совместительство → внешнее совместительство. |
3.7. Трудовые договора (Business Central) → Контракты (HCM & LMS)
Операции: создание, изменение, удаление
Синхронизация инициируется при: создании, изменении контролируемых полей, удалении. Договора фильтруются через фильтр Labor Contract Filter в настройках.
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| Номер договора (No.) | Код (Code) | Номер трудового договора |
| Номер + ФИО | Название (Name) | Формируется автоматически: номер договора + полное имя сотрудника |
| Дата начала (Starting Date) | Дата начала (StartingDate) | Дата начала действия договора. Пустая, если не заполнена. |
| Дата окончания (Ending Date) | Дата окончания (EndingDate) | Дата окончания дейс твия договора. Null, если не заполнена (бессрочный договор). |
| Физ. лицо (Person No.) | Контакт (ContactId) | Зависит от: физ. лицо трудового договора. Передается SystemId физ. лица. Для кросс-компанийных лиц используется SystemId из основной компании. |
| Номер сотрудника (Employee No.) | Код сотрудника (EmployeeId) | Номер сотрудника |
| Подразделение сотрудника | Подразделение (SubdivisionId) | Зависит от: Сотрудник → Подразделение. Передается SystemId подразделения. |
| Подразделение + Должность сотрудника | Профиль должности (jobProfileId) | Зависит от: Сотрудник → Подразделение + Должность. Составное поле. |
| Тип договора (Contract Type) | Тип сотрудничества (CooperationType) | Маппинг значений: Гражданский договор → «Civil Contract», Трудовой договор → «Labor Contract» |
| Режим работы (Work Mode) | Характер работы (Type) | Маппинг значений: Основное место → «Main», Внутреннее совместительство → «internal cowork», Внешнее совместительство → «external cowork» |
| Статус (Status) | Состояние (State) | Если Статус = «Закрыта» → «Inactive», иначе → «Active» |
3.8. Строки трудового договора (Business Central) → Назначение на позицию (HCM & LMS)
Операции: создание, изменение, удаление
Строки трудового договора содержат информацию о кадровых операциях: Найм, Совмещение, Перевод, Увольнение.
Синхронизация инициируется при: создании (утверждении строки), изменении, удалении. При утверждении строки также обновляется соответствующая позиция.
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| Название подразделения позиции | Название (Name) | Зависит от: Позиция → Подразделение. Берется название подразделения позиции. |
| Позиция (Position No.) | Позиция (PositionId) | Зависит от: справочник Позиции. Передается SystemId позиции. |
| Номер договора (Contract No.) | Контракт (EmployeeContractId) | Зависит от: трудовой договор. Передается SystemId трудового договора. |
| Физ. лицо (Person No.) | Контакт (ContactId) | Зависит от: трудовой договор → физ. лицо. Передается SystemId физ. лица. Для кросс-компанийных лиц — SystemId из основной компании. |
| Подразделение позиции | Подразделение (SubdivisionId) | Зависит от: Позиция → Подразделение. Передается SystemId подразделения. |
| Должность позиции | Должность (JobId) | Зависит от: Позиция → Должность. Передается SystemId должности. |
| Подразделение + Должность | Профиль должности (jobProfileId) | Составное поле: SystemId подразделения + «/» + SystemId должности. |
| Дата начала (Starting Date) | Дата создания (CreatedOn) | Дата начала действия строки |
| Дата начала (Starting Date) | Дата назначения (AssignmentDate) | Дата назначения на позицию |
| Дата окончания (Ending Date) | Дата увольнения (RemovedDate) | Дата окончания строки. Если пустая — ищется дата окончания из записи Employee Job Entry для этой позиции. |
| Основная позиция | Основная позиция (PrimaryPosition) | Определяется автоматически: true, если режим работы = «Основное место», тип операции ≠ «Совмещение», и это последняя утвержденная строка с наиболее поздней датой начала. |
| Тип операции (Operation Type) | Тип операции (OperationType) | Текстовое значение типа кадровой операции (Найм, Перевод, Совмещение, Увольнение и т.д.) |
| Испытательный срок | На испытании (IsOnProbation) | Определяется автоматически: true, если заполнены обе даты испытательного срока (Trial Period Start Date и Trial Period End Date). |
| Зарплата | Оклад (Salary) | Зависит от: условия трудового договора (SMA Labor Contract Terms). Ищется сумма для элементов зарплаты (оклад/ставка), определенных в настройках Персонала (Element Code Salary Days, Salary Hours, Salary Amount, Hourly Rate, Daily Rate). |
| Валюта | Валюта (Currency) | Зависит от: валюта в условиях трудового договора. Если пустая — берется код локальной валюты из настроек главной книги. Передается ISO-код валюты. |
| Статус (Status) | Статус (Status) | Маппинг: Открыто → «Open», Утверждено → «Approved» |
3.9. Причины отсутствия (Business Central) → Причины отсутствия (HCM & LMS)
Операции: создание, изменение, удаление
Обратите внимание: синхронизируются только причины отсутствия, у которых включен флажок «Export to HCM» (SMA Export to HCM = Да). Этот флажок добавляется расширением коннектора к стандартной таблице «Причины отсутствия» (Cause of Absence).
Синхронизация инициируется при: создании, изменении полей Описание, Детальное описание, Тип временной активности или флажка Export to HCM, удалении.
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| Код (Code) | Код (code) | Код причины отсутствия |
| Описание (Description) | Название (name) | Название причины отсутствия |
| Детальное описание (SMA Detailed Description) | Описание (description) | Развернутое описание причины |
| Тип временной активности (SMA Time Activity Type) | Тип (type) | Текстовое значение типа |
| Группа временной активности | Группа (groupid) | Определяется автоматически: ищется группа временных активностей (с флажком Export to HCM), которая содержит этот код отсутствия в своих кодах фильтрации. Если группа не найдена — пустое значение. |
3.10. Группы временных активностей (Business Central) → Группы отсутствий (HCM & LMS)
Операции: создание, изменение, удаление
Обратите внимание: синхронизируются только группы, у которых включен флажок «Export to HCM» (SMA Export to HCM = Да). Этот флажок добавляется расширением коннектора к таблице «Группы временных активностей» (SMA Time Activity Group).
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| Описание (Description) | Название (name) | Название группы отсутствий |
| Описание (Description) | Описание (description) | Дублируется в поле описания |
3.11. Заявления на отсутствие (Business Central) ← Отсутствия (HCM & LMS)
Направление: HCM & LMS → Business Central
В Business Central создаются заявления трех типов: Заявление на отпуск, Заявление на командировку, Заявление на прочие отсутствия.
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| Код | Код | Создание, изменение, удаление |
| Описание | Название | Создание, изменение, удаление |
| Код временной активности | Код отсутствия (Reason code) | Заполнение внешнего ключа для такого кода является обязательным. Создание, изменение, удаление. |
| Группа временной активности | Группа временной активности | Заполнение внешнего ключа для такой группы является обязательным. Выбирается или код, или группа. |
| Дата запроса | Дата запроса | Создание, изменение, удаление |
| Дата начала | Дата Начала | Создание, изменение, удаление |
| Дата окончания | Дата окончания | Создание, изменение, удаление |
| Календарные дни | Количество дней | Создание, изменение, удаление |
3.12. Операции начисления по сотруднику (Business Central) → Баланс отсутствий (HCM & LMS)
Операции: создание
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| На дату | На дату | Дата расчета баланса |
| Код временной активности | Код отсутствия (Reason code) | Код причины отсутствия |
| Плановые календарные дни | Плановые календарные дни | Запланированные дни |
| Использование календарных дней | Использование календарных дней | Использованные дни |
| Компенсация календарных дней | Компенсация календарных дней | Компенсированные дни |
| Плановый баланс календарные дни | Плановый баланс календарные дни | Плановый остаток |
| Баланс на дату | Баланс на дату | Фактический остаток на дату |
3.13. Зарплатные документы (Business Central) → Документы выплат (HCM & LMS)
Операции: создание
Синхронизация инициируется при: учете (posting) зарплатного документа.
Зависимости: синхронизация работает только если поле Enable Payroll Documents включено в настройках. Если также включено Enable Between Payroll Docs — синхронизируются и межпериодные документы. Иначе — только документы с пустым типом группы расчета.
Заголовок
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| Номер документа (No.) | Номер (DocumentNumber) | Номер зарплатного документа |
| Код работника (Employee No.) | Код рабо тника (EmployeeId) | Номер сотрудника |
| Описание (Posting Description) | Описание (Name) | Описание проводки |
| Дата учета (Posting Date) | Дата учета (PostingDate) | Дата учета документа |
| Код периода (Period Code) | Период (Period) | Зависит от: справочник Зарплатные периоды. Передается название периода. |
| Сторнировано (Reversed) | Корректировка (IsCorrected) | Флажок сторнирования. Передается только если документ сторнирован. |
Строки
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| Тип элемента | Тип элемента | Тип элемента расчета |
| Код элемента | Код элемента | Код элемента расчета |
| Описание | Описание | Описание элемента |
| Плановые часы | Плановые часы | Плановые часы |
| Фактические часы | Фактические часы | Фактические часы |
| Сумма заработной платы | Сумма заработной платы | Сумма начисления |
| Налогооблагаемая сумма | Налогооблагаемая сумма | Налогооблагаемая сумма |
3.14. Статусы табелей (Business Central) → Табели (HCM & LMS)
Операции: создание, удаление
Зависимости: синхронизация работает только если поле Enable Employee Timesheet включено в настройках. Передаются только табели со статусом «Выпущен» (Released).
Синхронизация инициируется при: изменении статуса табеля на «Выпущен» (создание записи), удалении.
| Поле Business Central | Поле HCM & LMS | Описание и зависимости |
|---|---|---|
| ФИО + Период | Название (Name) | Формируется автоматически: полное имя сотрудника + « - » + название периода |
| Физ. лицо | Контакт (ContactId) | Зависит от: Сотрудник → Физ. лицо. Передается SystemId физ. лица. Для кросс-компанийных лиц — SystemId из основной компании. |
| Трудовой договор | Контракт (ContractId) | Зависит от: Сотрудник → Трудовой договор. Передается SystemId трудового договора. |
| Код периода (Period Code) | Период (Period) | Зависит от: справочник Зарплатные периоды. Передается название периода. |
Шаг 4: Создание записей в таблице HCM & LMS Integration Records
При каких-либо изменениях в указанных полях страниц в Шаге 3, на странице HCM & LMS Integration Records отображаются записи этих изменений. Каждая запись соответствует одной операции синхронизации.
| Поле | Описание |
|---|---|
| Номер операции (Entry No.) | Порядковый номер записи |
| Тип записи (Record Type) | Тип операции: Создание, Изменение, Удаление |
| Таблица (Table Id) | Номер таблицы, в которой произошло изменение |
| Название таблицы (Table Name) | Название таблицы |
| Дата и время создания | Дата и время создания записи |
| ID пользователя | Код пользователя, инициировавшего изменение |
| Статус процесса (Processing Status) | Статус обработки: «Создано» (ожидает отправки) или «Обработано» (отправлено) |
| Текст последней ошибки (Last Error Text) | Текст ошибки, если отправка завершилась неудачей. Помогает диагностировать проблемы. |
Доступные действия на странице
- Пометить как созданный — возвращает статус записи на «Создано», чтобы очередь задач повторно попробовала её отправить. Используется для повторной отправки после ошибки.
- Отправить записи — немедленная ручная отправка записей без ожидания очереди задач.
- Показать информацию запроса — показывает JSON-данные, которые будут или были отправлены в HCM & LMS. Полезно для диагностики.
- Открыть запись-источник — открывает карточку записи в Business Central, которая инициировала эту запись интеграции.
- Уда лить выбранные — удаляет выбранные записи из очереди интеграции. Это действие не может быть отменено.
Шаг 5: Обработка ошибок и мониторинг
Что происходит при ошибке
Если отправка записи в HCM & LMS завершается ошибкой:
- Статус записи остается «Создано»
- Текст ошибки записывается в поле «Текст последней ошибки»
- При следующем запуске очереди задач система повторно попробует отправить эту запись
Если при обновлении записи (операция «Изменение») HCM & LMS возвращает ошибку 404 (запись не найдена), система автоматически меняет тип операции на «Создание» и повторяет попытку.