Как настроить синхронизацию и бесшовную интеграцию сотрудников между 1С:ERP и 1С:Документооборот 3.0?

Программист 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

При настройке взаимодействия между 1С:ERP Управление предприятием и 1С:Документооборот 3.0 (ДО 3.0) разработчики и администраторы часто сталкиваются со сложностями при передаче кадровых данных. Пользователи жалуются на задвоение элементов в справочнике Сотрудники, ошибки вида «Сотрудники вручную не редактируются», а также на зависание обменов из-за бесконечных циклических обновлений структуры компании.

Разберем детально, как устроена работа с кадровыми данными в новой редакции ДО 3.0, выясним коренные причины возникающих сбоев и рассмотрим практические способы настройки стабильного обмена.

Архитектура учета сотрудников в 1С:Документооборот 3.0: почему блокируется редактирование

В отличие от редакции 2.1, где сотрудники и пользователи были тесно связаны и имели более статичную структуру, в ДО 3.0 реализован полноценный периодический кадровый учет. Рассмотрим его ключевые особенности:

  1. Кадровый срез данных: В карточке справочника Сотрудники реквизиты должности, подразделения, графика и ставки перестают быть просто реквизитами самого объекта, если в системе включен кадровый учет или присутствуют кадровые документы. Они берутся расчетным путем из периодических регистров сведений кадровой истории.
  2. Запрет ручного изменения: Как только по физическому лицу или сотруднику проведен хотя бы один кадровый документ-регистратор (прием, перевод, увольнение), программные обработчики накладывают блокировку на прямое изменение полей карточки. Вся модификация условий работы должна происходить исключительно через документы кадрового движения.
  3. Поведение при отмене проведения: Если в 1С:ERP кадровый документ распроводится, соответствующий элемент в ДО 3.0 не удаляется. Он сохраняется в базе данных, так как на него могут ссылаться визы, рабочие группы, задачи или процессы, но при этом теряет активную запись в кадровой истории.

Почему при бесшовной интеграции возникает ошибка о запрете редактирования

Проанализируем типовую ситуацию: в учетной системе настроена бесшовная интеграция (библиотека БИД), передающая данные документа, где одним из реквизитов выступает сотрудник. При отправке формы или записи веб-сервис ДО 3.0 пытается найти или дозаписать реквизиты переданного объекта.

Если бесшовная интеграция обращается напрямую к объекту СправочникСсылка.Сотрудники и пытается обновить реквизиты, система вызывает исключение. Логика ДО 3.0 запрещает прямой метод Записать() для карточки сотрудника, имеющей кадровые движения в регистрах, если попытка модификации выполняется в обход механизмов кадровых документов.

Причины задвоения записей и рассинхронизации

Выясним, почему при изменении параметров сотрудника в базе 1С:Документооборот появляются дубли:

  1. Сопоставление не по УИД: В типовых правилах передачи сотрудники нередко сопоставляются не по уникальному идентификатору (UUID), а по комбинации полей: ФизическоеЛицо + Должность + Подразделение + период действия позиции. Если у сотрудника меняется ставка (например, перевод с 1.0 на 0.5 ставки), система может расценить это как новую кадровую позицию и создать вторую карточку вместо продолжения истории первой.
  2. Разделение управленческой и регламентированной структуры: Если в 1С:ERP включено разделение регламентированной структуры предприятий и управленческой структуры, в ДО передается штатное расписание. Расхождение иерархии приводит к тому, что система не находит исходную позицию и создает параллельный набор подразделений и сотрудников.
  3. Конфликт EnterpriseData и БИД: Регулярная синхронизация сопоставляет объекты через регистр сведений Соответствия объектов информационных баз, а бесшовная интеграция может пытаться найти соответствие по собственным внутренним таблицам. Если регулярный обмен еще не перенес связь, БИД пытается создать сотрудника с нуля, вызывая коллизии.

Способ 1. Настройка строгой очередности обменов и трансляция типов

