Как правильно выгружать только измененные данные и настроить поиск объектов в Конвертации данных 2.1?

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

При работе с обменом данными в 1С часто возникает вопрос: как выгрузить не всю базу целиком, а только те объекты, которые были изменены или созданы с момента последней синхронизации? Рассмотрим по шагам, как настроить этот процесс, и разберем частую проблему с поиском справочников в правилах конвертации.

Настройка выгрузки изменений через планы обмена

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

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

Для отладки процесса можно воспользоваться встроенной в конфигурации обработкой Регистрация изменений для обмена данными. Она позволяет увидеть, какие именно объекты «висят» в очереди на выгрузку для конкретного узла.

Решение проблемы с поиском объектов в правилах обмена (ПКО)

Часто при переносе данных мы сталкиваемся с тем, что система создает дубли вместо обновления существующих записей. Это происходит из-за неправильной настройки Полей поиска в Правилах конвертации объектов (ПКО). Давайте разберем, как это исправить.

Когда вы отмечаете несколько полей поиска (например, Код и Наименование), 1С пытается найти объект, у которого совпадают оба этих реквизита. Если в базе-источнике и приемнике коды различаются, поиск не сработает.

Как настроить гибкий поиск:

Если вам нужно сначала искать по коду, а если не нашли — по наименованию, лучше не полагаться на стандартные галочки, а использовать обработчик события Поля поиска. В этом обработчике можно реализовать сложную логику:


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

НайденныйОбъект = Справочники.Контрагенты.НайтиПоНаименованию(Источник.Наименование);
Если ЗначениеЗаполнено(НайденныйОбъект) Тогда
    ОбъектНайден = Истина;
КонецЕсли;

Важные нюансы настроек

При настройке поиска обратите внимание на параметр Продолжить поиск по полям поиска. Эта опция критически важна, если вы используете поиск по Уникальному идентификатору (УИД). Работает это так:

Помните, что стратегии поиска должны быть максимально надежными. Использование одного только Наименования опасно, так как в базе могут существовать разные контрагенты с одинаковыми именами, что приведет к перезаписи неверного объекта.

Анализируя ситуацию, приходим к выводу: для регулярных обменов всегда используйте Планы обмена и корректную регистрацию изменений, а для уникальных или проблемных случаев — настраивайте Обработчики событий в правилах, чтобы полностью контролировать процесс поиска и сопоставления объектов.

← На главную