Как правильно синхронизировать НСИ между ЗУП 3.0 и 1С:Документооборот 2.1?

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

При настройке взаимодействия между конфигурациями 1С:Зарплата и управление персоналом и 1С:Документооборот многие специалисты сталкиваются с заблуждением относительно того, что бесшовная интеграция (БИД) автоматически переносит и синхронизирует справочники. Давайте разберем, как на самом деле устроены эти механизмы и какие варианты решения задачи существуют.

Понимание различий: БИД и синхронизация НСИ

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

Решение №1: Программный маппинг данных

Если вам необходимо передавать данные, сохраняя их уникальность, используйте механизм правил синхронизации реквизитов на встроенном языке. Это позволяет вручную управлять тем, как именно объект из ЗУП будет интерпретироваться в ДО.

Для простых типов данных (например, строковых реквизитов) вы можете сформировать значение программно. Рассмотрим пример заполнения реквизита Содержание:


Содержание = Новый Массив;
Содержание.Добавить(НСтр("ru='Состав:'"));
Для Каждого Строка Из Параметры.Источник.Товары Цикл
    Содержание.Добавить(СтрШаблон("%1, %2, %3", Строка.Номенклатура, Строка.Характеристика, Строка.Количество));
КонецЦикла;
Параметры.Результат = СтрСоединить(Содержание, Символы.ПС);

Для ссылочных типов (например, Ответственный) необходимо передать идентификатор объекта, чтобы система ДО могла корректно найти существующий элемент в своей базе:


Параметры.Результат = "Федоров О.П. (директор)";
Параметры.РезультатТип = "DMUser";
Параметры.РезультатID = "09dffde6-341a-11df-a3ff-00055d33dddc";

Этот метод опирается на Регистр соответствия объектов, предоставляемый БСП (Библиотекой стандартных подсистем). Вы фактически обучаете систему, по какому GUID или иному уникальному ключу искать объект на принимающей стороне.

Решение №2: Отказ от типовой БИД в пользу собственной интеграции

На практике многие крупные внедрения приходят к тому, что использование типовой бесшовной интеграции становится ограничением. Типовая БИД может быть слишком жесткой или медленной. Если ваш бизнес-процесс требует специфической передачи данных, рассмотрим создание собственного интеграционного слоя.

  1. Анализ требований: Оцените, нужны ли вам все функции БИД (например, предпросмотр файлов или создание процессов). Если достаточно только передачи данных при создании документов, целесообразно использовать собственные HTTP-сервисы.
  2. Определение ключей сопоставления: Вместо поиска по наименованию (которое часто приводит к дублям из-за однофамильцев или разного написания), внедрите хранение внешних идентификаторов. Для Сотрудников это может быть СНИЛС, для Организаций — ИНН+КПП.
  3. Реализация обмена: Напишите процедуры обмена, которые будут транслировать объекты между ЗУП и ДО через XML или JSON. Это обеспечит высокую надежность, так как вы будете точно знать, что происходит в момент передачи.

Рекомендации по реализации

При выборе пути помните о следующих принципах:

Подводя итог, можно сказать, что «типовой кнопки» для синхронизации НСИ между этими системами не существует. Вам придется либо настроить правила обмена с использованием Конвертации данных, либо доработать механизмы сопоставления объектов на встроенном языке, либо разработать собственную интеграционную логику, которая будет отвечать задачам вашего предприятия.

← На главную