Главное правило стабильной интеграции с ДО 3.0 — исключить создание сотрудников механизмами бесшовной интеграции «на лету». Разберем пошаговый регламент настройки:

  1. Первичная передача НСИ через регулярный обмен: Настраиваем синхронизацию данных по правилам EnterpriseData строго в следующей последовательности: организации, подразделения, физические лица, штатное расписание, кадровые документы (приемы, переводы).
  2. Фиксация соответствий: Убеждаемся, что в регистре Соответствия объектов информационных баз созданы корректные записи сопоставления между ссылками 1С:ERP и ДО 3.0.
  3. Переопределение правил заполнения реквизитов БИД: В задачах и бизнес-процессах ДО основными исполнителями выступают не столько кадровые единицы, сколько пользователи. Если в документе ERP заполнен реквизит кадрового сотрудника, в правилах бесшовной интеграции следует получать физическое лицо сотрудника и определять соответствующего ему пользователя в ДО.

Посмотрим на пример алгоритма вычисления пользователя ДО по переданному сотруднику ERP:


// В обработчике правил интеграции определяем пользователя по физическому лицу
ФизЛицо = Источник.Сотрудник.ФизическоеЛицо;

Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |   Пользователи.Ссылка КАК Пользователь
    |ИЗ
    |   Справочник.Пользователи КАК Пользователи
    |ГДЕ
    |   Пользователи.ФизическоеЛицо = &ФизическоеЛицо
    |   И НЕ Пользователи.Недействителен";

Запрос.УстановитьПараметр("ФизическоеЛицо", ФизЛицо);
Выборка = Запрос.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда
    Значение = Выборка.Пользователь;
Иначе
    Значение = Справочники.Пользователи.ПустаяСсылка();
КонецЕсли;

Способ 2. Устранение зацикливания структуры «Подразделение — Руководитель»

Распространенная проблема обмена между 1С:ERP / ЗУП КОРП и 1С:Документооборот — каскадная синхронизация: изменение сотрудника регистрирует к обмену подразделение, изменение подразделения регистрирует его руководителя (сотрудника), что вновь регистрирует подразделение. Это приводит к бесконечной очереди обмена и взаимоблокировкам.

Для устранения этой проблемы разберем практические шаги:

  1. Отключение регистрации руководителя в правилах подразделений: В правилах выгрузки отключаем автоматическое включение реквизита Руководитель в пакет выгрузки подразделения.
  2. Использование расширения конфигурации: В конфигурации 1С:ERP или ЗУП создаем расширение, где в подписках на события или модулях интеграции исключаем циклическую регистрацию зависимых объектов с помощью директивы #Удаление или переопределения процедур формирования изменений.
  3. Определение руководителей на стороне ДО: Назначаем руководителей подразделений непосредственно в ДО 3.0 через регламентные механизмы кадровых срезов и должностей, не передавая эту связь напрямую через синхронизацию подразделения.

Способ 3. Синхронизация по уникальным идентификаторам пользователей и Email

Если специфика документооборота компании не требует ведения сложной тарификации, графиков и учета ставок непосредственно в ДО, можно применить упрощенную схему интеграции, исключив миграцию кадровых документов:

  1. Унификация идентификаторов: В обеих информационных базах вводится обязательное требование уникальности учетных записей (например, уникальный рабочий Email или табельный номер физлица).
  2. Сопоставление в правилах конвертации: В обработчиках ПоляПоиска правил обмена переопределяем сопоставление справочника ФизическиеЛица строго по реквизиту ИНН или СтраховойНомерПФР, а справочника Пользователи — по адресу электронной почты.
  3. Отказ от кадрового контура: В 1С:Документооборот отключается синхронизация регистра кадровой истории. Сотрудники формируются как базовые карточки, привязанные к физическим лицам, что исключает возникновение дублей при любых внутриструктурных переводах и изменениях ставок в ERP.
← На главную