В последнее время в обмен попадают только те объекты, которые были созданы или изменены, при этом в выгрузку не попадают объекты, на которые ссылаются выгружаемые объекты. С одной стороны, это уменьшает объем выгружаемых данных, а соответственно уменьшается время обмена, а с другой, при каком-либо сбое, мы в базе можем получить вот такое:
Можно, конечно, найти эти объекты и вручную зарегистрировать их в плане обмена, но если количество таких ссылок переваливает за 50, то это уже становится накладно.
Эта обработка подключается через com соединение к базе приемнику и ищет такие ссылки, затем после сопоставления метаданных находим и регистрируем в выбранном плане обмена. Выполняем синхронизацию и всё.
Обработку запускаем на стороне базы источника.
Открываем обработку
Порядок работы с обработкой:
- Подключаемся к базе приемнику (Кнопка №1)
- Если необходимо, в табличном поле №7 "Ограничение типов" устанавливаем отбор только по тем ссылкам, которые нам необходимо. Если в базе много битых ссылок или объем данных большой, то лучше использовать этот отбор. Отбор необходимо выполнять только после подключения к базе-приемнику, т.к. здесь мы отбираем метаданные базы приемника.
- Выполняем поиск битых ссылок Кнопка №2 (процесс медленный, зависит от производительности компьютера). Будут заполнены первые 2 колонки таблицы №8
- После выполнения поиска, необходимо сопоставить типы метаданных, так, к примеру, справочник в Бухгалтерии 2.0 называется "Банки", а в конфигурации Управление торговлей ред. 11.4 - "КлассификаторБанков". Будет заполнена колонка "Тип данных в текущей базе", таблица №8
- После сопоставления, находим ссылки на объекты в текущей базе, кнопка №4, заполнится колонка "Объект в текущей базе", таблица №8
- Регистрируем найденные ссылки в выбранный план обмена (поле выбора №6), кнопка №5
- Выполняем синхронизацию штатными средствами.
Обработка тестировалась:
- Платформа 1С 8.3.12.1567
- Конфигурация источник "1С: Управление торговлей 11.4"
- Конфигурация приемник "1С: Бухгалтерия предприятия 2.0" (правила переписаны)
Важно:
Если в правилах установлен поиск ссылки по полям, а поиск по внутреннему ИД отключен, то в таком случае, обработка бесполезна, т.к. при загрузке будет выполнен поиск по полям поиска, и если объект будет найден, даже если ИД отличается от ИД загружаемого объекта, то программа будет считать что загрузка выполнена успешно.
При разработке использовался код поиска битых ссылок отсюда https://helpf.pro/faq/view/1128.html. Данный код был доработан под управляемые формы и избавлен от модальности.