При работе с обменом данными в 1С часто возникает вопрос: как выгрузить не всю базу целиком, а только те объекты, которые были изменены или созданы с момента последней синхронизации? Рассмотрим по шагам, как настроить этот процесс, и разберем частую проблему с поиском справочников в правилах конвертации.
Если вы работаете с типовыми конфигурациями, такими как Управление торговлей или Розница, вам не нужно вручную отбирать каждый документ. В системе уже встроен механизм Планов обмена. Давайте разберем, как заставить его работать на вас:
Удалить регистрацию только для выгруженных метаданных. Иначе одни и те же данные будут выгружаться постоянно.Для отладки процесса можно воспользоваться встроенной в конфигурации обработкой Регистрация изменений для обмена данными. Она позволяет увидеть, какие именно объекты «висят» в очереди на выгрузку для конкретного узла.
Часто при переносе данных мы сталкиваемся с тем, что система создает дубли вместо обновления существующих записей. Это происходит из-за неправильной настройки Полей поиска в Правилах конвертации объектов (ПКО). Давайте разберем, как это исправить.
Когда вы отмечаете несколько полей поиска (например, Код и Наименование), 1С пытается найти объект, у которого совпадают оба этих реквизита. Если в базе-источнике и приемнике коды различаются, поиск не сработает.
Как настроить гибкий поиск:
Если вам нужно сначала искать по коду, а если не нашли — по наименованию, лучше не полагаться на стандартные галочки, а использовать обработчик события Поля поиска. В этом обработчике можно реализовать сложную логику:
// Пример логики в обработчике Поля поиска
Если ЗначениеЗаполнено(Источник.Код) Тогда
НайденныйОбъект = Справочники.Контрагенты.НайтиПоКоду(Источник.Код);
Если ЗначениеЗаполнено(НайденныйОбъект) Тогда
ОбъектНайден = Истина;
Возврат;
КонецЕсли;
КонецЕсли;
НайденныйОбъект = Справочники.Контрагенты.НайтиПоНаименованию(Источник.Наименование);
Если ЗначениеЗаполнено(НайденныйОбъект) Тогда
ОбъектНайден = Истина;
КонецЕсли;
При настройке поиска обратите внимание на параметр Продолжить поиск по полям поиска. Эта опция критически важна, если вы используете поиск по Уникальному идентификатору (УИД). Работает это так:
УИД.Продолжить поиск по полям поиска выключено, то при неудаче по УИД процесс поиска просто прекращается — объект будет создан заново.УИД система перейдет к анализу тех полей, которые вы отметили в ПКО (Код, Наименование и т.д.).Помните, что стратегии поиска должны быть максимально надежными. Использование одного только Наименования опасно, так как в базе могут существовать разные контрагенты с одинаковыми именами, что приведет к перезаписи неверного объекта.
Анализируя ситуацию, приходим к выводу: для регулярных обменов всегда используйте Планы обмена и корректную регистрацию изменений, а для уникальных или проблемных случаев — настраивайте Обработчики событий в правилах, чтобы полностью контролировать процесс поиска и сопоставления объектов.