Почему при выгрузке контрагентов из УПП в Документооборот через КД 2.1 загружаются только объекты с пустыми ИНН и как это исправить?

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

Перенос данных между конфигурациями «1С:Управление производственным предприятием» (УПП) и «1С:Документооборот» (ДО) с помощью инструмента «1С:Конвертация данных 2.1» — задача классическая, но полная подводных камней. Одной из наиболее часто встречающихся проблем является некорректная работа поиска объектов, когда при массовой выгрузке данные либо «схлопываются» в одну карточку, либо игнорируются системой. Рассмотрим подробно, почему возникает ситуация, когда контрагенты с заполненными ИНН не попадают в базу приемник, и как правильно настроить правила поиска.

Разберем причину ошибки идентификации объектов

Проанализируем ситуацию: если в правилах конвертации объектов (ПКО) для справочника Контрагенты не указано ни одно поле поиска, механизм обмена пытается сопоставить объекты по внутреннему идентификатору (GUID). Однако, если базы ранее не были синхронизированы, GUID в УПП и ДО для одних и тех же контрагентов будут гарантированно разными. В этом случае система должна опираться на значимые реквизиты, такие как ИНН, КПП или Наименование.

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

Настройка правил конвертации свойств (ПКС) для поиска

Для корректной синхронизации нам необходимо определить, по каким полям система будет искать существующего контрагента в базе «1С:Документооборот». Проанализируем основные реквизиты:

  1. ИНН: Основной идентификатор. Но помните, что у юридических лиц он 10-значный, а у физических — 12-значный.
  2. КПП: Важен для юридических лиц, так как у одной компании (с одним ИНН) может быть несколько филиалов с разными КПП.
  3. Наименование: Используется как резервное поле, если ИНН не заполнен.

Рассмотрим по шагам, что нужно сделать в конфигурации «Конвертация данных»:

  1. Откроем ПКО Контрагенты.
  2. Перейдем на закладку «Конвертация свойств».
  3. Найдем свойство ИНН и установим флаг в колонке Поиск.
  4. Найдем свойство КПП и также установим флаг Поиск.
  5. Для свойства ЭтоГруппа также рекомендуется установить флаг поиска, чтобы группы и элементы не путались между собой.

Программная обработка полей поиска для исключения дублей

Ситуация осложняется, когда в базе источника (УПП) есть контрагенты без ИНН. Если мы просто укажем ИНН как поле поиска, то при загрузке первого же контрагента с пустым ИНН будет создана карточка. При загрузке второго «пустого» контрагента система найдет созданную ранее карточку (ведь ИНН и там, и там пустой) и просто перезапишет её данными нового контрагента. В итоге вместо 100 контрагентов вы получите одного, который постоянно меняет название.

Чтобы этого избежать, проанализируем использование обработчика событий «Поля поиска» в ПКО. Нам нужно динамически менять алгоритм поиска в зависимости от заполненности реквизитов. Рассмотрим пример кода, который нужно разместить в обработчике:


// Если ИНН заполнен, ищем по ИНН и КПП
Если ЗначениеЗаполнено(СвойстваПоиска["ИНН"]) Тогда
    СтрокаИменСвойствПоиска = "ИНН, КПП, ЭтоГруппа";
Иначе
    // Если ИНН пустой, переключаемся на поиск по наименованию
    СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";
КонецЕсли;

Этот простой алгоритм позволяет системе гибко подходить к идентификации: бизнес-партнеры с документами будут сопоставляться жестко, а прочие — по названию. Это исключает проблему «перезаписи» всех пустых контрагентов в одну карточку.

Специфика «1С:Документооборот» и типы контрагентов

Выясним еще одну важную деталь: справочник Контрагенты в ДО имеет реквизит ВидКонтрагента (Юридическое лицо, Физическое лицо и т.д.). В УПП за это может отвечать другой реквизит (например, ЮрФизЛицо). Если вы не настроили сопоставление этих типов, ДО может некорректно воспринимать длину ИНН или вообще отказываться записывать объект из-за незаполненности обязательного поля.

Проверьте, что в правилах настроена Конвертация значений для перечислений, отвечающих за юридический статус контрагента. Если типы не совпадают, используйте обработчик ПриЗагрузке для программной установки вида контрагента в базе приемнике.

Настройка режима замещения объектов

Как было замечено в обсуждении, иногда помогает флаг «Не замещать существующие объекты в приемнике, а только создавать новые и заполнять их». Разберем, когда это полезно:

Если вы столкнулись с тем, что данные «затираются», но флаг «Не замещать» вам не подходит (так как нужно обновлять информацию), вернитесь к настройке полей поиска. Правильная идентификация по ИНН + КПП + ЭтоГруппа обычно снимает 99% проблем с некорректным обновлением.

Рекомендации по выполнению обмена

Для обеспечения стабильности обмена между УПП и ДО рекомендуем придерживаться следующего алгоритма:

  1. Первичная синхронизация: Перед массовой выгрузкой попробуйте выгрузить одного «сложного» контрагента и проверьте его заполнение в ДО.
  2. Использование GUID: Если есть возможность, используйте поиск по уникальному идентификатору как приоритетный. В КД 2.1 это настраивается флажком «Продолжить поиск по полям поиска, если по идентификатору объект не найден».
  3. Контроль обязательных полей: В «1С:Документооборот» многие поля (например, основной банковский счет или основной контакт) могут быть критичны для бизнес-процессов. Убедитесь, что они передаются.
  4. Сервис 1С:Контрагент: Если в ДО включена автоматическая проверка контрагентов, она может замедлять массовую загрузку или вызывать ошибки тайм-аута. При больших объемах данных (тысячи записей) на время загрузки такие проверки лучше отключать.

Таким образом, успех выгрузки зависит от трех факторов: четко определенных полей поиска (ИНН/КПП), программной обработки пустых значений в обработчике Поля поиска и корректного сопоставления типов данных между УПП и ДО.

← На главную