Как настроить интеграцию справочника «Организации» при бесшовной интеграции 1С:ERP и 1С:Документооборот без дублирования данных?

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

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

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

Прежде чем перейти к практической реализации, нам необходимо детально разобраться в архитектурных различиях двух ключевых механизмов взаимодействия систем 1С.

Различие между «Бесшовной интеграцией» и «Синхронизацией данных»

Главная методическая ошибка многих начинающих интеграторов — попытка решить задачу синхронизации справочников нормативно-справочной информации (НСИ) исключительно средствами бесшовной интеграции. Это принципиально разные механизмы:

Рекомендованный вендором сценарий внедрения: сначала настраивается стандартная синхронизация данных для переноса и первоначального сопоставления НСИ (включая справочник «Организации»), и только после этого настраиваются правила бесшовной интеграции для документов.

Давайте подробно разберем оба сценария решения проблемы дублирования организаций.

---

Сценарий №1. Настройка штатной синхронизации НСИ (без программирования)

Если мы хотим решить задачу стандартными средствами платформы, выполним следующие шаги:

  1. Перейдем в раздел Администрирование -> Синхронизация данных в обеих базах (ERP и ДО) и настроим стандартный обмен данными.
  2. При выполнении первой синхронизации запустится интерактивный помощник сопоставления данных. На этом этапе нам необходимо вручную или по правилам автоматического сопоставления (по ИНН/КПП) связать существующие элементы справочника «Организации» в ERP с соответствующими элементами в ДО.
  3. После успешного сопоставления системы зарегистрируют внутренние связи элементов на основе их уникальных идентификаторов (УИД). В дальнейшей работе при отправке, например, договора через бесшовную интеграцию, система мгновенно найдет связанную организацию по УИД, и дублирования не произойдет.

---

Сценарий №2. Программное переопределение поиска через БИД (с программированием)

Что делать, если полноценную синхронизацию НСИ настраивать не планируется, но при создании документов в ERP и их автоматической отправке в 1С:ДО по бесшовной интеграции требуется, чтобы организации сопоставлялись строго по ИНН и КПП?

По умолчанию Библиотека интеграции с Документооборотом (БИД) осуществляет поиск вспомогательных объектов (таких как организации) сначала по УИД, а затем по точному наименованию. Если наименования хоть немного различаются (например, ООО "Ромашка" в ERP и Общество с ограниченной ответственностью "Ромашка" в ДО), система неизбежно создаст дубль.

Для переопределения этого поведения нам потребуется внести изменения в код конфигурации ERP (или использовать механизм расширений). Рассмотрим этот процесс по шагам.

Шаг 1. Переопределение заполнения реквизитов

Нам необходимо использовать общий модуль ИнтеграцияС1СДокументооборотПереопределяемый (в некоторых версиях конфигураций он может называться ИнтеграцияС1СДокументооборотБазоваяФункциональностьПереопределяемый). В нем мы найдем предопределенную процедуру ЗаполнитьРеквизитыИзПотребителя. Эта процедура отвечает за подготовку данных перед их передачей в веб-сервис ДО.

Проанализируем пример кода, который необходимо добавить в данную процедуру для принудительного заполнения ИНН и КПП организации при передаче:


Процедура ЗаполнитьРеквизитыИзПотребителя(ДанныеПотребителя, ДанныеИсточника, ПравилоИнтеграции) Экспорт

    ТипОбъектаДО = ДанныеПотребителя.Тип();
    
    // Проверяем, является ли передаваемый объект организацией на стороне ДО
    Если ТипОбъектаДО = "DMOrganization" Тогда
        
        // Проверяем, что источником в ERP является справочник "Организации"
        Если ТипЗнч(ДанныеИсточника) = Тип("СправочникСсылка.Организации") Тогда
            
            // Заполняем реквизиты ИНН и КПП из источника ERP в XDTO-объект Документооборота
            ДанныеПотребителя.inn = ДанныеИсточника.ИНН;
            ДанныеПотребителя.kpp = ДанныеИсточника.КПП;
            
        КонецЕсли;
        
    КонецЕсли;

КонецПроцедуры

Шаг 2. Как это работает под капотом веб-сервиса

При получении XDTO-пакета веб-сервис 1С:Документооборота анализирует входящие поля. Если в структуру DMOrganization переданы заполненные реквизиты inn и kpp, внутренние алгоритмы 1С:ДО сначала попытаются выполнить поиск элемента в справочнике «Организации» по комбинации ИНН + КПП. Новый элемент будет создан только в том случае, если поиск по этим реквизитам не дал результатов.

Аналогичным образом мы можем дописать логику сопоставления для справочника «Контрагенты» (в терминах 1С:ДО это объект типа DMCorrespondent), передавая ИНН/КПП для юридических лиц во избежание их дублирования при создании бесшовных документов.

Шаг 3. Сопоставление типов в процедуре ДополнитьСоответствиеТипов

Убедимся, что в этом же переопределяемом модуле зарегистрирована связь типов данных. Программа должна четко сопоставлять типы конфигураций, для чего используется процедура ДополнитьСоответствиеТипов:


Процедура ДополнитьСоответствиеТипов(СоответствиеТипов) Экспорт

    // Связываем тип справочника ERP с типом веб-сервиса ДО
    СоответствиеТипов.Вставить(
        ПредопределенноеЗначение("Справочник.Организации.ПустаяСсылка"), 
        "DMOrganization"
    );

КонецПроцедуры

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

Для предотвращения дублирования справочника «Организации» при бесшовной интеграции рекомендуем придерживаться следующих правил:

  1. Приоритетный вариант: Всегда начинайте проект интеграции с настройки типового обмена НСИ через планы обмена. Это гарантирует совпадение УИД и избавит вас от необходимости писать кастомный код сопоставления.
  2. Альтернативный вариант: Если обмен НСИ невозможен по техническим или организационным причинам, используйте механизм расширений для модификации модуля ИнтеграцияС1СДокументооборотПереопределяемый. Программная передача inn и kpp в XDTO-объектах гарантирует корректный поиск элементов на стороне 1С:Документооборота.
← На главную