При первой настройке бесшовной интеграции между 1С:ERP Управление предприятием и 1С:Документооборот (1С:ДО) технические специалисты часто сталкиваются с неочевидной проблемой. Пытаясь настроить правила интеграции объектов, они обнаруживают, что в списке доступных для сопоставления объектов Документооборота присутствуют только документы (входящие, исходящие, внутренние) и контрагенты, но полностью отсутствует справочник Организации.
Возникает закономерный вопрос: как сопоставить организации в обеих базах данных и избежать появления дублей, особенно если учет по нескольким организациям уже велся в обеих конфигурациях до настройки интеграции? В этой статье мы подробно разберем, как устроена архитектура обмена данными между этими конфигурациями, и рассмотрим два эффективных сценария решения данной задачи: стандартный (без программирования) и программный (с использованием возможностей Библиотеки интеграции с 1С:Документооборотом).
Прежде чем перейти к практической реализации, нам необходимо детально разобраться в архитектурных различиях двух ключевых механизмов взаимодействия систем 1С.
Главная методическая ошибка многих начинающих интеграторов — попытка решить задачу синхронизации справочников нормативно-справочной информации (НСИ) исключительно средствами бесшовной интеграции. Это принципиально разные механизмы:
Рекомендованный вендором сценарий внедрения: сначала настраивается стандартная синхронизация данных для переноса и первоначального сопоставления НСИ (включая справочник «Организации»), и только после этого настраиваются правила бесшовной интеграции для документов.
Давайте подробно разберем оба сценария решения проблемы дублирования организаций.
---
Если мы хотим решить задачу стандартными средствами платформы, выполним следующие шаги:
---
Что делать, если полноценную синхронизацию НСИ настраивать не планируется, но при создании документов в 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СДокументооборотПереопределяемый. Программная передача inn и kpp в XDTO-объектах гарантирует корректный поиск элементов на стороне 1С:Документооборота.